From b4719d7147f29320ded3242450e3101a805aa841 Mon Sep 17 00:00:00 2001 From: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com> Date: Thu, 8 Sep 2022 15:45:55 +0300 Subject: [PATCH] Adminping fix w/ server config option (#15904) * the mop can only absorb liquid within 1 tile * return back tickets ping with config * Revert "the mop can only absorb liquid within 1 tile" This reverts commit 2cdd22363349835c6eab10a7f45403e41be27a59. * mhm * add init * some changes * some mistakes some mistakes Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com> Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com> --- code/modules/admin/verbs/adminhelp.dm | 1 + config/skyrat/skyrat_config.txt | 3 +++ .../master_files/code/_globalvars/configuration.dm | 3 +++ .../opposing_force/code/opposing_force_datum.dm | 4 ++-- .../modules/subsystems/code/ticket_ping/ticket_ss.dm | 11 +++++++++-- 5 files changed, 18 insertions(+), 4 deletions(-) diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index 33a44e91044..a95e8b41f21 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -251,6 +251,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) ticket_interactions = list() player_interactions = list() + addtimer(CALLBACK(src, .proc/add_to_ping_ss, 2 MINUTES)) //SKYRAT EDIT ADDITION - Ticket Ping | this is not responsible for the notification itself, but only for adding the ticket to the list of those to notify. if(is_bwoink) AddInteraction("[key_name_admin(usr)] PM'd [LinkedReplyName()]", player_message = "[key_name_admin(usr, include_name = FALSE)] PM'd [LinkedReplyName()]") message_admins("Ticket [TicketHref("#[id]")] created") diff --git a/config/skyrat/skyrat_config.txt b/config/skyrat/skyrat_config.txt index a886fdb0219..ffb4b420460 100644 --- a/config/skyrat/skyrat_config.txt +++ b/config/skyrat/skyrat_config.txt @@ -134,3 +134,6 @@ EVENT_FREQUENCY_UPPER 12000 ## What is the least amount of time the next event can run? EVENT_FREQUENCY_LOWER 9000 + +## Ticket ping frequency. Set 0 for disable that subsystem. 3000 - 5 minutes, 600 - 1 minute. +TICKET_PING_FREQUENCY 0 diff --git a/modular_skyrat/master_files/code/_globalvars/configuration.dm b/modular_skyrat/master_files/code/_globalvars/configuration.dm index 704aa68dc43..eb682164be2 100644 --- a/modular_skyrat/master_files/code/_globalvars/configuration.dm +++ b/modular_skyrat/master_files/code/_globalvars/configuration.dm @@ -45,3 +45,6 @@ GLOBAL_VAR_INIT(looc_allowed, TRUE) default = 15 MINUTES /datum/config_entry/flag/admin_event_uses_chaos + +/// Ticket ping frequency. Set 0 for disable that subsystem. 3000 - 5 minutes, 600 - 1 minute. +/datum/config_entry/number/ticket_ping_frequency diff --git a/modular_skyrat/modules/opposing_force/code/opposing_force_datum.dm b/modular_skyrat/modules/opposing_force/code/opposing_force_datum.dm index a7894280df4..caa985c95f9 100644 --- a/modular_skyrat/modules/opposing_force/code/opposing_force_datum.dm +++ b/modular_skyrat/modules/opposing_force/code/opposing_force_datum.dm @@ -503,7 +503,7 @@ SEND_SOUND(staff, sound('sound/effects/adminhelp.ogg')) window_flash(staff, ignorepref = TRUE) - addtimer(CALLBACK(src, .proc/add_to_ping_ss), 3 MINUTES) + addtimer(CALLBACK(src, .proc/add_to_ping_ss), 2 MINUTES) // this is not responsible for the notification itself, but only for adding the ticket to the list of those to notify. status = OPFOR_STATUS_AWAITING_APPROVAL can_edit = FALSE add_log(user.ckey, "Submitted to the OPFOR subsystem") @@ -882,7 +882,7 @@ return report.Join("\n") /datum/opposing_force/proc/add_to_ping_ss() - if(status != OPFOR_STATUS_APPROVED) + if(status == OPFOR_STATUS_APPROVED) return ticket_ping = TRUE diff --git a/modular_skyrat/modules/subsystems/code/ticket_ping/ticket_ss.dm b/modular_skyrat/modules/subsystems/code/ticket_ping/ticket_ss.dm index 96e590e91fe..1ae876a9c79 100644 --- a/modular_skyrat/modules/subsystems/code/ticket_ping/ticket_ss.dm +++ b/modular_skyrat/modules/subsystems/code/ticket_ping/ticket_ss.dm @@ -1,10 +1,17 @@ -/// Pings admins every 3 minutes for all open tickets/OPFOR applications +/// Pings admins every (time chosen in config) for all open tickets/OPFOR applications SUBSYSTEM_DEF(ticket_ping) name = "Ticket Ping" - flags = SS_BACKGROUND | SS_NO_INIT + flags = SS_BACKGROUND runlevels = RUNLEVEL_LOBBY | RUNLEVEL_SETUP | RUNLEVEL_GAME | RUNLEVEL_POSTGAME wait = 3 MINUTES +/datum/controller/subsystem/ticket_ping/Initialize(start_timeofday) + . = ..() + if(CONFIG_GET(number/ticket_ping_frequency) < 1) + flags |= SS_NO_FIRE + else + wait = CONFIG_GET(number/ticket_ping_frequency) + /datum/controller/subsystem/ticket_ping/fire(resumed) var/valid_ahelps var/valid_opfors