From 78cccddffc6d47b0e7a1e57ae470fccf6564e916 Mon Sep 17 00:00:00 2001 From: E Date: Sun, 16 Jan 2022 17:07:58 +0100 Subject: [PATCH 1/3] grounds --- code/__DEFINES/admin.dm | 1 + code/modules/admin/DB_ban/functions.dm | 3 +++ code/modules/admin/admin.dm | 5 +++++ code/modules/admin/topic.dm | 5 +++++ 4 files changed, 14 insertions(+) diff --git a/code/__DEFINES/admin.dm b/code/__DEFINES/admin.dm index 54c4c1de95..59f69ecf13 100644 --- a/code/__DEFINES/admin.dm +++ b/code/__DEFINES/admin.dm @@ -18,6 +18,7 @@ #define BANTYPE_ADMIN_PERMA 7 #define BANTYPE_ADMIN_TEMP 8 #define BANTYPE_ANY_JOB 9 //used to remove jobbans +#define BANTYPE_PACIFIST 10 //makes a person spawn with pacifist. splurt change. //Admin Permissions #define R_BUILDMODE (1<<0) diff --git a/code/modules/admin/DB_ban/functions.dm b/code/modules/admin/DB_ban/functions.dm index b8d2452874..ac589c026a 100644 --- a/code/modules/admin/DB_ban/functions.dm +++ b/code/modules/admin/DB_ban/functions.dm @@ -411,6 +411,7 @@ output += "" output += "" output += "" + output += "" output += "" output += "Key: " output += "IP: " @@ -546,6 +547,8 @@ typedesc = "ADMIN PERMABAN" if("ADMIN_TEMPBAN") typedesc = "ADMIN TEMPBAN
([duration] minutes [(unbanned) ? "" : "(Edit))"]
Expires [expiration]
" + if("PACIFICATION BAN") + typedesc = "PACIFICATION BAN
([duration] minutes [(unbanned) ? "" : "(Edit))"]
Expires [expiration]
" output += "" output += "[typedesc]" diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 08b62ef2f3..8c6acb6509 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -103,6 +103,11 @@ body+= "Emoteban | " if(QDELETED(M) || QDELETED(usr)) return + if(jobban_isbanned(M, "pacifist")) + body+= "PacifistBan | " + else + body+= "PacifistBan | " + body += "Notes | Messages | Watchlist " if(M.client) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index dd5ae3f4e6..b610db9c8e 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -260,6 +260,11 @@ to_chat(usr, "Not enough parameters (Requires ckey, severity, reason and duration).") return banjob = null + if(BANTYPE_PACIFIST) + if(!banckey || !banreason || !banduration || !banseverity) + to_chat(usr, "Not enough parameters (Requires ckey, severity, reason and duration).") + return + banjob = null var/mob/playermob From a1a14dc0126b7fd1d8135910d7b4ddd26a36258f Mon Sep 17 00:00:00 2001 From: E Date: Tue, 18 Jan 2022 23:44:48 +0100 Subject: [PATCH 2/3] khajitness embraced --- SQL/optimisations_2017-02-19.sql | 2 +- SQL/tgstation_schema.sql | 2 +- SQL/tgstation_schema_prefixed.sql | 2 +- code/datums/mind.dm | 6 ++++++ code/modules/admin/DB_ban/functions.dm | 12 +++++++++++- code/modules/admin/admin.dm | 6 +++--- code/modules/admin/topic.dm | 4 ++-- code/modules/awaymissions/corpse.dm | 7 ++++++- code/modules/mob/dead/new_player/new_player.dm | 5 +++++ code/modules/mob/mob.dm | 5 +++++ 10 files changed, 41 insertions(+), 10 deletions(-) diff --git a/SQL/optimisations_2017-02-19.sql b/SQL/optimisations_2017-02-19.sql index 1bb19cc667..40024c9f9f 100644 --- a/SQL/optimisations_2017-02-19.sql +++ b/SQL/optimisations_2017-02-19.sql @@ -40,7 +40,7 @@ Take note some columns have been renamed, removed or changed type. Any services START TRANSACTION; ALTER TABLE `ban` DROP COLUMN `rounds` -, CHANGE COLUMN `bantype` `bantype` ENUM('PERMABAN', 'TEMPBAN', 'JOB_PERMABAN', 'JOB_TEMPBAN', 'ADMIN_PERMABAN', 'ADMIN_TEMPBAN') NOT NULL +, CHANGE COLUMN `bantype` `bantype` ENUM('PERMABAN', 'TEMPBAN', 'JOB_PERMABAN', 'JOB_TEMPBAN', 'ADMIN_PERMABAN', 'ADMIN_TEMPBAN', 'PACIFICATION_BAN') NOT NULL , CHANGE COLUMN `reason` `reason` VARCHAR(2048) NOT NULL , CHANGE COLUMN `who` `who` VARCHAR(2048) NOT NULL , CHANGE COLUMN `adminwho` `adminwho` VARCHAR(2048) NOT NULL diff --git a/SQL/tgstation_schema.sql b/SQL/tgstation_schema.sql index 9a9847a372..243b22c35a 100644 --- a/SQL/tgstation_schema.sql +++ b/SQL/tgstation_schema.sql @@ -73,7 +73,7 @@ CREATE TABLE `ban` ( `server_ip` INT(10) UNSIGNED NOT NULL, `server_port` SMALLINT(5) UNSIGNED NOT NULL, `round_id` INT(11) UNSIGNED NOT NULL, - `bantype` enum('PERMABAN','TEMPBAN','JOB_PERMABAN','JOB_TEMPBAN','ADMIN_PERMABAN','ADMIN_TEMPBAN') NOT NULL, + `bantype` enum('PERMABAN','TEMPBAN','JOB_PERMABAN','JOB_TEMPBAN','ADMIN_PERMABAN','ADMIN_TEMPBAN','PACIFICATION_BAN') NOT NULL, `reason` varchar(2048) NOT NULL, `job` varchar(32) DEFAULT NULL, `duration` int(11) NOT NULL, diff --git a/SQL/tgstation_schema_prefixed.sql b/SQL/tgstation_schema_prefixed.sql index 654f45f4f2..21f0d6d84b 100644 --- a/SQL/tgstation_schema_prefixed.sql +++ b/SQL/tgstation_schema_prefixed.sql @@ -73,7 +73,7 @@ CREATE TABLE `SS13_ban` ( `server_ip` INT(10) UNSIGNED NOT NULL, `server_port` SMALLINT(5) UNSIGNED NOT NULL, `round_id` INT(11) UNSIGNED NOT NULL, - `bantype` enum('PERMABAN','TEMPBAN','JOB_PERMABAN','JOB_TEMPBAN','ADMIN_PERMABAN','ADMIN_TEMPBAN') NOT NULL, + `bantype` enum('PERMABAN','TEMPBAN','JOB_PERMABAN','JOB_TEMPBAN','ADMIN_PERMABAN','ADMIN_TEMPBAN','PACIFICATION_BAN') NOT NULL, `reason` varchar(2048) NOT NULL, `job` varchar(32) DEFAULT NULL, `duration` int(11) NOT NULL, diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 633b1d8c27..72d514f87d 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -148,6 +148,12 @@ SEND_SIGNAL(src, COMSIG_MIND_TRANSFER, new_character, old_character) SEND_SIGNAL(new_character, COMSIG_MOB_ON_NEW_MIND) +//splurt change - i'm putting it here so i don't have to worry about early returns + if(jobban_isbanned(new_character, "pacifist")) //also kinda need the ref to old char + var/mob/OC = old_character //yeah. + REMOVE_TRAIT(OC, TRAIT_PACIFISM, "pacification ban") + ADD_TRAIT(new_character, TRAIT_PACIFISM, "pacification ban") +//end change /datum/mind/proc/store_memory(new_text) if((length_char(memory) + length_char(new_text)) <= MAX_MESSAGE_LEN) diff --git a/code/modules/admin/DB_ban/functions.dm b/code/modules/admin/DB_ban/functions.dm index ac589c026a..0c97d3463a 100644 --- a/code/modules/admin/DB_ban/functions.dm +++ b/code/modules/admin/DB_ban/functions.dm @@ -51,6 +51,9 @@ announceinirc = 1 blockselfban = 1 kickbannedckey = 1 + if(BANTYPE_PACIFIST) + bantype_str = "PACIFICATION_BAN" + bantype_pass = 1 if( !bantype_pass ) return if( !istext(reason) ) @@ -167,6 +170,10 @@ if(announceinirc) send2adminchat("BAN ALERT","[a_key] applied a [bantype_str] on [bankey]") + //splurt edit + if(((bantype_str == "PACIFICATION_BAN") || (job == "pacifist")) && banned_client.mob) + ADD_TRAIT(banned_client.mob, TRAIT_PACIFISM, "pacification ban") + // if(kickbannedckey) if(AH) @@ -208,6 +215,9 @@ if(BANTYPE_ANY_JOB) bantype_str = "ANYJOB" bantype_pass = 1 + if(BANTYPE_PACIFIST) + bantype_str = "PACIFICATION_BAN" + bantype_pass = 1 if( !bantype_pass ) return @@ -547,7 +557,7 @@ typedesc = "ADMIN PERMABAN" if("ADMIN_TEMPBAN") typedesc = "ADMIN TEMPBAN
([duration] minutes [(unbanned) ? "" : "(Edit))"]
Expires [expiration]
" - if("PACIFICATION BAN") + if("PACIFICATION_BAN") typedesc = "PACIFICATION BAN
([duration] minutes [(unbanned) ? "" : "(Edit))"]
Expires [expiration]
" output += "" diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 8c6acb6509..e810b8b0b8 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -104,10 +104,10 @@ if(QDELETED(M) || QDELETED(usr)) return if(jobban_isbanned(M, "pacifist")) - body+= "PacifistBan | " + body+= "PacifistBan | " else - body+= "PacifistBan | " - + body+= "PacifistBan | " + body += "Notes | Messages | Watchlist " if(M.client) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index b610db9c8e..bcd95b40e6 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1065,7 +1065,7 @@ msg += ", [job]" create_message("note", M.key, null, "Banned from [msg] - [reason]", null, null, 0, 0, null, 0, severity) message_admins("[key_name_admin(usr)] banned [key_name_admin(M)] from [msg] for [mins] minutes.") - to_chat(M, "You have been [(msg == ("ooc" || "appearance")) ? "banned" : "jobbanned"] by [usr.client.key] from: [msg].") + to_chat(M, "You have been [((msg == "ooc") || (msg == "appearance") || (msg == "pacifist")) ? "banned" : "jobbanned"] by [usr.client.key] from: [msg == "pacifist" ? "using violence" : msg].") to_chat(M, "The reason is: [reason]") to_chat(M, "This jobban will be lifted in [mins] minutes.") href_list["jobban2"] = 1 // lets it fall through and refresh @@ -1091,7 +1091,7 @@ msg += ", [job]" create_message("note", M.key, null, "Banned from [msg] - [reason]", null, null, 0, 0, null, 0, severity) message_admins("[key_name_admin(usr)] banned [key_name_admin(M)] from [msg].") - to_chat(M, "You have been [(msg == ("ooc" || "appearance")) ? "banned" : "jobbanned"] by [usr.client.key] from: [msg].") + to_chat(M, "You have been [((msg == "ooc") || (msg == "appearance") || (msg == "pacifist")) ? "banned" : "jobbanned"] by [usr.client.key] from: [msg == "pacifist" ? "using violence" : msg].") to_chat(M, "The reason is: [reason]") to_chat(M, "Jobban can be lifted only upon request.") href_list["jobban2"] = 1 // lets it fall through and refresh diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index 366fa086a0..a2ac5581b9 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -111,6 +111,11 @@ if(ckey) M.ckey = ckey + //splurt change + if(jobban_isbanned(M, "pacifist")) //do you love repeat code? i sure do + to_chat(M, "You are pacification banned. Pacifist has been force applied.") + ADD_TRAIT(M, TRAIT_PACIFISM, "pacification ban") + // if(show_flavour) var/output_message = "[short_desc]" if(flavour_text != "") @@ -251,7 +256,7 @@ H.canloadappearance = TRUE else H.canloadappearance = FALSE - + //Instant version - use when spawning corpses during runtime /obj/effect/mob_spawn/human/corpse roundstart = FALSE diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index 6c0869b4ef..be40012030 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -790,6 +790,11 @@ . = new_character if(.) new_character.key = key //Manually transfer the key to log them in + //splurt change + if(jobban_isbanned(new_character, "pacifist")) + to_chat(new_character, "You are pacification banned. Pacifist has been force applied.") + ADD_TRAIT(new_character, TRAIT_PACIFISM, "pacification ban") + // new_character.stop_sound_channel(CHANNEL_LOBBYMUSIC) new_character = null qdel(src) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index c5bf69fae6..353c8b409c 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -495,6 +495,11 @@ new_mob.ckey = ckey if(send_signal) SEND_SIGNAL(src, COMSIG_MOB_KEY_CHANGE, new_mob, src) + //splurt changeh + if(jobban_isbanned(new_mob, "pacifist")) + REMOVE_TRAIT(src, TRAIT_PACIFISM, "pacification ban") + ADD_TRAIT(new_mob, TRAIT_PACIFISM, "pacification ban") + // return TRUE /mob/verb/cancel_camera() From ff54af25b6e692f1b23d59e230a6a5089513b105 Mon Sep 17 00:00:00 2001 From: E Date: Wed, 19 Jan 2022 00:40:50 +0100 Subject: [PATCH 3/3] hate --- code/datums/mind.dm | 7 ++----- code/modules/mob/mob.dm | 10 +++++++--- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 72d514f87d..7019106577 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -148,11 +148,8 @@ SEND_SIGNAL(src, COMSIG_MIND_TRANSFER, new_character, old_character) SEND_SIGNAL(new_character, COMSIG_MOB_ON_NEW_MIND) -//splurt change - i'm putting it here so i don't have to worry about early returns - if(jobban_isbanned(new_character, "pacifist")) //also kinda need the ref to old char - var/mob/OC = old_character //yeah. - REMOVE_TRAIT(OC, TRAIT_PACIFISM, "pacification ban") - ADD_TRAIT(new_character, TRAIT_PACIFISM, "pacification ban") +//splurt change + INVOKE_ASYNC(GLOBAL_PROC, .proc/_paci_check, new_character, old_character) //end change /datum/mind/proc/store_memory(new_text) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 353c8b409c..8b948d5cbc 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -496,12 +496,16 @@ if(send_signal) SEND_SIGNAL(src, COMSIG_MOB_KEY_CHANGE, new_mob, src) //splurt changeh - if(jobban_isbanned(new_mob, "pacifist")) - REMOVE_TRAIT(src, TRAIT_PACIFISM, "pacification ban") - ADD_TRAIT(new_mob, TRAIT_PACIFISM, "pacification ban") + INVOKE_ASYNC(GLOBAL_PROC, .proc/_paci_check, new_mob, src) // return TRUE +/proc/_paci_check(mob/new_mob, mob/old_mob) + if(jobban_isbanned(new_mob, "pacifist")) + if(!QDELETED(old_mob)) + REMOVE_TRAIT(old_mob, TRAIT_PACIFISM, "pacification ban") + ADD_TRAIT(new_mob, TRAIT_PACIFISM, "pacification ban") + /mob/verb/cancel_camera() set name = "Cancel Camera View" set category = "OOC"