GameContext: Extract SendMotd() and SendSettings() methods

Partial cherry-pick from upstream d8d259a166
This commit is contained in:
Alexander Akulich 2021-01-09 16:05:54 +03:00
parent fc2a49d15b
commit 80539245c8
2 changed files with 27 additions and 22 deletions

View file

@ -469,6 +469,28 @@ void CGameContext::SendWeaponPickup(int ClientID, int Weapon)
Server()->SendPackMsg(&Msg, MSGFLAG_VITAL, ClientID); Server()->SendPackMsg(&Msg, MSGFLAG_VITAL, ClientID);
} }
void CGameContext::SendMotd(int ClientID)
{
CNetMsg_Sv_Motd Msg;
Msg.m_pMessage = g_Config.m_SvMotd;
Server()->SendPackMsg(&Msg, MSGFLAG_VITAL, ClientID);
}
void CGameContext::SendSettings(int ClientID)
{
if(Server()->IsSixup(ClientID))
{
protocol7::CNetMsg_Sv_ServerSettings Msg;
Msg.m_KickVote = g_Config.m_SvVoteKick;
Msg.m_KickMin = g_Config.m_SvVoteKickMin;
Msg.m_SpecVote = g_Config.m_SvVoteSpectate;
Msg.m_TeamLock = 0;
Msg.m_TeamBalance = 0;
Msg.m_PlayerSlots = g_Config.m_SvMaxClients - g_Config.m_SvSpectatorSlots;
Server()->SendPackMsg(&Msg, MSGFLAG_VITAL | MSGFLAG_NORECORD, ClientID);
}
}
void CGameContext::SendBroadcast(const char *pText, int ClientID, bool IsImportant) void CGameContext::SendBroadcast(const char *pText, int ClientID, bool IsImportant)
{ {
CNetMsg_Sv_Broadcast Msg; CNetMsg_Sv_Broadcast Msg;
@ -1361,23 +1383,8 @@ void CGameContext::OnClientConnected(int ClientID)
} }
#endif #endif
// send motd SendMotd(ClientID);
CNetMsg_Sv_Motd Msg; SendSettings(ClientID);
Msg.m_pMessage = g_Config.m_SvMotd;
Server()->SendPackMsg(&Msg, MSGFLAG_VITAL, ClientID);
//send sixup settings
if(Server()->IsSixup(ClientID))
{
protocol7::CNetMsg_Sv_ServerSettings Msg;
Msg.m_KickVote = g_Config.m_SvVoteKick;
Msg.m_KickMin = g_Config.m_SvVoteKickMin;
Msg.m_SpecVote = g_Config.m_SvVoteSpectate;
Msg.m_TeamLock = 0;
Msg.m_TeamBalance = 0;
Msg.m_PlayerSlots = g_Config.m_SvMaxClients - g_Config.m_SvSpectatorSlots;
Server()->SendPackMsg(&Msg, MSGFLAG_VITAL | MSGFLAG_NORECORD, ClientID);
}
Server()->ExpireServerInfo(); Server()->ExpireServerInfo();
} }
@ -2989,12 +2996,8 @@ void CGameContext::ConchainSpecialMotdupdate(IConsole::IResult *pResult, void *p
pfnCallback(pResult, pCallbackUserData); pfnCallback(pResult, pCallbackUserData);
if(pResult->NumArguments()) if(pResult->NumArguments())
{ {
CNetMsg_Sv_Motd Msg;
Msg.m_pMessage = g_Config.m_SvMotd;
CGameContext *pSelf = (CGameContext *)pUserData; CGameContext *pSelf = (CGameContext *)pUserData;
for(int i = 0; i < MAX_CLIENTS; ++i) pSelf->SendMotd(-1);
if(pSelf->m_apPlayers[i])
pSelf->Server()->SendPackMsg(&Msg, MSGFLAG_VITAL, i);
} }
} }

View file

@ -219,6 +219,8 @@ public:
void SendChat(int ClientID, int Team, const char *pText, int SpamProtectionClientID = -1, int Flags = CHAT_SIX | CHAT_SIXUP); void SendChat(int ClientID, int Team, const char *pText, int SpamProtectionClientID = -1, int Flags = CHAT_SIX | CHAT_SIXUP);
void SendEmoticon(int ClientID, int Emoticon); void SendEmoticon(int ClientID, int Emoticon);
void SendWeaponPickup(int ClientID, int Weapon); void SendWeaponPickup(int ClientID, int Weapon);
void SendMotd(int ClientID);
void SendSettings(int ClientID);
void SendBroadcast(const char *pText, int ClientID, bool IsImportant = true); void SendBroadcast(const char *pText, int ClientID, bool IsImportant = true);
void List(int ClientID, const char *filter); void List(int ClientID, const char *filter);