Administrator Cherrypick (#27405)

* Admin Verb Datums MkIII | Now with functional command bar (#82511)

* Modular stuffs

* Put some admin jump verbs back into the context menu | sorts area jump list again (#82647)

## About The Pull Request

See title.

## Why It's Good For The Game

Some admins wanted all the jump verbs back, aswell as making them not
AGhost you.
Also make the Jump To Area verb use a sorted list again

* Hey what if admins were allowed to use the player panel (#82682)

Re-adds the player panel verb to the verb panel.

* Controller Overview UI (#82739)

* Fixes a minor spelling mistake on the admin panel/verb list (#82747)

## About The Pull Request

Corrects `inisimin` to `invisimin`. This addresses #82728, but only
fixes one of the two issues mentioned

## Why It's Good For The Game

-1 spelling mistake

## Changelog
🆑
spellcheck: 'inisimin' verb corrected to 'invisimin'
/🆑

* Player Panel-age (#82757)

* Admin Forced Mob Rename and Preference Update (#82715)

---------

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
Co-authored-by: chel <64568243+iliyaxox@users.noreply.github.com>
This commit is contained in:
SpaceLoveSs13
2024-04-23 20:43:45 +02:00
committed by GitHub
co-authored by Zephyr Useroth chel
parent 8ecd4bf5b1
commit a9ff046352
131 changed files with 2336 additions and 3587 deletions
+42 -34
View File
@@ -157,6 +157,15 @@ GLOBAL_LIST_INIT(blacklisted_builds, list(
to_chat(src, "Become a BYOND member to access member-perks and features, as well as support the engine that makes this game possible. Only 10 bucks for 3 months! <a href=\"https://secure.byond.com/membership\">Click Here to find out more</a>.")
return FALSE
return TRUE
/client/proc/is_localhost()
var/static/localhost_addresses = list(
"127.0.0.1",
"::1",
null,
)
return address in localhost_addresses
/*
* Call back proc that should be checked in all paths where a client can send messages
*
@@ -254,32 +263,6 @@ GLOBAL_LIST_INIT(blacklisted_builds, list(
GLOB.ahelp_tickets.ClientLogin(src)
GLOB.interviews.client_login(src)
GLOB.requests.client_login(src)
var/connecting_admin = FALSE //because de-admined admins connecting should be treated like admins.
//Admin Authorisation
var/datum/admins/admin_datum = GLOB.admin_datums[ckey]
if (!isnull(admin_datum))
admin_datum.associate(src)
connecting_admin = TRUE
else if(GLOB.deadmins[ckey])
add_verb(src, /client/proc/readmin)
connecting_admin = TRUE
//SKYRAT EDIT ADDITION //We will check the population here, because we need to know if the client is an admin or not.
if(!check_population(connecting_admin))
qdel(src)
return
// SKYRAT EDIT END
if(CONFIG_GET(flag/autoadmin))
if(!GLOB.admin_datums[ckey])
var/list/autoadmin_ranks = ranks_from_rank_name(CONFIG_GET(string/autoadmin_rank))
if (autoadmin_ranks.len == 0)
to_chat(world, "Autoadmin rank not found")
else
new /datum/admins(autoadmin_ranks, ckey)
if(CONFIG_GET(flag/enable_localhost_rank) && !connecting_admin)
var/localhost_addresses = list("127.0.0.1", "::1")
if(isnull(address) || (address in localhost_addresses))
var/datum/admin_rank/localhost_rank = new("!localhost!", R_EVERYTHING, R_DBRANKS, R_EVERYTHING) //+EVERYTHING -DBRANKS *EVERYTHING
new /datum/admins(list(localhost_rank), ckey, 1, 1)
//preferences datum - also holds some persistent data for the client (because we may as well keep these datums to a minimum)
prefs = GLOB.preferences_datums[ckey]
if(prefs)
@@ -352,6 +335,34 @@ GLOBAL_LIST_INIT(blacklisted_builds, list(
. = ..() //calls mob.Login()
// Admin Verbs need the client's mob to exist. Must be after ..()
var/connecting_admin = FALSE //because de-admined admins connecting should be treated like admins.
//Admin Authorisation
var/datum/admins/admin_datum = GLOB.admin_datums[ckey]
if (!isnull(admin_datum))
admin_datum.associate(src)
connecting_admin = TRUE
else if(GLOB.deadmins[ckey])
add_verb(src, /client/proc/readmin)
connecting_admin = TRUE
//SKYRAT EDIT ADDITION //We will check the population here, because we need to know if the client is an admin or not.
if(!check_population(connecting_admin))
qdel(src)
return
// SKYRAT EDIT END
if(CONFIG_GET(flag/autoadmin))
if(!GLOB.admin_datums[ckey])
var/list/autoadmin_ranks = ranks_from_rank_name(CONFIG_GET(string/autoadmin_rank))
if (autoadmin_ranks.len == 0)
to_chat(world, "Autoadmin rank not found")
else
new /datum/admins(autoadmin_ranks, ckey)
if(CONFIG_GET(flag/enable_localhost_rank) && !connecting_admin && is_localhost())
var/datum/admin_rank/localhost_rank = new("!localhost!", R_EVERYTHING, R_DBRANKS, R_EVERYTHING) //+EVERYTHING -DBRANKS *EVERYTHING
new /datum/admins(list(localhost_rank), ckey, 1, 1)
if (length(GLOB.stickybanadminexemptions))
GLOB.stickybanadminexemptions -= ckey
if (!length(GLOB.stickybanadminexemptions))
@@ -1197,7 +1208,7 @@ GLOBAL_LIST_INIT(blacklisted_builds, list(
return 0
if(!isnum(player_age) || player_age < 0)
return 0
return 0
if(!isnum(days_needed))
return 0
@@ -1207,13 +1218,10 @@ GLOBAL_LIST_INIT(blacklisted_builds, list(
/// Attempts to make the client orbit the given object, for administrative purposes.
/// If they are not an observer, will try to aghost them.
/client/proc/admin_follow(atom/movable/target)
var/can_ghost = TRUE
if (!isobserver(mob))
can_ghost = admin_ghost()
if(!can_ghost)
return FALSE
if(!isobserver(mob))
SSadmin_verbs.dynamic_invoke_verb(src, /datum/admin_verb/admin_ghost)
if(!isobserver(mob))
return
var/mob/dead/observer/observer = mob
observer.ManualFollow(target)
+10 -15
View File
@@ -144,33 +144,28 @@ GLOBAL_VAR_INIT(normal_ooc_colour, "#002eb8")
set category = "Server"
if(IsAdminAdvancedProcCall())
return
var/newColor = input(src, "Please select the new player OOC color.", "OOC color") as color|null
ADMIN_VERB(set_ooc_color, R_FUN, "Set Player OOC Color", "Modifies the global OOC color.", ADMIN_CATEGORY_SERVER)
var/newColor = input(user, "Please select the new player OOC color.", "OOC color") as color|null
if(isnull(newColor))
return
if(!check_rights(R_FUN))
message_admins("[usr.key] has attempted to use the Set Player OOC Color verb!")
log_admin("[key_name(usr)] tried to set player ooc color without authorization.")
return
var/new_color = sanitize_color(newColor)
message_admins("[key_name_admin(usr)] has set the players' ooc color to [new_color].")
log_admin("[key_name_admin(usr)] has set the player ooc color to [new_color].")
message_admins("[key_name_admin(user)] has set the players' ooc color to [new_color].")
log_admin("[key_name_admin(user)] has set the player ooc color to [new_color].")
GLOB.OOC_COLOR = new_color
/client/proc/reset_ooc()
set name = "Reset Player OOC Color"
set desc = "Returns player OOC Color to default"
set category = "Server"
if(IsAdminAdvancedProcCall())
return
if(tgui_alert(usr, "Are you sure you want to reset the OOC color of all players?", "Reset Player OOC Color", list("Yes", "No")) != "Yes")
ADMIN_VERB(reset_ooc_color, R_FUN, "Reset Player OOC Color", "Returns player OOC color to default.", ADMIN_CATEGORY_SERVER)
if(tgui_alert(user, "Are you sure you want to reset the OOC color of all players?", "Reset Player OOC Color", list("Yes", "No")) != "Yes")
return
if(!check_rights(R_FUN))
message_admins("[usr.key] has attempted to use the Reset Player OOC Color verb!")
log_admin("[key_name(usr)] tried to reset player ooc color without authorization.")
return
message_admins("[key_name_admin(usr)] has reset the players' ooc color.")
log_admin("[key_name_admin(usr)] has reset player ooc color.")
message_admins("[key_name_admin(user)] has reset the players' ooc color.")
log_admin("[key_name_admin(user)] has reset player ooc color.")
GLOB.OOC_COLOR = null
//Checks admin notice