mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 03:57:13 +01:00
Automatic handling of majorly-colliding CIDs (#17414)
This commit is contained in:
@@ -13,6 +13,8 @@
|
||||
var/list/ckey_rank_map = list()
|
||||
/// Assoc list of admin ranks and their colours. key: rank | value: rank colour
|
||||
var/list/rank_colour_map = list()
|
||||
/// Assoc list of CIDs which shouldnt be banned due to mass collisions
|
||||
var/list/common_cid_map = list()
|
||||
|
||||
/datum/configuration_section/admin_configuration/load_data(list/data)
|
||||
// Use the load wrappers here. That way the default isnt made 'null' if you comment out the config line
|
||||
@@ -38,6 +40,12 @@
|
||||
for(var/list/kvset in data["admin_rank_colour_map"])
|
||||
rank_colour_map[kvset["name"]] = kvset["colour"]
|
||||
|
||||
// Load common CIDs
|
||||
if(islist(data["common_cid_map"]))
|
||||
common_cid_map.Cut()
|
||||
for(var/list/kvset in data["common_cid_map"])
|
||||
common_cid_map[kvset["cid"]] = kvset["reason"]
|
||||
|
||||
// For the person who asks "Why not put admin datum generation in this step?", well I will tell you why
|
||||
// Admins can be reloaded at runtime when DB edits are made and such, and I dont want an entire config reload to be part of this
|
||||
// Separation makes sense. That and in prod we use the DB anyways.
|
||||
|
||||
@@ -112,6 +112,12 @@
|
||||
to_chat(usr, "<span class='danger'>You cannot apply this ban type on yourself.</span>")
|
||||
return
|
||||
|
||||
// Check validity of the CID. Some have a lot of collisions due to bad industry practices (thanks walmart)
|
||||
if(computerid && (computerid in GLOB.configuration.admin.common_cid_map))
|
||||
to_chat(usr, "<span class='notice'>You attempted to apply a ban that includes the CID [computerid]. This CID has been ignored for the following reason: [GLOB.configuration.admin.common_cid_map[computerid]]</span>")
|
||||
// Cancel it out. DO NOT USE NULL HERE. IT MAKES THE DB CRY. USE AN EMPTY STRING.
|
||||
computerid = ""
|
||||
|
||||
var/who
|
||||
for(var/client/C in GLOB.clients)
|
||||
if(!who)
|
||||
|
||||
@@ -91,6 +91,10 @@ admin_rank_colour_map = [
|
||||
{name = "PR Reviewer", colour = "#c27c0e"},
|
||||
{name = "Mentor", colour = "#f1c40f"},
|
||||
]
|
||||
# Map of common CIDs that should not be banned, plus their reasons
|
||||
common_cid_map = [
|
||||
{cid = "3923664137", reason = "Mass-Match related to Walmart branded prebuilt PCs"}
|
||||
]
|
||||
|
||||
|
||||
################################################################
|
||||
|
||||
Reference in New Issue
Block a user