diff --git a/code/controllers/voting.dm b/code/controllers/voting.dm index 2d163186f41..0acc65fbc57 100644 --- a/code/controllers/voting.dm +++ b/code/controllers/voting.dm @@ -200,7 +200,7 @@ datum/controller/vote return 0 choices.Add(config.votable_modes) if("crew_transfer") - if (check_rights(R_ADMIN) || check_rights(R_MOD)) + if (check_rights(R_ADMIN|R_MOD)) if(ticker.current_state <= 2) return 0 question = "End the shift?" diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index d39bc8e2ec3..96acbacb0e8 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -2,6 +2,7 @@ var/global/list/all_objectives = list() var/list/potential_theft_objectives=subtypesof(/datum/theft_objective) \ + - /datum/theft_objective/steal \ - /datum/theft_objective/special \ - /datum/theft_objective/number \ - /datum/theft_objective/number/special \ diff --git a/code/game/verbs/ooc.dm b/code/game/verbs/ooc.dm index 24be28454b3..6b9a64c1eb3 100644 --- a/code/game/verbs/ooc.dm +++ b/code/game/verbs/ooc.dm @@ -22,7 +22,7 @@ var/global/admin_ooc_colour = "#b82e00" src << "You have OOC muted." return - if(!check_rights(R_MOD,0)) + if(!check_rights(R_ADMIN|R_MOD,0)) if(!config.ooc_allowed) src << "OOC is globally muted." return @@ -45,7 +45,7 @@ var/global/admin_ooc_colour = "#b82e00" var/display_colour = normal_ooc_colour if(holder && !holder.fakekey) display_colour = mentor_ooc_colour - if(check_rights(R_MOD,0) && !check_rights(R_ADMIN,0)) + if(check_rights(R_ADMIN|R_MOD,0) && !check_rights(R_ADMIN,0)) display_colour = moderator_ooc_colour else if(check_rights(R_ADMIN,0)) if(config.allow_admin_ooccolor) @@ -157,7 +157,7 @@ var/global/admin_ooc_colour = "#b82e00" src << "You have LOOC muted." return - if(!check_rights(R_MOD,0)) + if(!check_rights(R_ADMIN|R_MOD,0)) if(!config.looc_allowed) src << "LOOC is globally muted." return @@ -193,10 +193,10 @@ var/global/admin_ooc_colour = "#b82e00" var/send = 0 if(target in admins) - if(check_rights(R_MOD,0,target.mob)) + if(check_rights(R_ADMIN|R_MOD,0,target.mob)) admin_stuff += "/([key])" if(target != src) - admin_stuff += "([admin_jump_link(mob, target.holder)])" + admin_stuff += " ([admin_jump_link(mob, target.holder)])" if(target.mob in heard) send = 1 @@ -210,7 +210,7 @@ var/global/admin_ooc_colour = "#b82e00" prefix = " (Eye)" if(!send && (target in admins)) - if(check_rights(R_MOD,0,target.mob)) + if(check_rights(R_ADMIN|R_MOD,0,target.mob)) send = 1 prefix = "(R)" diff --git a/code/game/verbs/who.dm b/code/game/verbs/who.dm index 87cc2765709..c6acf4af28a 100644 --- a/code/game/verbs/who.dm +++ b/code/game/verbs/who.dm @@ -8,7 +8,7 @@ var/list/Lines = list() - if(holder && R_ADMIN & holder.rights) + if(check_rights(R_ADMIN,0)) for(var/client/C in clients) var/entry = "\t[C.key]" if(C.holder && C.holder.fakekey) @@ -67,12 +67,11 @@ var/num_admins_online = 0 if(holder) for(var/client/C in admins) - if(R_ADMIN & C.holder.rights || !R_MOD & C.holder.rights) + if(check_rights(R_ADMIN, 0, C.mob)) - if(C.holder.fakekey && !(R_ADMIN & holder.rights)) //Mentors/Mods can't see stealthmins + if(C.holder.fakekey && !check_rights(R_ADMIN, 0)) //Mentors/Mods can't see stealthmins continue - msg += "\t[C] is a [C.holder.rank]" if(C.holder.fakekey) @@ -91,7 +90,7 @@ num_admins_online++ - else if((R_MOD | R_MENTOR) & C.holder.rights) + else if(check_rights(R_MENTOR|R_MOD, 0, C.mob)) modmsg += "\t[C] is a [C.holder.rank]" if(isobserver(C.mob)) @@ -108,11 +107,11 @@ else for(var/client/C in admins) - if(R_ADMIN & C.holder.rights || !R_MOD & C.holder.rights) + if(check_rights(R_ADMIN, 0, C.mob)) if(!C.holder.fakekey) msg += "\t[C] is a [C.holder.rank]\n" num_admins_online++ - else if ((R_MOD | R_MENTOR) & C.holder.rights) + else if (check_rights(R_MOD|R_MENTOR, 0, C.mob) && !check_rights(R_ADMIN, 0, C.mob)) modmsg += "\t[C] is a [C.holder.rank]\n" num_mods_online++ diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index d55e7751b17..8c63e18fb27 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -213,7 +213,7 @@ var/global/nologevent = 0 set category = "Admin" set name = "Player Notes" - if(!check_rights(R_MOD|R_ADMIN)) + if(!check_rights(R_ADMIN|R_MOD)) return show_note() @@ -222,7 +222,7 @@ var/global/nologevent = 0 set category = "Admin" set name = "Show Player Notes" - if(!check_rights(R_MOD|R_ADMIN)) + if(!check_rights(R_ADMIN|R_MOD)) return show_note(key) diff --git a/code/modules/admin/sql_notes.dm b/code/modules/admin/sql_notes.dm index ef063c7c425..c9b472e9f92 100644 --- a/code/modules/admin/sql_notes.dm +++ b/code/modules/admin/sql_notes.dm @@ -1,5 +1,5 @@ /proc/add_note(target_ckey, notetext, timestamp, adminckey, logged = 1, server, checkrights = 1) - if(checkrights && !check_rights(R_MOD)) + if(checkrights && !check_rights(R_ADMIN|R_MOD)) return if(!dbcon.IsConnected()) usr << "Failed to establish database connection." @@ -47,7 +47,7 @@ show_note(target_ckey) /proc/remove_note(note_id) - if(!check_rights(R_MOD)) + if(!check_rights(R_ADMIN|R_MOD)) return var/ckey var/notetext @@ -77,7 +77,7 @@ show_note(ckey) /proc/edit_note(note_id) - if(!check_rights(R_MOD)) + if(!check_rights(R_ADMIN|R_MOD)) return if(!dbcon.IsConnected()) usr << "Failed to establish database connection." @@ -112,7 +112,7 @@ show_note(target_ckey) /proc/show_note(target_ckey, index, linkless = 0) - if(!check_rights(R_MOD)) + if(!check_rights(R_ADMIN|R_MOD)) return var/output var/navbar diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index cec4950a942..2b277a70ee8 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -11,7 +11,7 @@ return if(href_list["rejectadminhelp"]) - if(!check_rights(R_MOD)) + if(!check_rights(R_ADMIN|R_MOD)) return var/client/C = locate(href_list["rejectadminhelp"]) if(!C) @@ -1122,7 +1122,7 @@ usr << browse(edit_log,"window=watchedits") else if(href_list["mute"]) - if(!check_rights(R_MOD)) + if(!check_rights(R_ADMIN|R_MOD)) return var/mob/M = locate(href_list["mute"]) @@ -1533,7 +1533,8 @@ show_player_panel(M) else if(href_list["adminplayerobservejump"]) - if(!check_rights(R_MOD,0) && !check_rights(R_ADMIN)) return + if(!check_rights(R_ADMIN|R_MOD)) + return var/mob/M = locate(href_list["adminplayerobservejump"]) @@ -1543,7 +1544,8 @@ C.jumptomob(M) else if(href_list["adminplayerobservefollow"]) - if(!check_rights(R_MOD,0) && !check_rights(R_ADMIN)) return + if(!check_rights(R_ADMIN|R_MOD)) + return var/mob/M = locate(href_list["adminplayerobservefollow"]) diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index 211906b9711..69999e89940 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -95,15 +95,15 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey"," var/list/banholders = list() var/list/adminholders = list() for(var/client/X in admins) - if((R_MOD | R_MENTOR) & X.holder.rights) + if(check_rights(R_MOD|R_MENTOR, 0, X.mob)) if(X.is_afk()) admin_number_afk++ modholders += X - if(R_ADMIN & X.holder.rights) + if(check_rights(R_ADMIN, 0, X.mob)) if(X.is_afk()) admin_number_afk++ adminholders += X - if(R_BAN & X.holder.rights) + if(check_rights(R_BAN, 0, X.mob)) banholders += X switch(selected_type) diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm index 06e9a389ba9..8277b49081d 100644 --- a/code/modules/admin/verbs/adminpm.dm +++ b/code/modules/admin/verbs/adminpm.dm @@ -117,7 +117,7 @@ //mod PMs are maroon //PMs sent from admins and mods display their rank if(holder) - if( holder.rights & (R_MOD | R_MENTOR) && !holder.rights & R_ADMIN ) + if(check_rights(R_MOD|R_MENTOR,0) && !check_rights(R_ADMIN,0)) recieve_color = "maroon" else recieve_color = "red" @@ -220,11 +220,11 @@ var/list/banholders = list() var/list/adminholders = list() for(var/client/X in admins) - if((R_MOD | R_MENTOR) & X.holder.rights) + if(check_rights(R_MOD|R_MENTOR, 0, X.mob)) modholders += X - if(R_ADMIN & X.holder.rights) + if(check_rights(R_ADMIN, 0, X.mob)) adminholders += X - if(R_BAN & X.holder.rights) + if(check_rights(R_BAN, 0, X.mob)) banholders += X //we don't use message_admins here because the sender/receiver might get it too @@ -235,15 +235,15 @@ if(X.key!=key && X.key!=C.key) switch(type) if("Question") - if(X.holder.rights & (R_MOD | R_MENTOR)) + if(check_rights(R_MOD|R_MENTOR, 0, X.mob)) X << "[type]: [key_name(src, X, 0, type)]->[key_name(C, X, 0, type)]: \blue [msg]" //inform X - else if(!modholders.len && X.holder.rights & R_ADMIN) + else if(!modholders.len && check_rights(R_ADMIN, 0, X.mob)) X << "[type]: [key_name(src, X, 0, type)]->[key_name(C, X, 0, type)]: \blue [msg]" //Any admins in backup of mod question if("Player Complaint") - if(X.holder.rights & R_BAN) + if(check_rights(R_BAN, 0, X.mob)) X << "[type]: [key_name(src, X, 0, type)]->[key_name(C, X, 0, type)]: \blue [msg]" //There should always be at least 1 person with +BAN on else - if((X.holder.rights & R_ADMIN) || (X.holder.rights & R_MOD) ) + if(check_rights(R_ADMIN|R_MOD, 0, X.mob)) X << "[type]: [key_name(src, X, 0, type)]->[key_name(C, X, 0, type)]: \blue [msg]" //If there's no type, send to all admins. /client/proc/cmd_admin_irc_pm() @@ -271,6 +271,5 @@ for(var/client/X in admins) if(X == src) continue - if((X.holder.rights & R_ADMIN) || (X.holder.rights & (R_MOD | R_MENTOR))) + if(check_rights(R_ADMIN|R_MOD|R_MENTOR, 0, X.mob)) X << "PM: [key_name(src, X, 0)]->IRC-Admins: \blue [msg]" - diff --git a/code/modules/admin/verbs/adminsay.dm b/code/modules/admin/verbs/adminsay.dm index cf0ec78a9b5..63ae34e248d 100644 --- a/code/modules/admin/verbs/adminsay.dm +++ b/code/modules/admin/verbs/adminsay.dm @@ -21,7 +21,8 @@ set name = "Msay" set hidden = 1 - if(!check_rights(R_ADMIN|R_MOD)) return + if(!check_rights(R_ADMIN|R_MOD)) + return msg = sanitize(copytext(msg, 1, MAX_MESSAGE_LEN)) log_admin("MOD: [key_name(src)] : [msg]") @@ -33,7 +34,7 @@ if(check_rights(R_ADMIN, 0)) spanclass = "mod_channel_admin" for(var/client/C in admins) - if(R_MOD & C.holder.rights) + if(check_rights(R_ADMIN|R_MOD, 0, C.mob)) C << "MOD: [key_name(usr, 1)] ([admin_jump_link(mob, C.holder)]): [msg]" feedback_add_details("admin_verb","MS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! \ No newline at end of file diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 6c281461e89..37110c3c237 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -152,7 +152,7 @@ proc/cmd_admin_mute(mob/M as mob, mute_type, automute = 0) else if(!usr || !usr.client) return - if(!(usr.client.holder && usr.client.holder.rights && (usr.client.holder.rights & R_MOD))) + if(!check_rights(R_ADMIN|R_MOD)) usr << "Error: cmd_admin_mute: You don't have permission to do this." return if(!M.client) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 9272692fe1a..7d68a50340f 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -295,13 +295,13 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if(jobban_isbanned(M, "AntagHUD")) src << "\red You have been banned from using this feature" return - if(config.antag_hud_restricted && !M.has_enabled_antagHUD && !check_rights(R_MOD,0)) + if(config.antag_hud_restricted && !M.has_enabled_antagHUD && !check_rights(R_ADMIN|R_MOD,0)) var/response = alert(src, "If you turn this on, you will not be able to take any part in the round.","Are you sure you want to turn this feature on?","Yes","No") if(response == "No") return M.can_reenter_corpse = 0 if(M in respawnable_list) respawnable_list -= M - if(!M.has_enabled_antagHUD && !check_rights(R_MOD,0)) + if(!M.has_enabled_antagHUD && !check_rights(R_ADMIN|R_MOD,0)) M.has_enabled_antagHUD = 1 if(M.antagHUD) M.antagHUD = 0 diff --git a/code/modules/mob/emote.dm b/code/modules/mob/emote.dm index 8f1f8c38ad1..bc2e0274ea9 100644 --- a/code/modules/mob/emote.dm +++ b/code/modules/mob/emote.dm @@ -117,7 +117,7 @@ if(istype(M, /mob/new_player)) continue - if(M.client && M.client.holder && (M.client.holder.rights & (R_ADMIN|R_MOD)) && (M.client.prefs.toggles & CHAT_DEAD)) // Show the emote to admins/mods + if(check_rights(R_ADMIN|R_MOD, 0, M) && (M.client.prefs.toggles & CHAT_DEAD)) // Show the emote to admins/mods M << message else if(M.stat == DEAD && (M.client.prefs.toggles & CHAT_DEAD)) // Show the emote to regular ghosts with deadchat toggled on diff --git a/code/modules/mob/living/silicon/ai/examine.dm b/code/modules/mob/living/silicon/ai/examine.dm index db67235ac5d..8fc31c53828 100644 --- a/code/modules/mob/living/silicon/ai/examine.dm +++ b/code/modules/mob/living/silicon/ai/examine.dm @@ -31,5 +31,5 @@ return /mob/dead/observer/showLaws(var/mob/living/silicon/S) - if(antagHUD || check_rights(R_MOD, 0, src)) + if(antagHUD || check_rights(R_ADMIN, 0, src)) S.laws.show_laws(src) diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index b383ca0edae..7e0fbb1389f 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -516,7 +516,7 @@ var/list/intents = list(I_HELP,I_DISARM,I_GRAB,I_HARM) var/mob/dead/observer/DM if(istype(subject, /mob/dead/observer)) DM = subject - if(check_rights(R_MOD,0,M)) // What admins see + if(check_rights(R_ADMIN|R_MOD,0,M)) // What admins see lname = "[keyname][(DM && DM.anonsay) ? "*" : (DM ? "" : "^")] ([name])" else if(DM && DM.anonsay) // If the person is actually observer they have the option to be anonymous