This repository has been archived on 2024-10-22. You can view files and clone it, but cannot push or open issues or pull requests.
Andreas Maerten 4c6226d022
fix(MultiKick): check against player nullptr (#2057)
* fix(MultiKick): check player ptr before using it

* fix(Kick): guard other commands against nullptr player ptr
2023-08-29 23:58:44 +02:00

34 lines
912 B
C++

#include "backend/player_command.hpp"
#include "core/scr_globals.hpp"
#include "natives.hpp"
#include "pointers.hpp"
#include <script/globals/GPBD_FM_3.hpp>
namespace big
{
class bail_kick : player_command
{
using player_command::player_command;
virtual CommandAccessLevel get_access_level() override
{
return CommandAccessLevel::TOXIC;
}
virtual void execute(player_ptr player, const command_arguments& _args, const std::shared_ptr<command_context> ctx) override
{
if (!player)
return;
const size_t arg_count = 3;
int64_t args[arg_count] = {(int64_t)eRemoteEvent::NetworkBail,
(int64_t)self::id,
scr_globals::gpbd_fm_3.as<GPBD_FM_3*>()->Entries[player->id()].ScriptEventReplayProtectionCounter};
g_pointers->m_gta.m_trigger_script_event(1, args, arg_count, 1 << player->id());
}
};
bail_kick g_bail_kick("bailkick", "BAIL_KICK", "BAIL_KICK_DESC", 0);
}