mirror of
https://github.com/ddnet/ddnet.git
synced 2024-11-19 22:48:18 +00:00
Admin-Kick-Protection
Add IsAuthed(int ClientID); function. Add kickprotection for admins (Remote Console logged in players) Add Anti-Self-Kick (minor)
This commit is contained in:
parent
f2920ea5d8
commit
9a5a19e7c7
|
@ -49,6 +49,8 @@ public:
|
|||
virtual void *SnapNewItem(int Type, int Id, int Size) = 0;
|
||||
|
||||
virtual void SnapSetStaticsize(int ItemType, int Size) = 0;
|
||||
|
||||
virtual bool IsAuthed(int ClientID) = 0;
|
||||
};
|
||||
|
||||
class IGameServer : public IInterface
|
||||
|
|
|
@ -293,6 +293,13 @@ int CServer::Init()
|
|||
return 0;
|
||||
}
|
||||
|
||||
bool CServer::IsAuthed(int ClientID)
|
||||
{
|
||||
if(m_aClients[ClientID].m_Authed)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
int CServer::GetClientInfo(int ClientID, CClientInfo *pInfo)
|
||||
{
|
||||
dbg_assert(ClientID >= 0 && ClientID < MAX_CLIENTS, "client_id is not valid");
|
||||
|
|
|
@ -138,6 +138,7 @@ public:
|
|||
|
||||
int Init();
|
||||
|
||||
bool IsAuthed(int ClientID);
|
||||
int GetClientInfo(int ClientID, CClientInfo *pInfo);
|
||||
void GetClientIP(int ClientID, char *pIPString, int Size);
|
||||
const char *ClientName(int ClientId);
|
||||
|
|
|
@ -647,6 +647,19 @@ void CGameContext::OnMessage(int MsgId, CUnpacker *pUnpacker, int ClientId)
|
|||
SendChatTarget(ClientId, "Invalid client id to kick");
|
||||
return;
|
||||
}
|
||||
if(KickId == ClientId)
|
||||
{
|
||||
SendChatTarget(ClientId, "You cant kick yourself");
|
||||
return;
|
||||
}
|
||||
if(Server()->IsAuthed(KickId))
|
||||
{
|
||||
SendChatTarget(ClientId, "You cant kick admins");
|
||||
char aBufKick[128];
|
||||
str_format(aBufKick, sizeof(aBufKick), "%s called for vote to kick you", Server()->ClientName(ClientId));
|
||||
SendChatTarget(KickId, aBufKick);
|
||||
return;
|
||||
}
|
||||
|
||||
str_format(aChatmsg, sizeof(aChatmsg), "%s called for vote to kick '%s'", Server()->ClientName(ClientId), Server()->ClientName(KickId));
|
||||
str_format(aDesc, sizeof(aDesc), "Kick '%s'", Server()->ClientName(KickId));
|
||||
|
|
Loading…
Reference in a new issue