1
0
mirror of https://github.com/OpenTTD/OpenTTD.git synced 2025-08-21 21:49:10 +00:00

(svn r1322) -Add: banning system (mostly tnx to guru3)

A server can ban people via ClientList
  Both server and dedicated can do it via console:
   'ban', 'unban', 'banlist'.
This commit is contained in:
truelight
2005-01-02 12:03:43 +00:00
parent 5d06584545
commit a11f46fed4
9 changed files with 160 additions and 13 deletions

View File

@@ -953,10 +953,21 @@ static void ClientList_Kick(byte client_no)
SEND_COMMAND(PACKET_SERVER_ERROR)(&_clients[client_no], NETWORK_ERROR_KICKED);
}
/*static void ClientList_Ban(byte client_no)
static void ClientList_Ban(byte client_no)
{
// TODO
}*/
uint i;
uint32 ip = NetworkFindClientInfo(client_no)->client_ip;
for (i = 0; i < lengthof(_network_ban_list); i++) {
if (_network_ban_list[i] == NULL || _network_ban_list[i][0] == '\0') {
_network_ban_list[i] = strdup(inet_ntoa(*(struct in_addr *)&ip));
break;
}
}
if (client_no < MAX_PLAYERS)
SEND_COMMAND(PACKET_SERVER_ERROR)(&_clients[client_no], NETWORK_ERROR_KICKED);
}
static void ClientList_GiveMoney(byte client_no)
{
@@ -1090,8 +1101,8 @@ static Window *PopupClientList(Window *w, int client_no, int x, int y)
GetString(_clientlist_action[i], STR_NETWORK_CLIENTLIST_KICK);
_clientlist_proc[i++] = &ClientList_Kick;
/* sprintf(clientlist_action[i],"Ban");
clientlist_proc[i++] = &ClientList_Ban;*/
sprintf(_clientlist_action[i],"Ban");
_clientlist_proc[i++] = &ClientList_Ban;
}
if (i == 0) {