mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-18 19:44:58 +01:00
[MIRROR] Admin verb to send message on PDA [MDB IGNORE] (#17252)
* Admin verb to send message on PDA (#70790) * base * oh, oh. * uh, dots? * no hdd, only computer * kill let in UI(but not in func) * Admin verb to send message on PDA Co-authored-by: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com>
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
///Allows an admin to send messages on PDA
|
||||
/client/proc/message_pda()
|
||||
set name = "PDA Message"
|
||||
set category = "Admin.Events"
|
||||
|
||||
if(!holder ||!check_rights(R_ADMIN))
|
||||
return
|
||||
|
||||
holder.message_pda()
|
||||
|
||||
///Opens up the PDA Message Panel
|
||||
/datum/admins/proc/message_pda()
|
||||
if(!check_rights(R_ADMIN))
|
||||
return
|
||||
|
||||
if(!length(GLOB.TabletMessengers))
|
||||
to_chat(usr, span_warning("ERROR: There are no users you can send a message to"))
|
||||
return
|
||||
|
||||
var/datum/admin_pda_panel/ui = new(usr)
|
||||
ui.ui_interact(usr)
|
||||
|
||||
/// Panel
|
||||
/datum/admin_pda_panel
|
||||
/// PDA which have players(and we can send them message)
|
||||
var/available_pdas = list()
|
||||
|
||||
/datum/admin_pda_panel/New()
|
||||
for(var/obj/item/modular_computer/computer in GLOB.TabletMessengers)
|
||||
for(var/datum/computer_file/program/messenger/app in computer.stored_files)
|
||||
if(!computer.saved_identification || !computer.saved_job || app.monitor_hidden || app.invisible)
|
||||
continue
|
||||
available_pdas += list(list("tablet" = computer, "name" = computer.saved_identification))
|
||||
|
||||
/datum/admin_pda_panel/ui_interact(mob/user, datum/tgui/ui)
|
||||
ui = SStgui.try_update_ui(user, src, ui)
|
||||
if(!ui)
|
||||
ui = new(user, src, "AdminPDA")
|
||||
ui.open()
|
||||
|
||||
/datum/admin_pda_panel/ui_state(mob/user)
|
||||
return GLOB.admin_state
|
||||
|
||||
/datum/admin_pda_panel/ui_static_data(mob/user)
|
||||
var/list/data = list()
|
||||
data["users"] = list()
|
||||
|
||||
for(var/username in available_pdas)
|
||||
data["users"] += username["name"]
|
||||
return data
|
||||
|
||||
/datum/admin_pda_panel/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
|
||||
if(..())
|
||||
return
|
||||
|
||||
if(!check_rights(R_ADMIN))
|
||||
return
|
||||
|
||||
switch(action)
|
||||
if("sendMessage")
|
||||
var/targets = list()
|
||||
var/spam = params["spam"]
|
||||
for(var/target in available_pdas)
|
||||
if(!spam && target["name"] != params["user"])
|
||||
continue
|
||||
targets += target["tablet"]
|
||||
|
||||
if(!length(targets))
|
||||
to_chat(usr, span_warning("ERROR: Target is unavaiable(or not choosed)."))
|
||||
return
|
||||
|
||||
var/datum/signal/subspace/messaging/tablet_msg/signal = new(targets[1], list(
|
||||
"name" = params["name"],
|
||||
"job" = params["job"],
|
||||
"message" = html_decode(params["message"]),
|
||||
"ref" = FALSE,
|
||||
"targets" = targets,
|
||||
"emojis" = FALSE,
|
||||
"rigged" = FALSE,
|
||||
"photo" = FALSE,
|
||||
"automated" = FALSE,
|
||||
))
|
||||
|
||||
signal.send_to_receivers()
|
||||
message_admins("[key_name_admin(usr)] has send custom PDA message to [spam ? "everyone" : params["user"]].")
|
||||
log_admin("[key_name(usr)] has send custom PDA message to [spam ? "everyone" : params["user"]]. Message: [params["message"]].")
|
||||
@@ -95,6 +95,7 @@ GLOBAL_PROTECT(admin_verbs_admin)
|
||||
/client/proc/show_manifest,
|
||||
/client/proc/list_dna,
|
||||
/client/proc/list_fingerprints,
|
||||
/client/proc/message_pda, /*send a message to somebody on PDA*/
|
||||
)
|
||||
GLOBAL_LIST_INIT(admin_verbs_ban, list(/client/proc/unban_panel, /client/proc/ban_panel, /client/proc/stickybanpanel))
|
||||
GLOBAL_PROTECT(admin_verbs_ban)
|
||||
|
||||
Reference in New Issue
Block a user