mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-15 04:01:41 +00:00
* 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>
87 lines
2.4 KiB
Plaintext
87 lines
2.4 KiB
Plaintext
///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"]].")
|