mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-07-20 04:17:33 +01:00
Reworking Bot API and optimizing for loops in admin code (#6355)
This commit is contained in:
committed by
Werner
parent
5bf33373c9
commit
81e7f29878
@@ -81,14 +81,16 @@
|
||||
a_ip = world.address
|
||||
|
||||
var/who
|
||||
for(var/client/C in clients)
|
||||
for(var/c in clients)
|
||||
var/client/C = c
|
||||
if(!who)
|
||||
who = "[C]"
|
||||
else
|
||||
who += ", [C]"
|
||||
|
||||
var/adminwho
|
||||
for(var/client/C in admins)
|
||||
for(var/c in staff)
|
||||
var/client/C = c
|
||||
if(!adminwho)
|
||||
adminwho = "[C]"
|
||||
else
|
||||
|
||||
@@ -6,14 +6,16 @@ var/global/enabled_spooking = 0
|
||||
////////////////////////////////
|
||||
/proc/message_admins(var/msg)
|
||||
msg = "<span class=\"log_message\"><span class=\"prefix\">ADMIN LOG:</span> <span class=\"message\">[msg]</span></span>"
|
||||
for(var/client/C in admins)
|
||||
for(var/s in staff)
|
||||
var/client/C = s
|
||||
if((R_ADMIN|R_MOD) & C.holder.rights)
|
||||
to_chat(C, msg)
|
||||
|
||||
/proc/msg_admin_attack(var/text,var/ckey="",var/ckey_target="") //Toggleable Attack Messages
|
||||
log_attack(text,ckey=ckey,ckey_target=ckey_target)
|
||||
var/rendered = "<span class=\"log_message\"><span class=\"prefix\">ATTACK:</span> <span class=\"message\">[text]</span></span>"
|
||||
for(var/client/C in admins)
|
||||
for(var/s in staff)
|
||||
var/client/C = s
|
||||
if((R_ADMIN|R_MOD) & C.holder.rights)
|
||||
if(C.prefs.toggles & CHAT_ATTACKLOGS)
|
||||
var/msg = rendered
|
||||
|
||||
@@ -61,10 +61,11 @@ var/list/admin_ranks = list() //list of all ranks with associated rights
|
||||
/proc/load_admins()
|
||||
//clear the datums references
|
||||
admin_datums.Cut()
|
||||
for(var/client/C in admins)
|
||||
for(var/s in staff)
|
||||
var/client/C = s
|
||||
C.remove_admin_verbs()
|
||||
C.holder = null
|
||||
admins.Cut()
|
||||
staff.Cut()
|
||||
|
||||
// Clears admins from the world config.
|
||||
for (var/A in world.GetConfig("admin"))
|
||||
|
||||
@@ -41,18 +41,18 @@ var/list/admin_datums = list()
|
||||
owner = C
|
||||
owner.holder = src
|
||||
owner.add_admin_verbs() //TODO
|
||||
admins |= C
|
||||
staff |= C
|
||||
|
||||
/datum/admins/proc/disassociate()
|
||||
if(owner)
|
||||
admins -= owner
|
||||
staff -= owner
|
||||
owner.remove_admin_verbs()
|
||||
owner.deadmin_holder = owner.holder
|
||||
owner.holder = null
|
||||
|
||||
/datum/admins/proc/reassociate()
|
||||
if(owner)
|
||||
admins += owner
|
||||
staff += owner
|
||||
owner.holder = src
|
||||
owner.deadmin_holder = null
|
||||
owner.add_admin_verbs()
|
||||
|
||||
@@ -128,7 +128,8 @@ var/global/list/ticket_panels = list()
|
||||
|
||||
if (!admin_found)
|
||||
message_admins("<span class='danger'><b>[owner]'s ticket has yet to be closed!</b></span>")
|
||||
for(var/client/C in admins)
|
||||
for(var/s in staff)
|
||||
var/client/C = s
|
||||
if((C.holder.rights & (R_ADMIN|R_MOD)) && (C.prefs.toggles & SOUND_ADMINHELP))
|
||||
sound_to(C, 'sound/effects/adminhelp.ogg')
|
||||
|
||||
|
||||
@@ -116,15 +116,16 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","
|
||||
var/admin_number_present = 0
|
||||
var/admin_number_afk = 0
|
||||
|
||||
for(var/client/X in admins)
|
||||
if((R_ADMIN|R_MOD) & X.holder.rights)
|
||||
for(var/s in staff)
|
||||
var/client/C = s
|
||||
if((R_ADMIN|R_MOD) & C.holder.rights)
|
||||
admin_number_present++
|
||||
if(X.is_afk())
|
||||
if(C.is_afk())
|
||||
admin_number_afk++
|
||||
if(X.prefs.toggles & SOUND_ADMINHELP)
|
||||
sound_to(X, 'sound/effects/adminhelp.ogg')
|
||||
if(C.prefs.toggles & SOUND_ADMINHELP)
|
||||
sound_to(C, 'sound/effects/adminhelp.ogg')
|
||||
|
||||
to_chat(X, msg)
|
||||
to_chat(C, msg)
|
||||
|
||||
//show it to the person adminhelping too
|
||||
to_chat(src, "<font color='blue'>PM to-<b>Staff </b>: [original_msg]</font>")
|
||||
|
||||
@@ -17,7 +17,8 @@
|
||||
to_chat(src, "<font color='red'>Error: Admin-PM-Panel: Only administrators may use this command.</font>")
|
||||
return
|
||||
var/list/client/targets[0]
|
||||
for(var/client/T)
|
||||
for(var/p in player_list)
|
||||
var/client/T = p
|
||||
if(T.mob)
|
||||
if(istype(T.mob, /mob/abstract/new_player))
|
||||
targets["(New Player) - [T]"] = T
|
||||
@@ -37,7 +38,7 @@
|
||||
//Fetching a message if needed. src is the sender and C is the target client
|
||||
|
||||
/client/proc/cmd_admin_pm(var/client/C, var/msg = null, var/datum/ticket/ticket = null)
|
||||
if(!istype(C,/client))
|
||||
if(!istype(C, /client))
|
||||
if(holder) to_chat(src, "<font color='red'>Error: Private-Message: Client not found.</font>")
|
||||
else to_chat(src, "<font color='red'>Error: Private-Message: Client not found. They may have lost connection, so try using an adminhelp!</font>")
|
||||
return
|
||||
@@ -150,7 +151,8 @@
|
||||
ticket.append_message(src.ckey, C.ckey, msg)
|
||||
|
||||
//we don't use message_admins here because the sender/receiver might get it too
|
||||
for(var/client/X in admins)
|
||||
for(var/s in staff)
|
||||
var/client/X = s
|
||||
//check client/X is an admin and isn't the sender or recipient
|
||||
if(X == C || X == src)
|
||||
continue
|
||||
@@ -175,8 +177,9 @@
|
||||
to_chat(src, "<span class='pm'><span class='out'>" + create_text_tag("pm_out_alt", "", src) + " to <span class='name'>Discord-[sender]</span>: <span class='message'>[msg]</span></span></span>")
|
||||
|
||||
log_admin("PM: [key_name(src)]->Discord-[sender]: [msg]")
|
||||
for(var/client/X in admins)
|
||||
if(X == src)
|
||||
for(var/s in staff)
|
||||
var/client/C = s
|
||||
if(C == src)
|
||||
continue
|
||||
if(X.holder.rights & (R_ADMIN|R_MOD))
|
||||
to_chat(X, "<span class='pm'><span class='other'>" + create_text_tag("pm_other", "PM:", X) + " <span class='name'>[key_name(src, X, 0)]</span> to <span class='name'>Discord-[sender]</span>: <span class='message'>[msg]</span></span></span>")
|
||||
if(C.holder.rights & (R_ADMIN|R_MOD))
|
||||
to_chat(C, "<span class='pm'><span class='other'>" + create_text_tag("pm_other", "PM:", C) + " <span class='name'>[key_name(src, C, 0)]</span> to <span class='name'>Discord-[sender]</span>: <span class='message'>[msg]</span></span></span>")
|
||||
|
||||
@@ -10,7 +10,8 @@
|
||||
log_admin("ADMIN: [key_name(src)] : [msg]",admin_key=key_name(src))
|
||||
|
||||
if(check_rights(R_ADMIN,0))
|
||||
for(var/client/C in admins)
|
||||
for(var/s in staff)
|
||||
var/client/C = s
|
||||
if(R_ADMIN & C.holder.rights)
|
||||
to_chat(C, "<span class='admin_channel'>" + create_text_tag("admin", "ADMIN:", C) + " <span class='name'>[key_name(usr, 1)]</span>([admin_jump_link(mob, src)]): <span class='message'>[msg]</span></span>")
|
||||
|
||||
@@ -32,7 +33,8 @@
|
||||
var/sender_name = key_name(usr, 1)
|
||||
if(check_rights(R_ADMIN, 0))
|
||||
sender_name = "<span class='admin'>[sender_name]</span>"
|
||||
for(var/client/C in admins)
|
||||
for(var/s in staff)
|
||||
var/client/C = s
|
||||
if ((R_ADMIN|R_MOD) & C.holder.rights)
|
||||
to_chat(C, "<span class='mod_channel'>" + create_text_tag("mod", "MOD:", C) + " <span class='name'>[sender_name]</span>(<A HREF='?src=\ref[C.holder];adminplayerobservejump=\ref[mob]'>JMP</A>): <span class='message'>[msg]</span></span>")
|
||||
|
||||
@@ -52,7 +54,8 @@
|
||||
|
||||
if(check_rights(R_DEV,0))
|
||||
msg = "<span class='devsay'><span class='prefix'>DEV:</span> <EM>[key_name(usr, 0, 1, 0)]</EM>: <span class='message'>[msg]</span></span>"
|
||||
for(var/client/C in admins)
|
||||
for(var/s in staff)
|
||||
var/client/C = s
|
||||
if(C.holder.rights & (R_ADMIN|R_DEV))
|
||||
to_chat(C, msg)
|
||||
|
||||
@@ -70,6 +73,7 @@
|
||||
|
||||
if(check_rights((R_CCIAA|R_ADMIN),0))
|
||||
msg = "<span class='cciaasay'><span class='prefix'>CCIAAgent:</span> <EM>[key_name(usr, 0, 1, 0)]</EM>: <span class='message'>[msg]</span></span>"
|
||||
for(var/client/C in admins)
|
||||
for(var/s in staff)
|
||||
var/client/C = s
|
||||
if(C.holder.rights & (R_ADMIN|R_CCIAA))
|
||||
to_chat(C, msg)
|
||||
|
||||
@@ -502,19 +502,19 @@
|
||||
set name = "Debug Mob Lists"
|
||||
set desc = "For when you just gotta know"
|
||||
|
||||
switch(input("Which list?") in list("Players","Admins","Mobs","Living Mobs","Dead Mobs", "Clients"))
|
||||
switch(input("Which list?") in list("Players","Staff","Mobs","Living Mobs","Dead Mobs", "Clients"))
|
||||
if("Players")
|
||||
to_chat(usr, jointext(player_list,","))
|
||||
if("Admins")
|
||||
to_chat(usr, jointext(admins,","))
|
||||
to_chat(usr, jointext(player_list,", "))
|
||||
if("Staff")
|
||||
to_chat(usr, jointext(staff,", "))
|
||||
if("Mobs")
|
||||
to_chat(usr, jointext(mob_list,","))
|
||||
to_chat(usr, jointext(mob_list,", "))
|
||||
if("Living Mobs")
|
||||
to_chat(usr, jointext(living_mob_list,","))
|
||||
to_chat(usr, jointext(living_mob_list,", "))
|
||||
if("Dead Mobs")
|
||||
to_chat(usr, jointext(dead_mob_list,","))
|
||||
to_chat(usr, jointext(dead_mob_list,", "))
|
||||
if("Clients")
|
||||
to_chat(usr, jointext(clients,","))
|
||||
to_chat(usr, jointext(clients,", "))
|
||||
|
||||
// DNA2 - Admin Hax
|
||||
/client/proc/cmd_admin_toggle_block(var/mob/M,var/block)
|
||||
|
||||
@@ -15,7 +15,8 @@
|
||||
var/image/cross = image('icons/obj/storage.dmi',"bible")
|
||||
msg = "<span class='notice'>\icon[cross] <b><font color=purple>PRAY: </font>[key_name(src, 1)] (<A HREF='?_src_=holder;adminmoreinfo=\ref[src]'>?</A>) (<A HREF='?_src_=holder;adminplayeropts=\ref[src]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[src]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[src]'>SM</A>) ([admin_jump_link(src, src)]) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;adminspawncookie=\ref[src]'>SC</a>):</b> [msg]</span>"
|
||||
|
||||
for(var/client/C in admins)
|
||||
for(var/s in staff)
|
||||
var/client/C = s
|
||||
if(C.holder.rights & (R_ADMIN|R_MOD|R_FUN))
|
||||
if(C.prefs.toggles & CHAT_PRAYER)
|
||||
to_chat(C, msg)
|
||||
@@ -31,7 +32,8 @@
|
||||
var/cciaa_present = 0
|
||||
var/cciaa_afk = 0
|
||||
|
||||
for(var/client/C in admins)
|
||||
for(var/s in staff)
|
||||
var/client/C = s
|
||||
if(R_ADMIN & C.holder.rights)
|
||||
to_chat(C, msg_admin)
|
||||
else if (R_CCIAA & C.holder.rights)
|
||||
@@ -55,6 +57,7 @@
|
||||
|
||||
/proc/Syndicate_announce(var/msg, var/mob/Sender)
|
||||
msg = "<span class='notice'><b><font color=crimson>ILLEGAL:</font>[key_name(Sender, 1)] (<A HREF='?_src_=holder;adminplayeropts=\ref[Sender]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[Sender]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[Sender]'>SM</A>) ([admin_jump_link(Sender, src)]) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;BlueSpaceArtillery=\ref[Sender]'>BSA</A>) (<A HREF='?_src_=holder;SyndicateReply=\ref[Sender]'>RPLY</A>):</b> [msg]</span>"
|
||||
for(var/client/C in admins)
|
||||
for(var/s in staff)
|
||||
var/client/C = s
|
||||
if(R_ADMIN & C.holder.rights)
|
||||
to_chat(C, msg)
|
||||
|
||||
Reference in New Issue
Block a user