Feature #7756: Allow server to supply a reason to kicked/banned clients

This commit adds the missing feature of allowing the server owner to
    provide a reason for kicking/banning a client, which the client sees in
    a pop-up window after being kicked. The implementation extends the
    network protocol by adding a new network action called
    NETWORK_ACTION_KICKED that is capable of having an error string, unlike
    the other network error packages.  Additionally, the kick function
    broadcasts a message to all clients about the kicked client and the
    reason for the kick.
This commit is contained in:
Bjarni Thor
2020-01-21 15:39:10 +00:00
committed by Charles Pigott
parent b5d56559d2
commit 5880f1479f
9 changed files with 66 additions and 26 deletions

View File

@@ -1687,12 +1687,12 @@ static WindowDesc _client_list_popup_desc(
/* Here we start to define the options out of the menu */
static void ClientList_Kick(const NetworkClientInfo *ci)
{
NetworkServerKickClient(ci->client_id);
NetworkServerKickClient(ci->client_id, nullptr);
}
static void ClientList_Ban(const NetworkClientInfo *ci)
{
NetworkServerKickOrBanIP(ci->client_id, true);
NetworkServerKickOrBanIP(ci->client_id, true, nullptr);
}
static void ClientList_GiveMoney(const NetworkClientInfo *ci)