2022-12-22 21:23:32 +00:00
|
|
|
#include "backend/player_command.hpp"
|
2023-03-01 21:27:15 +00:00
|
|
|
#include "core/scr_globals.hpp"
|
2022-12-22 21:23:32 +00:00
|
|
|
#include "natives.hpp"
|
2023-03-01 21:27:15 +00:00
|
|
|
#include "packet.hpp"
|
2022-12-22 21:23:32 +00:00
|
|
|
#include "pointers.hpp"
|
|
|
|
#include "util/scripts.hpp"
|
|
|
|
|
|
|
|
namespace big
|
|
|
|
{
|
|
|
|
class oom_kick : player_command
|
|
|
|
{
|
|
|
|
using player_command::player_command;
|
|
|
|
|
|
|
|
std::chrono::system_clock::time_point last_oom_kick_time{};
|
|
|
|
|
|
|
|
virtual CommandAccessLevel get_access_level()
|
|
|
|
{
|
|
|
|
return CommandAccessLevel::TOXIC;
|
|
|
|
}
|
|
|
|
|
|
|
|
virtual void execute(player_ptr player, const std::vector<std::uint64_t>& _args, const std::shared_ptr<command_context> ctx)
|
|
|
|
{
|
|
|
|
if (std::chrono::system_clock::now() - last_oom_kick_time < 7s)
|
|
|
|
{
|
|
|
|
g_notification_service->push_error("Kick", "Don't spam this or it will backfire");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
last_oom_kick_time = std::chrono::system_clock::now();
|
|
|
|
|
|
|
|
if (auto freemode = gta_util::find_script_thread(RAGE_JOAAT("freemode")))
|
|
|
|
{
|
|
|
|
packet msg{};
|
|
|
|
msg.write_message(rage::eNetMessage::MsgScriptMigrateHost);
|
|
|
|
freemode->m_handler->get_id()->serialize(&msg.m_buffer);
|
|
|
|
msg.write<int>(0, 16);
|
|
|
|
msg.write<int>(0, 32);
|
|
|
|
auto msg_id = player->get_net_game_player()->m_msg_id;
|
|
|
|
for (int j = 0; j < 2100; j++)
|
|
|
|
{
|
|
|
|
msg.send(msg_id);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2023-06-06 07:40:40 +00:00
|
|
|
oom_kick g_oom_kick("oomkick", "OOM_KICK_CMD", "OOM_KICK_CMD_DESC", 0, false);
|
2022-12-22 21:23:32 +00:00
|
|
|
}
|