Toxic update (#641)

This commit is contained in:
maybegreat48
2022-12-06 16:12:02 +00:00
committed by GitHub
parent 675548770c
commit 8c3953ab20
81 changed files with 3259 additions and 412 deletions

View File

@ -1,9 +1,15 @@
#pragma once
#include "player_service.hpp"
#include "vehicle/CVehicle.hpp"
#include "network/snSession.hpp"
#include "rate_limiter.hpp"
class CVehicle;
namespace rage
{
class snPlayer;
class snPeer;
}
namespace big
{
class player final

View File

@ -26,6 +26,8 @@ namespace big
void player_service::do_cleanup()
{
m_player_to_use_end_session_kick.reset();
m_player_to_use_complaint_kick.reset();
m_selected_player = m_dummy;
m_players.clear();
}
@ -82,12 +84,20 @@ namespace big
void player_service::player_leave(CNetGamePlayer* net_game_player)
{
if (net_game_player == nullptr) return;
if (net_game_player == nullptr)
return;
if (m_selected_player && m_selected_player->equals(net_game_player))
m_selected_player = m_dummy;
if (auto it = std::find_if(m_players.begin(), m_players.end(), [net_game_player](const auto& p) { return p.second->id() == net_game_player->m_player_id; }); it != m_players.end())
{
if (m_player_to_use_end_session_kick == it->second)
m_player_to_use_end_session_kick = std::nullopt;
if (m_player_to_use_complaint_kick == it->second)
m_player_to_use_complaint_kick = std::nullopt;
m_players.erase(it);
}
}

View File

@ -20,7 +20,6 @@ namespace big
player_ptr m_dummy = std::make_shared<player>(nullptr);
player_ptr m_selected_player;
public:
player_service();
~player_service();
@ -49,6 +48,8 @@ namespace big
void set_selected(player_ptr plyr);
std::optional<player_ptr> m_player_to_use_end_session_kick = std::nullopt;
std::optional<player_ptr> m_player_to_use_complaint_kick = std::nullopt;
};
inline player_service* g_player_service{};