From 7c91cd6641e7394773c9c4079352714ac647da92 Mon Sep 17 00:00:00 2001 From: Joe Schmoe Date: Mon, 13 Aug 2018 02:39:52 +0200 Subject: [PATCH] basic freezing --- code/modules/admin/admin.dm | 1 + code/modules/admin/topic.dm | 15 +++++++++++++++ code/modules/client/client_procs.dm | 4 ++++ yogstation.dme | 2 +- yogstation/code/modules/client/client_procs.dm | 6 ++++++ yogstation/code/modules/client/preferences.dm | 3 ++- 6 files changed, 29 insertions(+), 2 deletions(-) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index b1353ac0362b..e812d6e3ee37 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -107,6 +107,7 @@ body += "ADMINHELP | " body += "DEADCHAT\]" body += "(toggle all)" + body += "FREEZE" //yogs - adminfreezing body += "

" body += "Jump to | " diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 2a704b3e9168..410a398ccb0a 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -22,6 +22,21 @@ if(!CheckAdminHref(href, href_list)) return + if(href_list["afreeze"]) + if(!check_rights(R_ADMIN)) + return + var/mob/M = locate(href_list["afreeze"]) in GLOB.mob_list + if(!M || !M.client) + return + if(M.client.prefs.afreeze) + to_chat(M, "You are no longer frozen.") + M.client.prefs.afreeze = FALSE + M.notransform = FALSE + else + to_chat(M, "You have been frozen by an administrator.") + M.client.prefs.afreeze = TRUE + M.notransform = TRUE + if(href_list["ahelp"]) if(!check_rights(R_ADMIN, TRUE)) return diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index f42e1135bf8c..9f76a35023e9 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -36,6 +36,10 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( if(!usr || usr != mob) //stops us calling Topic for somebody else's client. Also helps prevent usr=null return + if(src.prefs && src.prefs.afreeze) //yogs - afreeze + to_chat(src, "You have been frozen by an administrator.") + return + // asset_cache if(href_list["asset_cache_confirm_arrival"]) var/job = text2num(href_list["asset_cache_confirm_arrival"]) diff --git a/yogstation.dme b/yogstation.dme index da54164dddb0..96e07e6d255b 100644 --- a/yogstation.dme +++ b/yogstation.dme @@ -1814,7 +1814,6 @@ #include "code\modules\mob\living\living.dm" #include "code\modules\mob\living\living_defense.dm" #include "code\modules\mob\living\living_defines.dm" -#include "code\modules\mob\living\living_movement.dm" #include "code\modules\mob\living\login.dm" #include "code\modules\mob\living\logout.dm" #include "code\modules\mob\living\say.dm" @@ -2655,6 +2654,7 @@ #include "yogstation\code\__HELPERS\_lists.dm" #include "yogstation\code\__HELPERS\mobs.dm" #include "yogstation\code\__HELPERS\unsorted.dm" +#include "yogstation\code\_onclick\click.dm" #include "yogstation\code\controllers\subsystem\input.dm" #include "yogstation\code\controllers\subsystem\mapping.dm" #include "yogstation\code\controllers\subsystem\yogs.dm" diff --git a/yogstation/code/modules/client/client_procs.dm b/yogstation/code/modules/client/client_procs.dm index 450ea7c58c38..064065bb27c2 100644 --- a/yogstation/code/modules/client/client_procs.dm +++ b/yogstation/code/modules/client/client_procs.dm @@ -8,3 +8,9 @@ var/datum/DBQuery/query_logout = SSdbcore.NewQuery("UPDATE [format_table_name("connection_log")] SET `left` = Now() WHERE id = [number]") query_logout.Execute() qdel(query_logout) + +/client/Move() + if(src.prefs && src.prefs.afreeze) + to_chat(src, "You have been frozen by an administrator.") + return + ..() \ No newline at end of file diff --git a/yogstation/code/modules/client/preferences.dm b/yogstation/code/modules/client/preferences.dm index 7eef94d57d61..00ef4a1e899c 100644 --- a/yogstation/code/modules/client/preferences.dm +++ b/yogstation/code/modules/client/preferences.dm @@ -1,8 +1,9 @@ -/datum/preferences +/datum/preferences var/donor_hat = 0 var/donor_pda = 1 var/quiet_round = FALSE var/purrbation = null + var/afreeze = FALSE var/datum/keybindings/bindings = new