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"