[MIRROR] Refactor /ui_state/new_player_state to what it's designed for [MDB IGNORE] (#18175)

Refactor /ui_state/new_player_state to what it's designed for

Co-authored-by: distributivgesetz <distributivgesetz93@gmail.com>
This commit is contained in:
SkyratBot
2023-01-06 15:35:20 +00:00
committed by GitHub
co-authored by distributivgesetz
parent dc9294dff2
commit d12ee8c506
3 changed files with 13 additions and 8 deletions
+2
View File
@@ -117,6 +117,8 @@
ui.open()
/datum/interview/ui_state(mob/user)
if(check_rights_for(user.client, R_ADMIN))
return GLOB.always_state
return GLOB.new_player_state
/datum/interview/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
@@ -26,6 +26,10 @@ GLOBAL_DATUM_INIT(latejoin_menu, /datum/latejoin_menu, new)
ui = SStgui.try_update_ui(user, src, ui)
if(!ui)
// In case they reopen the GUI
<<<<<<< HEAD
=======
// FIXME: this can cause a runtime since user can be a living mob
>>>>>>> dafef2aa4dc (Refactor /ui_state/new_player_state to what it's designed for (#71959))
if(istype(user))
user.jobs_menu_mounted = FALSE
addtimer(CALLBACK(src, PROC_REF(scream_at_player), user), 5 SECONDS)
@@ -113,9 +117,8 @@ GLOBAL_DATUM_INIT(latejoin_menu, /datum/latejoin_menu, new)
return list("departments_static" = departments)
// we can't use GLOB.new_player_state here since it also allows any admin to see the ui, which will cause runtimes
/datum/latejoin_menu/ui_status(mob/user)
return isnewplayer(user) ? UI_INTERACTIVE : UI_CLOSE
/datum/latejoin_menu/ui_state(mob/user)
return GLOB.new_player_state
/datum/latejoin_menu/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
@@ -166,8 +169,11 @@ GLOBAL_DATUM_INIT(latejoin_menu, /datum/latejoin_menu, new)
// SAFETY: AttemptLateSpawn has it's own sanity checks. This is perfectly safe.
owner.AttemptLateSpawn(params["job"])
<<<<<<< HEAD
return TRUE
=======
>>>>>>> dafef2aa4dc (Refactor /ui_state/new_player_state to what it's designed for (#71959))
if("viewpoll")
var/datum/poll_question/poll = locate(params["viewpoll"]) in GLOB.polls
if(!poll)
+2 -5
View File
@@ -1,13 +1,10 @@
/**
* tgui state: new_player_state
*
* Checks that the user is a new_player, or if user is an admin
* Checks that the user is a /mob/dead/new_player
*/
GLOBAL_DATUM_INIT(new_player_state, /datum/ui_state/new_player_state, new)
/datum/ui_state/new_player_state/can_use_topic(src_object, mob/user)
if(isnewplayer(user) || check_rights_for(user.client, R_ADMIN))
return UI_INTERACTIVE
return UI_CLOSE
return isnewplayer(user) ? UI_INTERACTIVE : UI_CLOSE