]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Call a hook when the server player count changes to or from zero
authorbones_was_here <bones_was_here@xa.org.au>
Sat, 2 Apr 2022 07:40:46 +0000 (17:40 +1000)
committerbones_was_here <bones_was_here@xa.org.au>
Wed, 6 Apr 2022 07:55:25 +0000 (17:55 +1000)
qcsrc/server/client.qc
xonotic-server.cfg

index a5f508851b00876304e486f92f9fcb9634d6f438..2c3bdc25ccf07e90931e1c0704cd09c44a0ffc71 100644 (file)
@@ -1194,6 +1194,9 @@ void ClientConnect(entity this)
 
        MUTATOR_CALLHOOK(ClientConnect, this);
 
+       if (player_count == 1)
+               localcmd("\nsv_hook_firstjoin\n");
+
        if (IS_REAL_CLIENT(this) && !IS_PLAYER(this) && !autocvar_g_campaign)
                CS(this).motd_actived_time = -1; // the welcome message is shown by the client
 }
@@ -1262,6 +1265,9 @@ void ClientDisconnect(entity this)
        player_powerups_remove_all(this); // stop powerup sound
 
        ONREMOVE(this);
+
+       if (player_count == 0)
+               localcmd("\nsv_hook_lastleave\n");
 }
 
 void ChatBubbleThink(entity this)
index 0be38b30360e850b6eea517b65ea13520558e978..6548b19e88fd0773f1b67c9bc20ba665136fb6bb 100644 (file)
@@ -14,6 +14,10 @@ set sv_mapchange_delay 5 "delay by this many seconds after the match ends before
 set minplayers 0 "fill server with bots to reach this number of players in teamless games (if bot_number is not enough)"
 set minplayers_per_team 0 "fill server with bots to reach this number of players per team (if bot_number is not enough)"
 
+// executed when the first player joins or the last player leaves
+alias sv_hook_firstjoin
+alias sv_hook_lastleave
+
 // restart server if all players hit "ready"-button
 set sv_ready_restart_after_countdown 0 "reset players and map items after the countdown ended, instead of at the beginning of the countdown"