From 47391841044dfd89355ffc0197c8d168d77c540b Mon Sep 17 00:00:00 2001 From: Chinsky Date: Thu, 7 Feb 2013 03:40:01 +0400 Subject: [PATCH] OH GEE LET'S LET EVERYONE AND THEIR ADMIN OBSERVER MOM USE THESE VERBS NOTHING CAN POSSIBLY GO WRONG. Slapped rights checks on verbs in VV menu. --- code/datums/datumvars.dm | 44 ++++++++++++++----------- code/modules/admin/verbs/debug.dm | 1 + code/modules/admin/verbs/randomverbs.dm | 29 ++++++++-------- 3 files changed, 38 insertions(+), 36 deletions(-) diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index affe117141..22ce356bf1 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -246,12 +246,15 @@ client if(ismob(D)) body += "" body += "" - body += "" body += "" body += "" - body += "" + + body += "" body += "" + + body += "" body += "" + body += "" if(ishuman(D)) body += "" @@ -399,6 +402,7 @@ client return html /client/proc/view_var_Topic(href, href_list, hsrc) + testing("[href]") //This should all be moved over to datum/admins/Topic() or something ~Carn if( (usr.client != src) || !src.holder ) return @@ -407,7 +411,7 @@ client //~CARN: for renaming mobs (updates their name, real_name, mind.name, their ID/PDA and datacore records). else if(href_list["rename"]) - if(!check_rights(0)) return + if(!check_rights(R_VAREDIT)) return var/mob/M = locate(href_list["rename"]) if(!istype(M)) @@ -422,7 +426,7 @@ client href_list["datumrefresh"] = href_list["rename"] else if(href_list["varnameedit"] && href_list["datumedit"]) - if(!check_rights(0)) return + if(!check_rights(R_VAREDIT)) return var/D = locate(href_list["datumedit"]) if(!istype(D,/datum) && !istype(D,/client)) @@ -432,7 +436,7 @@ client modify_variables(D, href_list["varnameedit"], 1) else if(href_list["varnamechange"] && href_list["datumchange"]) - if(!check_rights(0)) return + if(!check_rights(R_VAREDIT)) return var/D = locate(href_list["datumchange"]) if(!istype(D,/datum) && !istype(D,/client)) @@ -442,7 +446,7 @@ client modify_variables(D, href_list["varnamechange"], 0) else if(href_list["varnamemass"] && href_list["datummass"]) - if(!check_rights(0)) return + if(!check_rights(R_VAREDIT)) return var/atom/A = locate(href_list["datummass"]) if(!istype(A)) @@ -463,7 +467,7 @@ client href_list["datumrefresh"] = href_list["mob_player_panel"] else if(href_list["give_spell"]) - if(!check_rights(0)) return + if(!check_rights(R_ADMIN|R_FUN)) return var/mob/M = locate(href_list["give_spell"]) if(!istype(M)) @@ -474,7 +478,7 @@ client href_list["datumrefresh"] = href_list["give_spell"] else if(href_list["give_disease"]) - if(!check_rights(0)) return + if(!check_rights(R_ADMIN|R_FUN)) return var/mob/M = locate(href_list["give_disease"]) if(!istype(M)) @@ -485,7 +489,7 @@ client href_list["datumrefresh"] = href_list["give_spell"] else if(href_list["ninja"]) - if(!check_rights(0)) return + if(!check_rights(R_SPAWN)) return var/mob/M = locate(href_list["ninja"]) if(!istype(M)) @@ -528,7 +532,7 @@ client href_list["datumrefresh"] = href_list["build_mode"] else if(href_list["drop_everything"]) - if(!check_rights(0)) return + if(!check_rights(R_DEBUG|R_ADMIN)) return var/mob/M = locate(href_list["drop_everything"]) if(!istype(M)) @@ -550,7 +554,7 @@ client usr.client.cmd_assume_direct_control(M) else if(href_list["make_skeleton"]) - if(!check_rights(0)) return + if(!check_rights(R_FUN)) return var/mob/living/carbon/human/H = locate(href_list["make_skeleton"]) if(!istype(H)) @@ -604,7 +608,7 @@ client message_admins("\blue [key_name(usr)] deleted all objects of type or subtype of [O_type] ([i] objects deleted) ") else if(href_list["explode"]) - if(!check_rights(0)) return + if(!check_rights(R_DEBUG|R_FUN)) return var/atom/A = locate(href_list["explode"]) if(!isobj(A) && !ismob(A) && !isturf(A)) @@ -615,7 +619,7 @@ client href_list["datumrefresh"] = href_list["explode"] else if(href_list["emp"]) - if(!check_rights(0)) return + if(!check_rights(R_DEBUG|R_FUN)) return var/atom/A = locate(href_list["emp"]) if(!isobj(A) && !ismob(A) && !isturf(A)) @@ -650,7 +654,7 @@ client href_list["datumrefresh"] = href_list["rotatedatum"] else if(href_list["makemonkey"]) - if(!check_rights(0)) return + if(!check_rights(R_SPAWN)) return var/mob/living/carbon/human/H = locate(href_list["makemonkey"]) if(!istype(H)) @@ -664,7 +668,7 @@ client holder.Topic(href, list("monkeyone"=href_list["makemonkey"])) else if(href_list["makerobot"]) - if(!check_rights(0)) return + if(!check_rights(R_SPAWN)) return var/mob/living/carbon/human/H = locate(href_list["makerobot"]) if(!istype(H)) @@ -678,7 +682,7 @@ client holder.Topic(href, list("makerobot"=href_list["makerobot"])) else if(href_list["makealien"]) - if(!check_rights(0)) return + if(!check_rights(R_SPAWN)) return var/mob/living/carbon/human/H = locate(href_list["makealien"]) if(!istype(H)) @@ -692,7 +696,7 @@ client holder.Topic(href, list("makealien"=href_list["makealien"])) else if(href_list["makeslime"]) - if(!check_rights(0)) return + if(!check_rights(R_SPAWN)) return var/mob/living/carbon/human/H = locate(href_list["makeslime"]) if(!istype(H)) @@ -706,7 +710,7 @@ client holder.Topic(href, list("makeslime"=href_list["makeslime"])) else if(href_list["makeai"]) - if(!check_rights(0)) return + if(!check_rights(R_SPAWN)) return var/mob/living/carbon/human/H = locate(href_list["makeai"]) if(!istype(H)) @@ -720,7 +724,7 @@ client holder.Topic(href, list("makeai"=href_list["makeai"])) else if(href_list["setmutantrace"]) - if(!check_rights(0)) return + if(!check_rights(R_SPAWN)) return var/mob/living/carbon/human/H = locate(href_list["setmutantrace"]) if(!istype(H)) @@ -750,7 +754,7 @@ client M.regenerate_icons() else if(href_list["adjustDamage"] && href_list["mobToDamage"]) - if(!check_rights(0)) return + if(!check_rights(R_DEBUG|R_ADMIN|R_FUN)) return var/mob/living/L = locate(href_list["mobToDamage"]) if(!istype(L)) return diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index ef41b515c6..c2b27b3716 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -407,6 +407,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that set name = "Assume direct control" set desc = "Direct intervention" + if(!check_rights(R_DEBUG|R_ADMIN)) return if(M.ckey) if(alert("This mob is being controlled by [M.ckey]. Are you sure you wish to assume control of it? [M.ckey] will be made a ghost.",,"Yes","No") != "Yes") return diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 5ab68c117f..cbdde7cca8 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -513,9 +513,7 @@ Traitors and the like can also be revived with the previous role mostly intact. set category = "Special Verbs" set name = "Explosion" - if (!holder) - src << "Only administrators may use this command." - return + if(!check_rights(R_DEBUG|R_FUN)) return var/devastation = input("Range of total devastation. -1 to none", text("Input")) as num|null if(devastation == null) return @@ -543,9 +541,7 @@ Traitors and the like can also be revived with the previous role mostly intact. set category = "Special Verbs" set name = "EM Pulse" - if (!holder) - src << "Only administrators may use this command." - return + if(!check_rights(R_DEBUG|R_FUN)) return var/heavy = input("Range of heavy pulse.", text("Input")) as num|null if(heavy == null) return @@ -567,9 +563,7 @@ Traitors and the like can also be revived with the previous role mostly intact. set category = "Special Verbs" set name = "Gib" - if (!holder) - src << "Only administrators may use this command." - return + if(!check_rights(R_ADMIN|R_FUN)) return var/confirm = alert(src, "You sure?", "Confirm", "Yes", "No") if(confirm != "Yes") return @@ -725,9 +719,7 @@ Traitors and the like can also be revived with the previous role mostly intact. if ((!( ticker ) || emergency_shuttle.location)) return - if (!holder) - src << "Only administrators may use this command." - return + if(!check_rights(R_ADMIN)) return var/confirm = alert(src, "You sure?", "Confirm", "Yes", "No") if(confirm != "Yes") return @@ -750,7 +742,9 @@ Traitors and the like can also be revived with the previous role mostly intact. /client/proc/admin_cancel_shuttle() set category = "Admin" set name = "Cancel Shuttle" - if(!check_rights(0)) return + + if(!check_rights(R_ADMIN)) return + if(alert(src, "You sure?", "Confirm", "Yes", "No") != "Yes") return if(!ticker || emergency_shuttle.location || emergency_shuttle.direction == 0) @@ -770,9 +764,7 @@ Traitors and the like can also be revived with the previous role mostly intact. if (!ticker) return - if (!holder) - src << "Only administrators may use this command." - return + if(!check_rights(R_ADMIN)) return emergency_shuttle.deny_shuttle = !emergency_shuttle.deny_shuttle @@ -794,6 +786,8 @@ Traitors and the like can also be revived with the previous role mostly intact. set name = "Make Everyone Random" set desc = "Make everyone have a random appearance. You can only use this before rounds!" + if(!check_rights(R_FUN)) return + if (ticker && ticker.mode) usr << "Nope you can't do this, the game's already started. This only works before rounds!" return @@ -824,7 +818,10 @@ Traitors and the like can also be revived with the previous role mostly intact. /client/proc/toggle_random_events() set category = "Server" set name = "Toggle random events on/off" + set desc = "Toggles random events such as meteors, black holes, blob (but not space dust) on/off" + if(!check_rights(R_SERVER)) return + if(!config.allow_random_events) config.allow_random_events = 1 usr << "Random events enabled"