/* This is for any host that would like their server to appear on the main SS13 hub.
To use it, simply replace the password above, with the password found below, and it should work.
If not, let us know on the main tgstation IRC channel of irc.rizon.net #tgstation13 we can help you there.
hub = "Exadv1.spacestation13"
hub_password = "kMZy3U5jJHSiBQjr"
name = "Space Station 13"
*/
#define OPEN_TO_HUB_PLAYERCOUNT_DEFAULT 15
#define DEFAULT_SERVER_NAME "/vg/station"
#define DEFAULT_SERVER_DESC " - Not dead yet!"
/world
hub = "Exadv1.spacestation13"
hub_password = "SORRYNOPASSWORD"
name = "/vg/station"
var/global/byond_hub_open = FALSE
var/global/byond_server_name = DEFAULT_SERVER_NAME
var/global/byond_server_desc = DEFAULT_SERVER_DESC
var/global/byond_hub_playercount = OPEN_TO_HUB_PLAYERCOUNT_DEFAULT
/datum/admins/proc/HubPanel()
if(!check_rights(R_SERVER))
return
var/dat = {"
Hub Panel
\n
Changes persist between rounds!
Changes may take a few minutes to take effect.
BYOND Hub availability is [byond_hub_open ? "ENABLED" : "DISABLED"]
Server is available on hub when playercount is less than: [byond_hub_playercount]
Hub Entry (Edit Name) (Edit Desc)
[byond_server_name]
[byond_server_desc]
\[station_name\], \[map_name\], \[roundtime\], \[playercount\] can all be used to substitute their respective values.
"}
usr << browse(dat, "window=admin2;size=600x400")
return
/world/proc/update_status()
if(!byond_hub_open)
hub_password = "SORRYNOPASSWORD"
return
var/players = 0
for (var/mob/M in player_list)
if (M.client)
players++
if(players > byond_hub_playercount)
hub_password = "SORRYNOPASSWORD"
return
hub_password = "kMZy3U5jJHSiBQjr" // Open the gates!
var/s= ""
s += "[byond_server_name]"
s += "[byond_server_desc]"
s = replacetext(s, "\[playercount\]", "[players]")
s = replacetext(s, "\[station_name\]", "[station_name()]")
s = replacetext(s, "\[map_name\]", "[map.nameLong]")
if(!ticker || (ticker && !going))
s += "
STARTING"
else if(ticker.current_state <= GAME_STATE_PREGAME && going && ticker.pregame_timeleft)
s += "
Starting: [round(ticker.pregame_timeleft - world.timeofday) / 10]"
else if(ticker.current_state == GAME_STATE_SETTING_UP)
s += "
Starting: Now"
else if(ticker.current_state == GAME_STATE_PLAYING)
s += "
Time: [game_start_elapsed_time()]"
else if(ticker.current_state == GAME_STATE_FINISHED)
s += "
RESTARTING"
if(emergency_shuttle.online && emergency_shuttle.location != 2)
s += " | Shuttle: [emergency_shuttle.location == 1 ? "ETD" : "ETA"] [emergency_shuttle.get_shuttle_timer()]"
s += "
Map: [map.nameLong]"
if(vote.winner && vote.map_paths)
s += " | Next: [vote.map_paths[vote.winner]]"
/* does this help? I do not know */ // neither do I!
if (src.status != s)
src.status = s