From 77ee842926d88e3e1495d4a3e093443cd73aa92a Mon Sep 17 00:00:00 2001
From: AffectedArc07 <25063394+AffectedArc07@users.noreply.github.com>
Date: Sun, 28 Sep 2025 20:20:32 +0100
Subject: [PATCH] [s] Testing stuff (#30572)
* Testing stuff
* lints
---
code/modules/admin/misc_admin_procs.dm | 141 +++++++++++++------------
code/modules/admin/topic.dm | 32 ++++++
2 files changed, 104 insertions(+), 69 deletions(-)
diff --git a/code/modules/admin/misc_admin_procs.dm b/code/modules/admin/misc_admin_procs.dm
index 99a626eb903..7db04db7aae 100644
--- a/code/modules/admin/misc_admin_procs.dm
+++ b/code/modules/admin/misc_admin_procs.dm
@@ -85,6 +85,8 @@ GLOBAL_VAR_INIT(disable_explosions, FALSE)
if(M.client.holder.fakekey && M.client.holder.big_brother)
our_key = M.client.holder.fakekey
+ var/mob_uid = M.UID()
+
var/body = "
Options for [our_key]"
body += "Options panel for [M]"
if(M.client)
@@ -95,30 +97,31 @@ GLOBAL_VAR_INIT(disable_explosions, FALSE)
body += "\[Player\] "
else
body += "\[[M.client.holder ? M.client.holder.rank : "Player"]\] "
- body += "\[" + M.client.get_exp_type(EXP_TYPE_CREW) + " as [EXP_TYPE_CREW]\]"
+ body += "\[" + M.client.get_exp_type(EXP_TYPE_CREW) + " as [EXP_TYPE_CREW]\]"
body += "
BYOND account registration date: [M.client.byondacc_date || "ERROR"] [M.client.byondacc_age <= GLOB.configuration.general.byond_account_age_threshold ? "" : ""]([M.client.byondacc_age] days old)[M.client.byondacc_age <= GLOB.configuration.general.byond_account_age_threshold ? "" : ""]"
body += "
BYOND client version: [M.client.byond_version].[M.client.byond_build]"
body += "
Global Ban DB Lookup: [GLOB.configuration.url.centcom_ban_db_url ? "Lookup" : "Disabled"]"
+ body += "
Check for client modification"
body += "
"
if(isnewplayer(M))
body += " Hasn't Entered Game "
else
- body += " \[Heal\] "
+ body += " \[Heal\] "
body += "
\[ "
- body += "LOGS - "
- body += "VV - "
+ body += "LOGS - "
+ body += "VV - "
body += "[ADMIN_TP(M,"TP")] - "
if(M.client)
body += "PM - "
body += "[ADMIN_SM(M,"SM")] - "
if(ishuman(M) && M.mind)
- body += "HM - "
+ body += "HM - "
body += "[admin_jump_link(M)] - "
- body += "SEND ALERT\]
"
+ body += "SEND ALERT\]
"
body += "Mob type: [M.type]
"
if(M.client)
if(length(M.client.related_accounts_cid))
@@ -129,9 +132,9 @@ GLOBAL_VAR_INIT(disable_explosions, FALSE)
if(M.ckey)
body += "Enabled AntagHUD: [M.has_ahudded() ? "TRUE" : "false"]
"
body += "Roundstart observer: [M.is_roundstart_observer() ? "true" : "false"]
"
- body += "Kick | "
- body += "Ban | "
- body += "Jobban | "
+ body += "Kick | "
+ body += "Ban | "
+ body += "Jobban | "
body += "Notes | "
if(GLOB.configuration.url.forum_playerinfo_url)
body += "WebInfo | "
@@ -142,18 +145,18 @@ GLOBAL_VAR_INIT(disable_explosions, FALSE)
else
body += "Add to Watchlist "
- body += "| Prison | "
- body += "\ Send back to Lobby | "
- body += "\ Erase Flavor Text | "
- body += "\ Use Random Name | "
+ body += "| Prison | "
+ body += "\ Send back to Lobby | "
+ body += "\ Erase Flavor Text | "
+ body += "\ Use Random Name | "
body += {"
Mute:
- \[IC |
- OOC |
- PRAY |
- ADMINHELP |
- DEADCHAT |
- EMOTE]
- (toggle all)
+ \[IC |
+ OOC |
+ PRAY |
+ ADMINHELP |
+ DEADCHAT |
+ EMOTE]
+ (toggle all)
"}
var/jumptoeye = ""
@@ -162,23 +165,23 @@ GLOBAL_VAR_INIT(disable_explosions, FALSE)
if(A.client && A.eyeobj) // No point following clientless AI eyes
jumptoeye = " (Eye)"
body += {"
- Jump to[jumptoeye] |
- Get |
- Send To
+ Jump to[jumptoeye] |
+ Get |
+ Send To
[check_rights(R_ADMIN,0) ? "[ADMIN_TP(M,"Traitor panel")] | " : "" ]
- Narrate to |
+ Narrate to |
[ADMIN_SM(M,"Subtle message")]
"}
if(check_rights(R_EVENT, 0))
- body += {" | Bless | Smite"}
+ body += {" | Bless | Smite"}
if(isLivingSSD(M))
if(istype(M.loc, /obj/machinery/cryopod))
- body += {" | De-Spawn "}
+ body += {" | De-Spawn "}
else
- body += {" | Cryo "}
+ body += {" | Cryo "}
if(M.client)
if(!isnewplayer(M))
@@ -190,38 +193,38 @@ GLOBAL_VAR_INIT(disable_explosions, FALSE)
if(issmall(M))
body += "Monkeyized | "
else
- body += "Monkeyize | "
+ body += "Monkeyize | "
//Corgi
if(iscorgi(M))
body += "Corgized | "
else
- body += "Corgize | "
+ body += "Corgize | "
//AI / Cyborg
if(is_ai(M))
body += "Is an AI "
else if(ishuman(M))
- body += {"Make AI |
- Make Robot |
- Make Alien |
- Make Slime |
- Make Superhero |
+ body += {"Make AI |
+ Make Robot |
+ Make Alien |
+ Make Slime |
+ Make Superhero |
"}
//Simple Animals
if(isanimal_or_basicmob(M))
- body += "Re-Animalize | "
+ body += "Re-Animalize | "
else
- body += "Animalize | "
+ body += "Animalize | "
if(isobserver(M))
- body += "Re-incarnate | "
+ body += "Re-incarnate | "
if(ispAI(M))
body += "Is a pAI "
else
- body += "Make pAI | "
+ body += "Make pAI | "
// DNA2 - Admin Hax
if(M.dna && iscarbon(M))
@@ -236,7 +239,7 @@ GLOBAL_VAR_INIT(disable_explosions, FALSE)
if(bname)
var/bstate=M.dna.GetSEState(block)
var/bcolor="[(bstate)?"#006600":"#ff0000"]"
- body += "[bname][block]"
+ body += "[bname][block]"
else
body += "[block]"
body+=""
@@ -244,42 +247,42 @@ GLOBAL_VAR_INIT(disable_explosions, FALSE)
body += {"
Rudimentary transformation:
These transformations only create a new mob type and copy stuff over. They do not take into account MMIs and similar mob-specific things. The buttons in 'Transformations' are preferred, when possible.
- Observer |
- \[ Alien: Drone,
- Hunter,
- Queen,
- Sentinel,
- Larva \]
- Human
- \[ slime: Baby,
- Adult \]
- Monkey |
- Cyborg |
- Cat |
- Runtime |
- Corgi |
- Ian |
- Crab |
- Coffee |
- \[ Construct: Armoured ,
- Builder ,
- Wraith \]
- Shade
+ Observer |
+ \[ Alien: Drone,
+ Hunter,
+ Queen,
+ Sentinel,
+ Larva \]
+ Human
+ \[ slime: Baby,
+ Adult \]
+ Monkey |
+ Cyborg |
+ Cat |
+ Runtime |
+ Corgi |
+ Ian |
+ Crab |
+ Coffee |
+ \[ Construct: Armoured ,
+ Builder ,
+ Wraith \]
+ Shade
"}
if(M.client)
body += {"
Other actions:
- Forcesay |
- Admin Room |
- Thunderdome 1 |
- Thunderdome 2 |
- Thunderdome Admin |
- Thunderdome Observer |
- Stop Syndicate Jail Timer |
- Start Syndicate Jail Timer |
- Release now from Syndicate Jail |
+ Forcesay |
+ Admin Room |
+ Thunderdome 1 |
+ Thunderdome 2 |
+ Thunderdome Admin |
+ Thunderdome Observer |
+ Stop Syndicate Jail Timer |
+ Start Syndicate Jail Timer |
+ Release now from Syndicate Jail |
"}
body += {"
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 95b5762cc36..cb353198acd 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -3630,6 +3630,38 @@
var/mob/about_to_be_banned = locateUID(href_list["adminalert"])
usr.client.cmd_admin_alert_message(about_to_be_banned)
+ else if(href_list["clientmodcheck"])
+ if(!check_rights(R_ADMIN))
+ return
+
+ var/client/C = locateUID(href_list["clientmodcheck"])
+ if(!isclient(C))
+ return
+
+ var/client_is_member = C.IsByondMember()
+ var/byond_is_member = FALSE
+
+ var/list/client_byond_data = C.retrieve_byondacc_data()
+ if(!length(client_byond_data))
+ alert(src, "BYOND is down so we cant check this - oops")
+ return
+
+ if("general" in client_byond_data)
+ var/list/general = client_byond_data["general"]
+ if("is_member" in general)
+ byond_is_member = (general["is_member"] == "1") // We want to check if the value is EXACTLY "1" - do not TRUE this or shorten the expression
+
+ if(!client_is_member && !byond_is_member)
+ alert(usr, "Client [C.ckey] is unlikely to be using a modified client\nNot member on client or BYOND servers")
+ else if(client_is_member && byond_is_member)
+ alert(usr, "Client [C.ckey] is unlikely to be using a modified client\nBYOND member on client and BYOND servers")
+ else if(!client_is_member && byond_is_member)
+ alert(usr, "Client [C.ckey] is unlikely to be using a modified client\nBYOND member on server but not BYOND servers - possibly hidden donor status")
+ else if(client_is_member && !byond_is_member)
+ alert(usr, "Client [C.ckey] MAY BE USING A MODIFIED CLIENT\nBYOND member on client but not BYOND servers\nNote that their membership may have just expired")
+ else
+ alert(usr, "Client [C.ckey] had a membership that didnt make sense (C: [client_is_member] | B: [byond_is_member])\nInform AA please")
+
else if(href_list["spawnjsondatum"])
// Get the name and JSON to spawn
var/datum/db_query/dbq = SSdbcore.NewQuery("SELECT slotname, slotjson FROM json_datum_saves WHERE ckey=:ckey AND id=:id", list(