diff --git a/code/_globalvars/configuration.dm b/code/_globalvars/configuration.dm index 21155f2d2dd..99e394ff6fe 100644 --- a/code/_globalvars/configuration.dm +++ b/code/_globalvars/configuration.dm @@ -29,6 +29,7 @@ var/global/comms_allowed = 0 //By default, the server does not allow messages to //Cross server communications var/global/cross_address = "byond://" //This needs to be global as the message sent contains the comms key. var/global/cross_allowed = 0 //Don't bother attempting to send if the address wasn't set. +var/global/allow_panic_bunker_to_cross = 0 //Reconnect a player to a linked server if this server isn't accepting new players var/global/medal_hub = null var/global/medal_pass = " " diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index 7c33a9962ed..3caa873cb1a 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -386,6 +386,8 @@ global.cross_allowed = 1 if("cross_comms_name") cross_name = value + if("send_panic_bunkered_to_cross_server") + global.allow_panic_bunker_to_cross = 1 if("medal_hub_address") global.medal_hub = value if("medal_hub_password") diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index ef910622f9d..290f4cf5a45 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -196,6 +196,10 @@ var/next_external_rsc = 0 log_access("Failed Login: [key] - New account attempting to connect during panic bunker") message_admins("Failed Login: [key] - New account attempting to connect during panic bunker") src << "Sorry but the server is currently not accepting connections from never before seen players." + if(global.cross_allowed && global.allow_panic_bunker_to_cross) + src << "Sending you to [global.cross_address]." + winset(src, null, "command=.options") + src << link(global.cross_address) qdel(src) return 0 diff --git a/config/config.txt b/config/config.txt index a8cc323f2ce..abe10ad3828 100644 --- a/config/config.txt +++ b/config/config.txt @@ -241,6 +241,11 @@ NOTIFY_NEW_PLAYER_AGE 0 ## Requires database #PANIC_BUNKER +## If panic bunker is on and a player is rejected (see above), attempt to send them to the connected server (see CROSS_SERVER_ADDRESS) instead. +## Do not use this setting if both servers are bunkered and have this setting, players will just bounce endlessly between rejections. +## Requires PANIC_BUNKER and CROSS_SERVER_ADDRESS +#SEND_PANIC_BUNKERED_TO_CROSS_SERVER + ## Uncomment to have the changelog file automatically open when a user connects and hasn't seen the latest changelog #AGGRESSIVE_CHANGELOG