Massively improve the speed of rcon commands sending.

This commit is contained in:
furo 2024-02-02 16:50:47 +01:00
parent 3805ffba86
commit d09304fbc5

View file

@ -1342,19 +1342,20 @@ void CServer::SendRconCmdRem(const IConsole::CCommandInfo *pCommandInfo, int Cli
void CServer::UpdateClientRconCommands() void CServer::UpdateClientRconCommands()
{ {
int ClientId = Tick() % MAX_CLIENTS; for(int ClientId = 0; ClientId < MAX_CLIENTS; ClientId++)
if(m_aClients[ClientId].m_State != CClient::STATE_EMPTY && m_aClients[ClientId].m_Authed)
{ {
int ConsoleAccessLevel = m_aClients[ClientId].m_Authed == AUTHED_ADMIN ? IConsole::ACCESS_LEVEL_ADMIN : m_aClients[ClientId].m_Authed == AUTHED_MOD ? IConsole::ACCESS_LEVEL_MOD : IConsole::ACCESS_LEVEL_HELPER; if(m_aClients[ClientId].m_State != CClient::STATE_EMPTY && m_aClients[ClientId].m_Authed)
for(int i = 0; i < MAX_RCONCMD_SEND && m_aClients[ClientId].m_pRconCmdToSend; ++i)
{ {
SendRconCmdAdd(m_aClients[ClientId].m_pRconCmdToSend, ClientId); int ConsoleAccessLevel = m_aClients[ClientId].m_Authed == AUTHED_ADMIN ? IConsole::ACCESS_LEVEL_ADMIN : m_aClients[ClientId].m_Authed == AUTHED_MOD ? IConsole::ACCESS_LEVEL_MOD : IConsole::ACCESS_LEVEL_HELPER;
m_aClients[ClientId].m_pRconCmdToSend = m_aClients[ClientId].m_pRconCmdToSend->NextCommandInfo(ConsoleAccessLevel, CFGFLAG_SERVER); for(int i = 0; i < MAX_RCONCMD_SEND && m_aClients[ClientId].m_pRconCmdToSend; ++i)
if(m_aClients[ClientId].m_pRconCmdToSend == nullptr)
{ {
CMsgPacker Msg(NETMSG_RCON_CMD_GROUP_END, true); SendRconCmdAdd(m_aClients[ClientId].m_pRconCmdToSend, ClientId);
SendMsg(&Msg, MSGFLAG_VITAL, ClientId); m_aClients[ClientId].m_pRconCmdToSend = m_aClients[ClientId].m_pRconCmdToSend->NextCommandInfo(ConsoleAccessLevel, CFGFLAG_SERVER);
if(m_aClients[ClientId].m_pRconCmdToSend == nullptr)
{
CMsgPacker Msg(NETMSG_RCON_CMD_GROUP_END, true);
SendMsg(&Msg, MSGFLAG_VITAL, ClientId);
}
} }
} }
} }