Popups can now be limited to 1

This commit is contained in:
joep van der velden
2019-03-12 20:11:20 +01:00
parent 74235e0c19
commit f8a5e81ea2
6 changed files with 62 additions and 22 deletions
+2
View File
@@ -29,6 +29,8 @@
#define UI_DARKMODE 131072
#define DISABLE_KARMA 262144
#define TYPING_ONCE 1048576
#define TOGGLES_DEFAULT (CHAT_OOC|CHAT_DEAD|CHAT_GHOSTEARS|CHAT_GHOSTSIGHT|CHAT_PRAYER|CHAT_RADIO|CHAT_LOOC|MEMBER_PUBLIC|DONATOR_PUBLIC)
// Admin attack logs filter system, see /proc/add_attack_logs and /proc/msg_admin_attack
+9
View File
@@ -109,6 +109,15 @@
else
return trim(html_encode(name), max_length) //trim is "outside" because html_encode can expand single symbols into multiple symbols (such as turning < into &lt;)
// Uses client.typing to check if the popup should appear or not
/proc/typing_input(mob/user, message = "", title = "", default = "")
if(user.client.checkTyping()) // Prevent double windows
return null
user.client.typing = TRUE
var/msg = input(user, message, title, default) as text|null
user.client.typing = FALSE
return msg
//Filters out undesirable characters from names
/proc/reject_bad_name(var/t_in, var/allow_numbers=0, var/max_length=MAX_NAME_LEN)
if(!t_in || length(t_in) > max_length)
+34 -20
View File
@@ -4,25 +4,21 @@ var/global/mentor_ooc_colour = "#0099cc"
var/global/moderator_ooc_colour = "#184880"
var/global/admin_ooc_colour = "#b82e00"
/client/verb/ooc(msg as text)
//Checks if the client already has a text input open
/client/proc/checkTyping()
return (prefs.toggles & TYPING_ONCE && typing)
/client/verb/ooc(msg = "" as text)
set name = "OOC"
set category = "OOC"
if(!mob)
return
if(IsGuestKey(key))
to_chat(src, "<span class='danger'>Guests may not use OOC.</span>")
return
msg = trim(sanitize(copytext(msg, 1, MAX_MESSAGE_LEN)))
if(!msg)
return
if(!(prefs.toggles & CHAT_OOC))
to_chat(src, "<span class='danger'>You have OOC muted.</span>")
return
if(!check_rights(R_ADMIN|R_MOD,0))
if(!check_rights(R_ADMIN|R_MOD, 0))
if(!config.ooc_allowed)
to_chat(src, "<span class='danger'>OOC is globally muted.</span>")
return
@@ -32,6 +28,19 @@ var/global/admin_ooc_colour = "#b82e00"
if(prefs.muted & MUTE_OOC)
to_chat(src, "<span class='danger'>You cannot use OOC (muted).</span>")
return
if(!msg)
msg = typing_input(src.mob, "", "ooc (text)")
msg = trim(sanitize(copytext(msg, 1, MAX_MESSAGE_LEN)))
if(!msg)
return
if(!(prefs.toggles & CHAT_OOC))
to_chat(src, "<span class='danger'>You have OOC muted.</span>")
return
if(!check_rights(R_ADMIN|R_MOD,0))
if(handle_spam_prevention(msg, MUTE_OOC, OOC_COOLDOWN))
return
if(findtext(msg, "byond://"))
@@ -150,7 +159,7 @@ var/global/admin_ooc_colour = "#b82e00"
feedback_add_details("admin_verb","ROC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/verb/looc(msg as text)
/client/verb/looc(msg = "" as text)
set name = "LOOC"
set desc = "Local OOC, seen only by those in view."
set category = "OOC"
@@ -161,14 +170,6 @@ var/global/admin_ooc_colour = "#b82e00"
to_chat(src, "<span class='danger'>Guests may not use OOC.</span>")
return
msg = trim(sanitize(copytext(msg, 1, MAX_MESSAGE_LEN)))
if(!msg)
return
if(!(prefs.toggles & CHAT_LOOC))
to_chat(src, "<span class='danger'>You have LOOC muted.</span>")
return
if(!check_rights(R_ADMIN|R_MOD,0))
if(!config.looc_allowed)
to_chat(src, "<span class='danger'>LOOC is globally muted.</span>")
@@ -179,6 +180,19 @@ var/global/admin_ooc_colour = "#b82e00"
if(prefs.muted & MUTE_OOC)
to_chat(src, "<span class='danger'>You cannot use LOOC (muted).</span>")
return
if(!msg)
msg = typing_input(src.mob, "", "LOOC (text)")
msg = trim(sanitize(copytext(msg, 1, MAX_MESSAGE_LEN)))
if(!msg)
return
if(!(prefs.toggles & CHAT_LOOC))
to_chat(src, "<span class='danger'>You have LOOC muted.</span>")
return
if(!check_rights(R_ADMIN|R_MOD,0))
if(handle_spam_prevention(msg, MUTE_OOC, OOC_COOLDOWN))
return
if(findtext(msg, "byond://"))
+2
View File
@@ -19,6 +19,8 @@
var/area = null
var/time_died_as_mouse = null //when the client last died as a mouse
var/typing = FALSE // Prevents typing window stacking
var/adminhelped = 0
var/gc_destroyed //Time when this object was destroyed.
@@ -231,3 +231,15 @@
else
to_chat(usr, "<span class='notice'>You have enabled karma gains.")
return
/client/verb/toggle_popup_limiter()
set name = "Toggle Text Popup Limiter"
set category = "Preferences"
set desc = "Will let you limit the text input popups to one at a time."
prefs.toggles ^= TYPING_ONCE
prefs.save_preferences(src)
if(prefs.toggles & TYPING_ONCE)
to_chat(usr, "<span class='notice'>You have enabled text popup limiting.")
else
to_chat(usr, "<span class='notice'>You have disabled text popup limiting.")
return
+3 -2
View File
@@ -39,7 +39,7 @@ var/global/image/typing_indicator
set_typing_indicator(1)
hud_typing = 1
var/message = input("","say (text)") as null|text
var/message = typing_input(src, "", "say (text)")
hud_typing = 0
set_typing_indicator(0)
if(message)
@@ -49,9 +49,10 @@ var/global/image/typing_indicator
set name = ".Me"
set hidden = 1
set_typing_indicator(1)
hud_typing = 1
var/message = input("","me (text)") as null|text
var/message = typing_input(src, "", "me (text)")
hud_typing = 0
set_typing_indicator(0)
if(message)