This commit is contained in:
AffectedArc07
2021-05-23 17:26:17 +01:00
parent 110f579464
commit 7486d026b7
72 changed files with 411 additions and 590 deletions
-287
View File
@@ -1,287 +0,0 @@
/datum/configuration
var/server_name = null // server name (for world name / status)
var/server_tag_line = null // server tagline (for showing on hub entry)
var/server_extra_features = null // server-specific extra features (for hub entry)
var/server_suffix = 0 // generate numeric suffix based on server port
var/minimum_client_build = 1421 // Build 1421 due to the middle mouse button exploit
var/pregame_timestart = 240 // Time it takes for the server to start the game
// var/enable_authentication = 0 // goon authentication
var/allow_Metadata = 0 // Metadata is supported.
var/popup_admin_pm = 0 //adminPMs to non-admins show in a pop-up 'reply' window when set to 1.
var/antag_hud_allowed = 0 // Ghosts can turn on Antagovision to see a HUD of who is the bad guys this round.
var/antag_hud_restricted = 0 // Ghosts that turn on Antagovision cannot rejoin the round.
var/respawn = 0
var/guest_jobban = 1
var/panic_bunker_threshold = 150 // above this player count threshold, never-before-seen players are blocked from connecting
var/usewhitelist = 0
var/automute_on = 0 //enables automuting/spam prevention
var/round_abandon_penalty_period = 30 MINUTES // Time from round start during which ghosting out is penalized
var/reactionary_explosions = 0 //If we use reactionary explosions, explosions that react to walls and doors
var/ssd_warning = 0
var/list_afk_minimum = 5 // How long people have to be AFK before it's listed on the "List AFK players" verb
var/max_maint_drones = 5 //This many drones can spawn,
var/allow_drone_spawn = 1 //assuming the admin allow them to.
var/drone_build_time = 1200 //A drone will become available every X ticks since last drone spawn. Default is 2 minutes.
var/forbid_singulo_possession = 0
var/check_randomizer = 0
//game_options.txt configs
var/bones_can_break = 1
var/revival_pod_plants = 1
var/revival_cloning = 1
var/revival_brain_life = -1
var/auto_toggle_ooc_during_round = 0
var/shuttle_refuel_delay = 12000
var/ban_legacy_system = 0 //Defines whether the server uses the legacy banning system with the files in /data or the SQL system. Config option in config.txt
var/simultaneous_pm_warning_timeout = 100
var/ghost_interaction = 0
var/default_laws = 0 //Controls what laws the AI spawns with.
var/starlight = 0 // Whether space turfs have ambient light or not
var/allow_holidays = 0
var/ooc_allowed = 1
var/looc_allowed = 1
var/dooc_allowed = 1
var/dsay_allowed = 1
var/disable_lobby_music = 0 // Disables the lobby music
var/disable_cid_warn_popup = 0 //disables the annoying "You have already logged in this round, disconnect or be banned" popup, because it annoys the shit out of me when testing.
var/max_loadout_points = 5 // How many points can be spent on extra items in character setup
var/disable_ooc_emoji = 0 // prevents people from using emoji in OOC
var/disable_karma = 0 // Disable all karma functions and unlock karma jobs by default
// Nightshift
var/randomize_shift_time = FALSE
var/enable_night_shifts = FALSE
// Developer
var/developer_express_start = 0
//Start now warning
var/start_now_confirmation = 0
//cube monkey limit
var/cubemonkeycap = 20
/// BYOND account age limit for notifcations of new accounts (Any accounts older than this value will not send notifications on first join)
var/byond_account_age_threshold = 7
/// Max amount of CIDs that one ckey can have attached to them before they trip a warning
var/max_client_cid_history = 3
/// Enable auto profiler of rounds
var/auto_profile = FALSE
/datum/configuration/proc/load(filename, type = "config") //the type can also be game_options, in which case it uses a different switch. not making it separate to not copypaste code - Urist
if(IsAdminAdvancedProcCall())
to_chat(usr, "<span class='boldannounce'>Config reload blocked: Advanced ProcCall detected.</span>")
message_admins("[key_name(usr)] attempted to reload configuration via advanced proc-call")
log_admin("[key_name(usr)] attempted to reload configuration via advanced proc-call")
return
var/list/Lines = file2list(filename)
for(var/t in Lines)
if(!t) continue
t = trim(t)
if(length(t) == 0)
continue
else if(copytext(t, 1, 2) == "#")
continue
var/pos = findtext(t, " ")
var/name = null
var/value = null
if(pos)
name = lowertext(copytext(t, 1, pos))
value = copytext(t, pos + 1)
else
name = lowertext(t)
if(!name)
continue
if(type == "config")
switch(name)
if("ban_legacy_system")
config.ban_legacy_system = 1
if("ssd_warning")
config.ssd_warning = 1
if("list_afk_minimum")
config.list_afk_minimum = text2num(value)
if("pregame_timestart")
config.pregame_timestart = text2num(value)
if("norespawn")
config.respawn = 0
if("servername")
config.server_name = value
if("server_tag_line")
config.server_tag_line = value
if("server_extra_features")
config.server_extra_features = value
if("serversuffix")
config.server_suffix = 1
if("minimum_client_build")
config.minimum_client_build = text2num(value)
if("guest_ban")
#warn AA clear this up
GLOB.guests_allowed = 0
if("panic_bunker_threshold")
config.panic_bunker_threshold = text2num(value)
if("usewhitelist")
config.usewhitelist = 1
if("allow_metadata")
config.allow_Metadata = 1
if("forbid_singulo_possession")
forbid_singulo_possession = 1
if("check_randomizer")
check_randomizer = 1
if("popup_admin_pm")
config.popup_admin_pm = 1
if("allow_holidays")
config.allow_holidays = 1
if("allow_antag_hud")
config.antag_hud_allowed = 1
if("antag_hud_restricted")
config.antag_hud_restricted = 1
if("automute_on")
automute_on = 1
if("ghost_interaction")
config.ghost_interaction = 1
if("allow_drone_spawn")
config.allow_drone_spawn = text2num(value)
if("drone_build_time")
config.drone_build_time = text2num(value)
if("max_maint_drones")
config.max_maint_drones = text2num(value)
if("starlight")
config.starlight = 1
if("disable_lobby_music")
config.disable_lobby_music = 1
if("disable_cid_warn_popup")
config.disable_cid_warn_popup = 1
if("max_loadout_points")
config.max_loadout_points = text2num(value)
if("round_abandon_penalty_period")
config.round_abandon_penalty_period = text2num(value) MINUTES
if("disable_ooc_emoji")
config.disable_ooc_emoji = 1
if("disable_karma")
config.disable_karma = 1
if("start_now_confirmation")
config.start_now_confirmation = 1
if("developer_express_start")
config.developer_express_start = 1
if("byond_account_age_threshold")
config.byond_account_age_threshold = text2num(value)
if("max_client_cid_history")
max_client_cid_history = text2num(value)
if("enable_auto_profiler")
auto_profile = TRUE
else
log_config("Unknown setting in configuration: '[name]'")
else if(type == "game_options")
value = text2num(value)
switch(name)
if("revival_pod_plants")
config.revival_pod_plants = value
if("revival_cloning")
config.revival_cloning = value
if("revival_brain_life")
config.revival_brain_life = value
if("auto_toggle_ooc_during_round")
config.auto_toggle_ooc_during_round = 1
if("bones_can_break")
config.bones_can_break = value
if("shuttle_refuel_delay")
config.shuttle_refuel_delay = text2num(value)
if("reactionary_explosions")
config.reactionary_explosions = 1
if("bombcap")
var/BombCap = text2num(value)
if(!BombCap)
continue
if(BombCap < 4)
BombCap = 4
if(BombCap > 128)
BombCap = 128
#warn AA clear this up
GLOB.max_ex_devastation_range = round(BombCap/4)
GLOB.max_ex_heavy_range = round(BombCap/2)
GLOB.max_ex_light_range = BombCap
GLOB.max_ex_flash_range = BombCap
GLOB.max_ex_flame_range = BombCap
if("default_laws")
config.default_laws = text2num(value)
if("randomize_shift_time")
config.randomize_shift_time = TRUE
if("enable_night_shifts")
config.enable_night_shifts = TRUE
if("cubemonkey_cap")
config.cubemonkeycap = text2num(value)
else
log_config("Unknown setting in configuration: '[name]'")
@@ -21,6 +21,8 @@ GLOBAL_DATUM_INIT(configuration, /datum/server_configuration, new())
var/datum/configuration_section/gamemode_configuration/gamemode
/// Holder for the gateway configuration datum
var/datum/configuration_section/gateway_configuration/gateway
/// Holder for the general configuration datum
var/datum/configuration_section/general_configuration/general
/// Holder for the IPIntel configuration datum
var/datum/configuration_section/ipintel_configuration/ipintel
/// Holder for the job configuration datum
@@ -63,6 +65,7 @@ GLOBAL_DATUM_INIT(configuration, /datum/server_configuration, new())
event = new()
gamemode = new()
gateway = new()
general = new()
ipintel = new()
jobs = new()
logging = new()
@@ -90,6 +93,7 @@ GLOBAL_DATUM_INIT(configuration, /datum/server_configuration, new())
event.load_data(raw_config_data["event_configuration"])
gamemode.load_data(raw_config_data["gamemode_configuration"])
gateway.load_data(raw_config_data["gateway_configuration"])
general.load_data(raw_config_data["general_configuration"])
ipintel.load_data(raw_config_data["ipintel_configuration"])
jobs.load_data(raw_config_data["job_configuration"])
logging.load_data(raw_config_data["logging_configuration"])
@@ -103,7 +107,6 @@ GLOBAL_DATUM_INIT(configuration, /datum/server_configuration, new())
// And report the load
DIRECT_OUTPUT(world.log, "Config loaded in [stop_watch(start)]s")
pass() // Breakpoint here. If I left thing in, scream at me.
/datum/configuration_section
@@ -14,9 +14,9 @@
/// SQL password
var/password = "root" // Dont do this in prod. Please......
/// Database name
var/db = "feedback" // TODO: Rename to paradise_gamedb
var/db = "feedback" // AA TODO: Rename to paradise_gamedb
/// Table prefix
var/table_prefix = "erro_" // TODO: Remove table prefixes
var/table_prefix = "erro_" // AA TODO: Remove table prefixes
/// Time in seconds for async queries to time out
var/async_query_timeout = 10
/// Thread limit for async queries
@@ -0,0 +1,137 @@
/// Config holder for all general/misc things
/datum/configuration_section/general_configuration
/// Server name for the BYOND hub
var/server_name = "Paradise Station"
/// Tagline for the hub entry
var/server_tag_line = "The perfect mix of RP & action"
/// Server features in a newline
var/server_features = "Medium RP, varied species/jobs"
/// Should bans be stored in the DB
var/use_database_bans = FALSE
/// Allow character OOC notes
var/allow_character_metadata = TRUE
/// Time in seconds for the pregame lobby
var/lobby_time = 240
/// Ban all Guest BYOND accounts
var/guest_ban = TRUE
/// Player threshold to automatically enable panic bunker
var/panic_bunker_threshold = 150
/// Allow players to use AntagHUD?
var/allow_antag_hud = TRUE
/// Forbid players from rejoining if they use AntagHUD?
var/restrict_antag_hud_rejoin = TRUE
/// Enable respanws by default?
var/respawn_enabled = FALSE
/// Enable karma? Disable to lockout awarding and unlock everything
var/enable_karma = TRUE
/// Enable CID randomiser buster?
var/enabled_cid_randomiser_buster = FALSE
/// Forbid admins from posessing and flying the singulo round
var/forbid_singulo_possession = FALSE
/// Force open a PM window when replied to? This is very annoying
var/popup_admin_pm = FALSE
/// Announce holidays (christmas, halloween, etc etc)
var/allow_holidays = TRUE
/// Enable auto muting in all chat channels
var/enable_auto_mute = FALSE
/// Show a warning to players to make them accept touching an SSD
var/ssd_warning = TRUE
/// Allow ghosts to spin chairs round
var/ghost_interaction = FALSE
/// Enable/disable starlight to light up space
var/starlight = TRUE
/// Disable lobby music?
var/disable_lobby_music = FALSE
/// Disable a popup if 2 users are on the same CID?
var/disable_cid_warning_popup = FALSE
/// Amount of loadout points non-donors should get
var/base_loadout_points = 5
/// Respawnability loss penalty for eary cryoing (minutes)
var/cryo_penalty_period = 30
/// Enable OOC emojis?
var/enable_ooc_emoji = TRUE
/// Auto start the game if on a local test server
var/developer_express_start = FALSE
/// Minimum client build. Keep above 1421 due to exploits
var/minimum_client_build = 1421
/// Give a confirm button for the "Start Now" verb
var/start_now_confirmation = TRUE
/// BYOND account age threshold for first join alerts
var/byond_account_age_threshold = 3
/// Max CIDs a client can have history of before a warning is thrown
var/max_client_cid_history = 20
/// Enable automatic profiling to profile.json
var/enable_auto_profiler = TRUE
/// Auto disable OOC on roundstart?
var/auto_disable_ooc = TRUE
/// Do we want to allow bones to break?
var/breakable_bones = TRUE
/// Enable/disable revival pod plants
var/enable_revival_pod_plants = TRUE
/// Enable/disable cloning
var/enable_cloning = TRUE
/// Randomise shift time instead of it always being 12:00?
var/randomise_shift_time = TRUE
/// Enable night-shift lighting?
var/enable_night_shifts = TRUE
/// Cap for monkey cube monkey spawns
var/monkey_cube_cap = 32
/// Enable to make explosions react to obstacles instead of ignoring them
var/reactionary_explosions = TRUE
/// Bomb cap (Devastation) Other values will be calculated around this
var/bomb_cap = 20
/// Time for a brain to keep its spark of life (deciseconds)
var/revival_brain_life = 10 MINUTES
/// Enable random AI lawsets from the default=TRUE pool
var/random_ai_lawset = TRUE
/datum/configuration_section/general_configuration/load_data(list/data)
// Use the load wrappers here. That way the default isnt made 'null' if you comment out the config line
// A lot of bools
CONFIG_LOAD_BOOL(use_database_bans, data["use_database_bans"])
CONFIG_LOAD_BOOL(allow_character_metadata, data["allow_character_metadata"])
CONFIG_LOAD_BOOL(guest_ban, data["guest_ban"])
CONFIG_LOAD_BOOL(allow_antag_hud, data["allow_antag_hud"])
CONFIG_LOAD_BOOL(restrict_antag_hud_rejoin, data["restrict_antag_hud_rejoin"])
CONFIG_LOAD_BOOL(respawn_enabled, data["respawn_enabled"])
CONFIG_LOAD_BOOL(enable_karma, data["enable_karma"])
CONFIG_LOAD_BOOL(enabled_cid_randomiser_buster, data["enable_cid_randomiser_buster"])
CONFIG_LOAD_BOOL(forbid_singulo_possession, data["prevent_admin_singlo_possession"])
CONFIG_LOAD_BOOL(popup_admin_pm, data["popup_admin_pm"])
CONFIG_LOAD_BOOL(allow_holidays, data["allow_holidays"])
CONFIG_LOAD_BOOL(enable_auto_mute, data["enable_auto_mute"])
CONFIG_LOAD_BOOL(ssd_warning, data["ssd_warning"])
CONFIG_LOAD_BOOL(ghost_interaction, data["ghost_interaction"])
CONFIG_LOAD_BOOL(starlight, data["starlight"])
CONFIG_LOAD_BOOL(disable_lobby_music, data["disable_lobby_music"])
CONFIG_LOAD_BOOL(disable_cid_warning_popup, data["disable_cid_warning_popup"])
CONFIG_LOAD_BOOL(enable_ooc_emoji, data["enable_ooc_emoji"])
CONFIG_LOAD_BOOL(developer_express_start, data["developer_express_start"])
CONFIG_LOAD_BOOL(start_now_confirmation, data["start_now_confirmation"])
CONFIG_LOAD_BOOL(enable_auto_profiler, data["enable_auto_profiler"])
CONFIG_LOAD_BOOL(auto_disable_ooc, data["auto_disable_ooc"])
CONFIG_LOAD_BOOL(breakable_bones, data["breakable_bones"])
CONFIG_LOAD_BOOL(enable_revival_pod_plants, data["enable_revival_pod_plants"])
CONFIG_LOAD_BOOL(enable_cloning, data["enable_cloning"])
CONFIG_LOAD_BOOL(randomise_shift_time, data["randomise_shift_time"])
CONFIG_LOAD_BOOL(enable_night_shifts, data["enable_night_shifts"])
CONFIG_LOAD_BOOL(reactionary_explosions, data["reactionary_explosions"])
CONFIG_LOAD_BOOL(random_ai_lawset, data["random_ai_lawset"])
// Numbers
CONFIG_LOAD_NUM(lobby_time, data["lobby_time"])
CONFIG_LOAD_NUM(panic_bunker_threshold, data["panic_bunker_threshold"])
CONFIG_LOAD_NUM(base_loadout_points, data["base_loadout_points"])
CONFIG_LOAD_NUM(cryo_penalty_period, data["cryo_penalty_period"])
CONFIG_LOAD_NUM(minimum_client_build, data["minimum_client_build"])
CONFIG_LOAD_NUM(byond_account_age_threshold, data["byond_account_age_threshold"])
CONFIG_LOAD_NUM(max_client_cid_history, data["max_client_cid_history"])
CONFIG_LOAD_NUM(monkey_cube_cap, data["monkey_cube_cap"])
CONFIG_LOAD_NUM(bomb_cap, data["bomb_cap"])
CONFIG_LOAD_NUM(revival_brain_life, data["revival_brain_life"])
// Strings
CONFIG_LOAD_STR(server_name, data["server_name"])
CONFIG_LOAD_STR(server_tag_line, data["server_tag_line"])
CONFIG_LOAD_STR(server_features, data["server_features"])
+2 -2
View File
@@ -206,8 +206,8 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
log_startup_progress("Initializations complete within [time] second[time == 1 ? "" : "s"]!")
if(config.developer_express_start & SSticker.current_state == GAME_STATE_PREGAME)
SSticker.current_state = GAME_STATE_SETTING_UP
if(GLOB.configuration.general.developer_express_start)
SSticker.force_start = TRUE
if(!current_runlevel)
SetRunLevel(1)
+2 -2
View File
@@ -266,11 +266,11 @@ SUBSYSTEM_DEF(changelog)
usr.client.github()
// Takes a PR number as argument
if(href_list["openPR"])
if(GLOB?.configuration?.url.github_url)
if(GLOB.configuration.url.github_url)
if(alert("This will open PR #[href_list["openPR"]] in your browser. Are you sure?",,"Yes","No")=="No")
return
// If the github URL in the config has a trailing slash, it doesnt matter here, thankfully github accepts having a double slash: https://github.com/org/repo//pull/1
var/url = "[GLOB?.configuration?.url.github_url]/pull/[href_list["openPR"]]"
var/url = "[GLOB.configuration.url.github_url]/pull/[href_list["openPR"]]"
usr << link(url)
else
to_chat(usr, "<span class='danger'>The GitHub URL is not set in the server configuration. PRs cannot be opened from changelog view. Please inform the server host.</span>")
+1 -1
View File
@@ -5,7 +5,7 @@ SUBSYSTEM_DEF(holiday)
var/list/holidays
/datum/controller/subsystem/holiday/Initialize(start_timeofday)
if(!config.allow_holidays)
if(!GLOB.configuration.general.allow_holidays)
return ..() //Holiday stuff was not enabled in the config!
var/YY = text2num(time2text(world.timeofday, "YY")) // get the current year
+1 -1
View File
@@ -13,7 +13,7 @@ SUBSYSTEM_DEF(lighting)
/datum/controller/subsystem/lighting/Initialize(timeofday)
if(!initialized)
if(config.starlight)
if(GLOB.configuration.general.starlight)
for(var/I in GLOB.all_areas)
var/area/A = I
if(A.dynamic_lighting == DYNAMIC_LIGHTING_IFSTARLIGHT)
+2 -2
View File
@@ -70,8 +70,8 @@ SUBSYSTEM_DEF(mapping)
GLOB.map_name = "Unknown"
// World name
if(config && config.server_name)
world.name = "[config.server_name]: [station_name()]"
if(GLOB.configuration.general.server_name)
world.name = "[GLOB.configuration.general.server_name]: [station_name()]"
else
world.name = station_name()
+2 -2
View File
@@ -14,9 +14,9 @@ SUBSYSTEM_DEF(nightshift)
var/high_security_mode = FALSE
/datum/controller/subsystem/nightshift/Initialize()
if(!config.enable_night_shifts)
if(!GLOB.configuration.general.enable_night_shifts)
can_fire = FALSE
if(config.randomize_shift_time)
if(GLOB.configuration.general.randomise_shift_time)
GLOB.gametime_offset = rand(0, 23) HOURS
return ..()
+2 -2
View File
@@ -13,7 +13,7 @@ SUBSYSTEM_DEF(profiler)
..("F:[round(fetch_cost, 1)]ms | W:[round(write_cost, 1)]ms")
/datum/controller/subsystem/profiler/Initialize()
if(!config.auto_profile)
if(!GLOB.configuration.general.enable_auto_profiler)
StopProfiling() //Stop the early start profiler if we dont want it on in the config
flags |= SS_NO_FIRE
return ..()
@@ -22,7 +22,7 @@ SUBSYSTEM_DEF(profiler)
DumpFile()
/datum/controller/subsystem/profiler/Shutdown()
if(config.auto_profile)
if(GLOB.configuration.general.enable_auto_profiler)
DumpFile()
return ..()
+6 -2
View File
@@ -1,4 +1,6 @@
#define CALL_SHUTTLE_REASON_LENGTH 12
/// Time elapsed from roundstart before shuttle calls are allowed
#define SHUTTLE_REFUEL_DELAY 20 MINUTES
SUBSYSTEM_DEF(shuttle)
name = "Shuttle"
@@ -42,6 +44,8 @@ SUBSYSTEM_DEF(shuttle)
var/sold_atoms = ""
var/list/hidden_shuttle_turfs = list() //all turfs hidden from navigation computers associated with a list containing the image hiding them and the type of the turf they are pretending to be
var/list/hidden_shuttle_turf_images = list() //only the images from the above list
/// Default refuel delay
var/refuel_delay = SHUTTLE_REFUEL_DELAY
/datum/controller/subsystem/shuttle/Initialize(start_timeofday)
ordernum = rand(1,9000)
@@ -97,7 +101,7 @@ SUBSYSTEM_DEF(shuttle)
/datum/controller/subsystem/shuttle/proc/secondsToRefuel()
var/elapsed = world.time - SSticker.round_start_time
var/remaining = round((config.shuttle_refuel_delay - elapsed) / 10)
var/remaining = round((refuel_delay - elapsed) / 10)
return remaining > 0 ? remaining : 0
/datum/controller/subsystem/shuttle/proc/requestEvac(mob/user, call_reason)
@@ -115,7 +119,7 @@ SUBSYSTEM_DEF(shuttle)
emergency = backup_shuttle
if(secondsToRefuel())
to_chat(user, "The emergency shuttle is refueling. Please wait another [abs(round(((world.time - SSticker.round_start_time) - config.shuttle_refuel_delay)/600))] minutes before trying again.")
to_chat(user, "The emergency shuttle is refueling. Please wait another [abs(round(((world.time - SSticker.round_start_time) - refuel_delay)/600))] minutes before trying again.")
return
switch(emergency.mode)
+4 -2
View File
@@ -77,9 +77,9 @@ SUBSYSTEM_DEF(ticker)
switch(current_state)
if(GAME_STATE_STARTUP)
// This is ran as soon as the MC starts firing, and should only run ONCE, unless startup fails
round_start_time = world.time + (config.pregame_timestart * 10)
round_start_time = world.time + (GLOB.configuration.general.lobby_time * 10)
to_chat(world, "<B><span class='darkmblue'>Welcome to the pre-game lobby!</span></B>")
to_chat(world, "Please, setup your character and select ready. Game will start in [config.pregame_timestart] seconds")
to_chat(world, "Please, setup your character and select ready. Game will start in [GLOB.configuration.general.lobby_time] seconds")
current_state = GAME_STATE_PREGAME
fire() // TG says this is a good idea
for(var/mob/new_player/N in GLOB.player_list)
@@ -280,6 +280,8 @@ SUBSYSTEM_DEF(ticker)
else
log_debug("Playercount: [playercount] versus trigger: [highpop_trigger] - keeping standard job config")
SSnightshift.check_nightshift()
#ifdef UNIT_TESTS
RunUnitTests()
#endif
@@ -220,10 +220,10 @@ SUBSYSTEM_DEF(tickets)
"Man Up" = "Man Up",
)
if(GLOB?.configuration?.url.banappeals_url)
if(GLOB.configuration.url.banappeals_url)
response_phrases["Appeal on the Forums"] = "Appealing a ban must occur on the forums. Privately messaging, or adminhelping about your ban will not resolve it. To appeal your ban, please head to <a href='[GLOB.configuration.url.banappeals_url]'>[GLOB.configuration.url.banappeals_url]</a>"
if(GLOB?.configuration?.url.github_url)
if(GLOB.configuration.url.github_url)
response_phrases["Github Issue Report"] = "To report a bug, please go to our <a href='[GLOB.configuration.url.github_url]'>Github page</a>. Then go to 'Issues'. Then 'New Issue'. Then fill out the report form. If the report would reveal current-round information, file it after the round ends."
var/sorted_responses = list()
+11 -11
View File
@@ -53,9 +53,9 @@ SUBSYSTEM_DEF(vote)
voting.Cut()
current_votes.Cut()
if(auto_muted && !config.ooc_allowed && !(config.auto_toggle_ooc_during_round && SSticker.current_state == GAME_STATE_PLAYING))
if(auto_muted && !GLOB.ooc_enabled && !(GLOB.configuration.general.auto_disable_ooc && SSticker.current_state == GAME_STATE_PLAYING))
auto_muted = 0
config.ooc_allowed = !( config.ooc_allowed )
GLOB.ooc_enabled = TRUE
to_chat(world, "<b>The OOC channel has been automatically enabled due to vote end.</b>")
log_admin("OOC was toggled automatically due to vote end.")
message_admins("OOC has been toggled on automatically.")
@@ -257,21 +257,21 @@ SUBSYSTEM_DEF(vote)
if(mode == "gamemode" && SSticker.ticker_going)
SSticker.ticker_going = FALSE
to_chat(world, "<font color='red'><b>Round start has been delayed.</b></font>")
if(mode == "crew_transfer" && config.ooc_allowed)
auto_muted = 1
config.ooc_allowed = !( config.ooc_allowed )
if(mode == "crew_transfer" && GLOB.ooc_enabled)
auto_muted = TRUE
GLOB.ooc_enabled = FALSE
to_chat(world, "<b>The OOC channel has been automatically disabled due to a crew transfer vote.</b>")
log_admin("OOC was toggled automatically due to crew_transfer vote.")
message_admins("OOC has been toggled off automatically.")
if(mode == "gamemode" && config.ooc_allowed)
auto_muted = 1
config.ooc_allowed = !( config.ooc_allowed )
if(mode == "gamemode" && GLOB.ooc_enabled)
auto_muted = TRUE
GLOB.ooc_enabled = FALSE
to_chat(world, "<b>The OOC channel has been automatically disabled due to the gamemode vote.</b>")
log_admin("OOC was toggled automatically due to gamemode vote.")
message_admins("OOC has been toggled off automatically.")
if(mode == "custom" && config.ooc_allowed)
auto_muted = 1
config.ooc_allowed = !( config.ooc_allowed )
if(mode == "custom" && GLOB.ooc_enabled)
auto_muted = TRUE
GLOB.ooc_enabled = FALSE
to_chat(world, "<b>The OOC channel has been automatically disabled due to a custom vote.</b>")
log_admin("OOC was toggled automatically due to custom vote.")
message_admins("OOC has been toggled off automatically.")
+1 -1
View File
@@ -28,7 +28,7 @@
return
switch(controller)
if("Configuration")
debug_variables(config)
debug_variables(GLOB.configuration)
SSblackbox.record_feedback("tally", "admin_verb", 1, "Debug Config")
if("pAI")
debug_variables(GLOB.paiController)