diff --git a/code/__DEFINES/server_tools.dm b/code/__DEFINES/server_tools.dm index f8d1c316d8..744559f6c7 100644 --- a/code/__DEFINES/server_tools.dm +++ b/code/__DEFINES/server_tools.dm @@ -11,6 +11,7 @@ #define SERVICE_CMD_HARD_REBOOT "hard_reboot" #define SERVICE_CMD_GRACEFUL_SHUTDOWN "graceful_shutdown" #define SERVICE_CMD_WORLD_ANNOUNCE "world_announce" +#define SERVICE_CMD_IRC_CHECK "irc_check" #define SERVICE_CMD_IRC_STATUS "irc_status" #define SERVICE_CMD_ADMIN_MSG "adminmsg" #define SERVICE_CMD_NAME_CHECK "namecheck" diff --git a/code/modules/server_tools/server_tools.dm b/code/modules/server_tools/server_tools.dm index 0594ee810f..d4a5d629ba 100644 --- a/code/modules/server_tools/server_tools.dm +++ b/code/modules/server_tools/server_tools.dm @@ -64,7 +64,12 @@ GLOBAL_PROTECT(reboot_mode) var/status = "Admins: [allmins.len] (Active: [english_list(adm["present"])] AFK: [english_list(adm["afk"])] Stealth: [english_list(adm["stealth"])] Skipped: [english_list(adm["noflags"])]). " status += "Players: [GLOB.clients.len] (Active: [get_active_player_count(0,1,0)]). Mode: [SSticker.mode ? SSticker.mode.name : "Not started"]." return status - + if(SERVICE_CMD_IRC_CHECK) + var/rtod = REALTIMEOFDAY + if(rtod - last_irc_status < IRC_STATUS_THROTTLE) + return + last_irc_status = rtod + return "[GLOB.clients.len] players on [SSmapping.config.map_name], Mode: [GLOB.master_mode]; Round [SSticker.HasRoundStarted() ? (SSticker.IsRoundInProgress() ? "Active" : "Finishing") : "Starting"] -- [config.server ? config.server : "byond://[address]:[port]"]" if(SERVICE_CMD_ADMIN_MSG) return IrcPm(params[SERVICE_CMD_PARAM_TARGET], params[SERVICE_CMD_PARAM_MESSAGE], params[SERVICE_CMD_PARAM_SENDER])