diff --git a/SQL/database_changelog.txt b/SQL/database_changelog.txt
index 85afa5fa07d..0d8a4d841fb 100644
--- a/SQL/database_changelog.txt
+++ b/SQL/database_changelog.txt
@@ -1,3 +1,13 @@
+19 August 2016, by Shadowlight213
+
+Changed appearance bans to be jobbans.
+
+UPDATE `bans` SET `job` = "appearance", `bantype` = "JOB_PERMABAN" WHERE `bantype` = "APPEARANCE_PERMABAN"
+
+Remember to add a prefix to the table name if you use them
+
+----------------------------------------------------
+
3 July 2016, by Jordie0608
Modified table 'poll_question', adding column 'dontshow' which was recently added to the server schema.
diff --git a/code/__DEFINES/admin.dm b/code/__DEFINES/admin.dm
index 4df75c4a60e..50f83c2d947 100644
--- a/code/__DEFINES/admin.dm
+++ b/code/__DEFINES/admin.dm
@@ -14,7 +14,7 @@
#define BANTYPE_JOB_PERMA 3
#define BANTYPE_JOB_TEMP 4
#define BANTYPE_ANY_FULLBAN 5 //used to locate stuff to unban.
-#define BANTYPE_APPEARANCE 6
+
#define BANTYPE_ADMIN_PERMA 7
#define BANTYPE_ADMIN_TEMP 8
#define BANTYPE_ANY_JOB 9 //used to remove jobbans
diff --git a/code/modules/admin/DB_ban/functions.dm b/code/modules/admin/DB_ban/functions.dm
index 82f62503c32..02f585a502f 100644
--- a/code/modules/admin/DB_ban/functions.dm
+++ b/code/modules/admin/DB_ban/functions.dm
@@ -36,10 +36,6 @@
if(BANTYPE_JOB_TEMP)
bantype_str = "JOB_TEMPBAN"
bantype_pass = 1
- if(BANTYPE_APPEARANCE)
- bantype_str = "APPEARANCE_PERMABAN"
- duration = -1
- bantype_pass = 1
if(BANTYPE_ADMIN_PERMA)
bantype_str = "ADMIN_PERMABAN"
duration = -1
@@ -160,9 +156,6 @@
if(BANTYPE_JOB_TEMP)
bantype_str = "JOB_TEMPBAN"
bantype_pass = 1
- if(BANTYPE_APPEARANCE)
- bantype_str = "APPEARANCE_PERMABAN"
- bantype_pass = 1
if(BANTYPE_ADMIN_PERMA)
bantype_str = "ADMIN_PERMABAN"
bantype_pass = 1
@@ -361,7 +354,6 @@
output += ""
output += ""
output += ""
- output += ""
output += ""
output += ""
output += ""
@@ -453,8 +445,6 @@
typedesc = "JOBBAN
([job])"
if("JOB_TEMPBAN")
typedesc = "TEMP JOBBAN
([job])
([duration] minutes [(unbanned) ? "" : "(Edit))"]
Expires [expiration]"
- if("APPEARANCE_PERMABAN")
- typedesc = "IDENTITY PERMABAN"
if("ADMIN_PERMABAN")
typedesc = "ADMIN PERMABAN"
if("ADMIN_TEMPBAN")
diff --git a/code/modules/admin/banappearance.dm b/code/modules/admin/banappearance.dm
deleted file mode 100644
index 1fabfcc5b03..00000000000
--- a/code/modules/admin/banappearance.dm
+++ /dev/null
@@ -1,110 +0,0 @@
-//ban people from using custom names and appearances. that'll show 'em.
-
-var/appearanceban_runonce //Updates legacy bans with new info
-var/appearance_keylist[0] //to store the keys
-
-/proc/appearance_fullban(mob/M, reason)
- if (!M || !M.key) return
- appearance_keylist.Add(text("[M.ckey] ## [reason]"))
- appearance_savebanfile()
-
-/proc/appearance_client_fullban(ckey)
- if (!ckey) return
- appearance_keylist.Add(text("[ckey]"))
- appearance_savebanfile()
-
-//returns a reason if M is banned, returns 0 otherwise
-/proc/appearance_isbanned(mob/M)
- if(M)
- for(var/s in appearance_keylist)
- if(findtext(s, "[M.ckey]") == 1)
- var/startpos = findtext(s, "## ") + 3
- if(startpos && startpos < length(s))
- var/text = copytext(s, startpos, 0)
- if(text)
- return text
- return "Reason Unspecified"
- return 0
-
-/*
-DEBUG
-/mob/verb/list_all_appearances()
- set name = "list all appearances"
-
- for(var/s in appearance_keylist)
- world << s
-
-/mob/verb/reload_appearances()
- set name = "reload appearances"
-
- appearance_loadbanfile()
-*/
-
-/proc/appearance_loadbanfile()
- if(config.ban_legacy_system)
- var/savefile/S=new("data/appearance_full.ban")
- S["keys[0]"] >> appearance_keylist
- log_admin("Loading appearance_rank")
- S["runonce"] >> appearanceban_runonce
-
- if (!length(appearance_keylist))
- appearance_keylist=list()
- log_admin("appearance_keylist was empty")
- else
- if(!establish_db_connection())
- world.log << "Database connection failed. Reverting to the legacy ban system."
- diary << "Database connection failed. Reverting to the legacy ban system."
- config.ban_legacy_system = 1
- appearance_loadbanfile()
- return
-
- //appearance bans
- var/DBQuery/query = dbcon.NewQuery("SELECT ckey FROM [format_table_name("ban")] WHERE bantype = 'APPEARANCE_PERMABAN' AND NOT unbanned = 1")
- query.Execute()
-
- while(query.NextRow())
- var/ckey = query.item[1]
-
- appearance_keylist.Add("[ckey]")
-
-/proc/appearance_savebanfile()
- var/savefile/S=new("data/appearance_full.ban")
- S["keys[0]"] << appearance_keylist
-
-/proc/appearance_unban(mob/M)
- appearance_remove("[M.ckey]")
- appearance_savebanfile()
-
-
-/proc/appearance_updatelegacybans()
- if(!appearanceban_runonce)
- log_admin("Updating appearancefile!")
- // Updates bans.. Or fixes them. Either way.
- for(var/T in appearance_keylist)
- if(!T)
- continue
- appearanceban_runonce++ //don't run this update again
-
-
-/proc/appearance_remove(X)
- for (var/i = 1; i <= length(appearance_keylist); i++)
- if( findtext(appearance_keylist[i], "[X]") )
- appearance_keylist.Remove(appearance_keylist[i])
- appearance_savebanfile()
- return 1
- return 0
-
-/*
-/proc/DB_ban_isappearancebanned(var/playerckey)
- establish_db_connection()
- if(!dbcon.IsConnected())
- return
-
- var/sqlplayerckey = sanitizeSQL(ckey(playerckey))
-
- var/DBQuery/query = dbcon.NewQuery("SELECT id FROM [format_table_name("ban")] WHERE CKEY = '[sqlplayerckey]' AND ((bantype = 'APPEARANCE_PERMABAN') OR (bantype = 'APPEARANCE_TEMPBAN' AND expiration_time > Now())) AND unbanned != 1")
- query.Execute()
- while(query.NextRow())
- return 1
- return 0
-*/
\ No newline at end of file
diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm
index 0ce650090d9..07da6355d06 100644
--- a/code/modules/admin/player_panel.dm
+++ b/code/modules/admin/player_panel.dm
@@ -346,7 +346,7 @@
for(var/datum/mind/N in ticker.mode.syndicates)
var/mob/M = N.current
if(M)
- dat += "[M.real_name][M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""] "
+ dat += " "
else
@@ -375,20 +375,20 @@
dat += "[M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""] "
dat += "PM "
dat += "FLW "
else
- dat += "[N.name]([N.key])Head Revolutionary body destroyed! "
dat += "PM [M.real_name] (Leader)[M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""] "
+ dat += " "
for(var/datum/mind/N in ticker.mode.revolutionaries)
var/mob/M = N.current
if(M)
- dat += "[M.real_name] (Leader)[M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""] "
dat += "PM "
dat += "FLW [M.real_name][M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""] "
+ dat += " "
dat += "[M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""] "
dat += "PM "
dat += "FLW
"
@@ -421,7 +421,7 @@
for(var/datum/mind/changeling in ticker.mode.changelings)
var/mob/M = changeling.current
if(M)
- dat += " "
for(var/datum/mind/N in ticker.mode.get_living_heads())
var/mob/M = N.current
if(M)
- dat += "Target(s) Location [M.real_name][M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""] "
+ dat += "[M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""] "
dat += "PM "
dat += "FLW "
var/turf/mob_loc = get_turf(M)
@@ -406,13 +406,13 @@
dat += " "
else
- dat += "[N.name]([N.key])Gang Boss body destroyed! "
dat += "PM [M.real_name] (Boss)[M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""] "
+ dat += " "
for(var/datum/mind/N in G.gangsters)
var/mob/M = N.current
if(M)
- dat += "[M.real_name] (Boss)[M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""] "
dat += "PM "
dat += "FLW [M.real_name][M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""] "
+ dat += " "
dat += "[M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""] "
dat += "PM [M.mind.changeling.changelingID] as [M.real_name][M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""] "
+ dat += " "
@@ -435,7 +435,7 @@
for(var/datum/mind/wizard in ticker.mode.wizards)
var/mob/M = wizard.current
if(M)
- dat += "[M.mind.changeling.changelingID] as [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""] "
dat += "PM "
dat += "FLW "
dat += "Show Objective [M.real_name][M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""] "
+ dat += " "
@@ -449,7 +449,7 @@
for(var/datum/mind/apprentice in ticker.mode.apprentices)
var/mob/M = apprentice.current
if(M)
- dat += "[M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""] "
dat += "PM "
dat += "FLW "
dat += "Show Objective [M.real_name][M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""] "
+ dat += " "
@@ -463,7 +463,7 @@
for(var/datum/mind/N in ticker.mode.cult)
var/mob/M = N.current
if(M)
- dat += "[M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""] "
dat += "PM "
dat += "FLW "
dat += "Show Objective [M.real_name][M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""] "
+ dat += " "
dat += ""
@@ -483,7 +483,7 @@
for(var/datum/mind/N in ticker.mode.red_deities)
var/mob/M = N.current
if(M)
- dat += "[M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""] "
dat += "PM "
dat += "FLW Red Deity: [M.real_name][M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""] "
+ dat += " "
dat += ""
@@ -493,7 +493,7 @@
for(var/datum/mind/N in ticker.mode.blue_deities)
var/mob/M = N.current
if(M)
- dat += "Red Deity: [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""] "
dat += "PM "
dat += "FLW Blue Deity: [M.real_name][M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""] "
+ dat += " "
dat += ""
@@ -503,7 +503,7 @@
for(var/datum/mind/N in ticker.mode.red_deity_prophets)
var/mob/M = N.current
if(M)
- dat += "Blue Deity: [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""] "
dat += "PM "
dat += "FLW Red Deity Prophet: [M.real_name][M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""] "
+ dat += " "
dat += ""
@@ -513,7 +513,7 @@
for(var/datum/mind/N in ticker.mode.blue_deity_prophets)
var/mob/M = N.current
if(M)
- dat += "Red Deity Prophet: [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""] "
dat += "PM "
dat += "FLW Blue Deity Prophet: [M.real_name][M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""] "
+ dat += " "
dat += ""
@@ -523,7 +523,7 @@
for(var/datum/mind/N in ticker.mode.red_deity_followers)
var/mob/M = N.current
if(M)
- dat += "Blue Deity Prophet: [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""] "
dat += "PM "
dat += "FLW Red Deity Followers: [M.real_name][M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""] "
+ dat += " "
dat += ""
@@ -533,7 +533,7 @@
for(var/datum/mind/N in ticker.mode.blue_deity_followers)
var/mob/M = N.current
if(M)
- dat += "Red Deity Followers: [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""] "
dat += "PM "
dat += "FLW Blue Deity Followers: [M.real_name][M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""] "
+ dat += " "
dat += ""
@@ -543,7 +543,7 @@
for(var/datum/mind/traitor in ticker.mode.traitors)
var/mob/M = traitor.current
if(M)
- dat += "Blue Deity Followers: [M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""] "
dat += "PM "
dat += "FLW [M.real_name][M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""] "
+ dat += " "
@@ -557,7 +557,7 @@
for(var/datum/mind/abductor in ticker.mode.abductors)
var/mob/M = abductor.current
if(M)
- dat += "[M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""] "
dat += "PM "
dat += "FLW "
dat += "Show Objective [M.real_name][M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""] "
+ dat += " "
@@ -570,7 +570,7 @@
for(var/datum/mind/abductee in E.abductee_minds)
var/mob/M = abductee.current
if(M)
- dat += "[M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""] "
dat += "PM "
dat += "FLW "
dat += "Show Objective [M.real_name][M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""] "
+ dat += " "
@@ -585,7 +585,7 @@
var/datum/mind/devil = X
var/mob/M = devil.current
if(M)
- dat += "[M.real_name][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""] "
dat += "PM "
dat += "FLW "
dat += "Show Objective [M.real_name] : [devil.devilinfo.truename][M.client ? "" : " (ghost)"][M.stat == 2 ? " (DEAD)" : ""] "
+ dat += " "
dat += "[M.real_name] : [devil.devilinfo.truename][M.client ? "" : " (No Client)"][M.stat == 2 ? " (DEAD)" : ""] "
dat += "PM "
dat += "Show Objective
| "
- if(appearance_isbanned(user))
+ if(jobban_isbanned(user, "appearance"))
dat += "You are banned from using custom names and appearances. You can continue to adjust your characters, but you will be randomised once you join the game. " dat += "Random Name " dat += "Always Random Name: [be_random_name ? "Yes" : "No"] " diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 565e30cdc23..e55f2be543d 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -419,7 +419,7 @@ var/mob/living/carbon/human/new_character = new(loc) - if(config.force_random_names || appearance_isbanned(src)) + if(config.force_random_names || jobban_isbanned(src, "appearance")) client.prefs.random_character() client.prefs.real_name = client.prefs.pref_species.random_name(gender,1) client.prefs.copy_to(new_character) diff --git a/code/world.dm b/code/world.dm index 83454220e28..1f754d4b05b 100644 --- a/code/world.dm +++ b/code/world.dm @@ -39,7 +39,6 @@ var/global/list/map_transition_config = MAP_TRANSITION_CONFIG load_admins() if(config.usewhitelist) load_whitelist() - appearance_loadbanfile() LoadBans() investigate_reset() diff --git a/tgstation.dme b/tgstation.dme index 85deffe5209..093ed54235b 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -839,7 +839,6 @@ #include "code\modules\admin\admin_memo.dm" #include "code\modules\admin\admin_ranks.dm" #include "code\modules\admin\admin_verbs.dm" -#include "code\modules\admin\banappearance.dm" #include "code\modules\admin\banjob.dm" #include "code\modules\admin\create_mob.dm" #include "code\modules\admin\create_object.dm" |