View Asays, Erase Flavor Text and Use Random Name

This commit is contained in:
mochi
2020-06-06 09:37:48 +02:00
parent ce83660145
commit 960bac6976
5 changed files with 105 additions and 1 deletions
+2 -1
View File
@@ -109,9 +109,10 @@ GLOBAL_VAR_INIT(nologevent, 0)
else
body += "<A href='?_src_=holder;watchadd=[M.ckey]'>Add to Watchlist</A> "
if(M.client)
body += "| <A href='?_src_=holder;sendtoprison=[M.UID()]'>Prison</A> | "
body += "\ <A href='?_src_=holder;sendbacktolobby=[M.UID()]'>Send back to Lobby</A> | "
body += "\ <A href='?_src_=holder;eraseflavortext=[M.UID()]'>Erase Flavor Text</A> | "
body += "\ <A href='?_src_=holder;userandomname=[M.UID()]'>Use Random Name</A> | "
var/muted = M.client.prefs.muted
body += {"<br><b>Mute: </b>
\[<A href='?_src_=holder;mute=[M.UID()];mute_type=[MUTE_IC]'><font color='[(muted & MUTE_IC)?"red":"blue"]'>IC</font></a> |
+48
View File
@@ -1287,6 +1287,54 @@
NP.ckey = M.ckey
qdel(M)
else if(href_list["eraseflavortext"])
if(!check_rights(R_ADMIN))
return
var/mob/M = locateUID(href_list["eraseflavortext"])
if(!M.client)
to_chat(usr, "<span class='warning'>[M] doesn't seem to have an active client.</span>")
return
if(M.flavor_text == "" && M.client.prefs.flavor_text == "")
to_chat(usr, "<span class='warning'>[M] has no flavor text set.</span>")
return
if(alert(usr, "Erase [key_name(M)]'s flavor text?", "Message", "Yes", "No") != "Yes")
return
log_admin("[key_name(usr)] has erased [key_name(M)]'s flavor text.")
message_admins("[key_name_admin(usr)] has erased [key_name_admin(M)]'s flavor text.")
// Clears the body's flavor text as well as the persistent one
M.flavor_text = "";
M.client.prefs.flavor_text = "";
M.client.prefs.save_character(M.client)
else if(href_list["userandomname"])
if(!check_rights(R_ADMIN))
return
var/mob/M = locateUID(href_list["userandomname"])
if(!M.client)
to_chat(usr, "<span class='warning'>[M] doesn't seem to have an active client.</span>")
return
if(M.client.prefs.be_random_name)
to_chat(usr, "<span class='warning'>[M] already uses a random name.</span>")
return
if(alert(usr, "Force [key_name(M)] to use a random name?", "Message", "Yes", "No") != "Yes")
return
log_admin("[key_name(usr)] has forced [key_name(M)] to use a random name.")
message_admins("[key_name_admin(usr)] has forced [key_name_admin(M)] to use a random name.")
M.client.prefs.be_random_name = TRUE;
M.client.prefs.save_character(M.client)
else if(href_list["tdome1"])
if(!check_rights(R_SERVER|R_EVENT)) return
+7
View File
@@ -7,6 +7,13 @@
msg = sanitize(copytext(msg, 1, MAX_MESSAGE_LEN))
if(!msg) return
var/datum/asays/asay = new()
asay.ckey = usr.ckey
asay.rank = usr.client.holder.rank
asay.message = msg
asay.time = world.timeofday
GLOB.asays += asay
log_adminsay(msg, src)
if(check_rights(R_ADMIN,0))
+47
View File
@@ -0,0 +1,47 @@
GLOBAL_LIST_EMPTY(asays)
/datum/asays
var/ckey = ""
var/rank = ""
var/message = ""
var/time = 0
/client/proc/viewasays()
set name = "View Asays"
set desc = "View Asays from the current round."
set category = "Admin"
if(!check_rights(R_ADMIN))
return
var/output = "<table style='width: 100%;'>"
// Header & body start
output += {"
<thead style='color: #517087; font-weight: bold; table-layout: fixed;'>
<tr>
<th>Time</th>
<th>Ckey</th>
<th>Message</th>
</tr>
</thead>
<tbody>
"}
for (var/datum/asays/A in GLOB.asays)
var/timestr = time2text(A.time, "hh:mm:ss")
output += {"
<tr>
<td>[timestr]</td>
<td><b>[A.ckey] ([A.rank])</b></td>
<td>[A.message]</td>
</tr>
"}
output += {"
</tbody>
</table>"}
var/datum/browser/popup = new(src, "asays", "<div align='center'>Current Round Asays</div>", 1000, 800)
popup.set_content(output)
popup.open(0)