mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-17 11:05:16 +01:00
Merge remote-tracking branch 'tgstation/master' into upstream-2025-11-29
# Conflicts: # _maps/RandomRuins/SpaceRuins/derelict_sulaco.dmm # _maps/RandomRuins/SpaceRuins/garbagetruck2.dmm # _maps/map_files/CatwalkStation/CatwalkStation_2023.dmm # _maps/map_files/tramstation/tramstation.dmm # code/_onclick/hud/new_player.dm # code/datums/components/squashable.dm # code/datums/diseases/advance/symptoms/heal.dm # code/datums/diseases/chronic_illness.dm # code/datums/status_effects/buffs.dm # code/datums/status_effects/debuffs/drunk.dm # code/datums/status_effects/debuffs/stamcrit.dm # code/game/machinery/computer/crew.dm # code/game/objects/items/devices/scanners/health_analyzer.dm # code/game/objects/items/wall_mounted.dm # code/game/turfs/closed/indestructible.dm # code/modules/admin/view_variables/filterrific.dm # code/modules/antagonists/heretic/influences.dm # code/modules/cargo/orderconsole.dm # code/modules/client/preferences.dm # code/modules/events/space_vines/vine_mutations.dm # code/modules/mob/dead/new_player/new_player.dm # code/modules/mob/living/carbon/human/death.dm # code/modules/mob/living/carbon/human/species_types/jellypeople.dm # code/modules/mob/living/damage_procs.dm # code/modules/mob/living/living.dm # code/modules/mob_spawn/ghost_roles/mining_roles.dm # code/modules/mob_spawn/mob_spawn.dm # code/modules/projectiles/ammunition/energy/laser.dm # code/modules/projectiles/guns/ballistic/launchers.dm # code/modules/projectiles/guns/energy/laser.dm # code/modules/reagents/chemistry/machinery/chem_dispenser.dm # code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm # code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm # code/modules/reagents/chemistry/reagents/medicine_reagents.dm # code/modules/surgery/healing.dm # code/modules/unit_tests/designs.dm # icons/mob/inhands/items_lefthand.dmi # icons/mob/inhands/items_righthand.dmi # tgui/packages/tgui/interfaces/ChemDispenser.tsx
This commit is contained in:
@@ -129,7 +129,8 @@ ADMIN_VERB_ONLY_CONTEXT_MENU(show_player_panel, R_ADMIN, "Show Player Panel", mo
|
||||
body += "<A href='byond://?_src_=holder;[HrefToken()];narrateto=[REF(player)]'>Narrate to</A> | "
|
||||
body += "<A href='byond://?_src_=holder;[HrefToken()];subtlemessage=[REF(player)]'>Subtle message</A> | "
|
||||
body += "<A href='byond://?_src_=holder;[HrefToken()];playsoundto=[REF(player)]'>Play sound to</A> | "
|
||||
body += "<A href='byond://?_src_=holder;[HrefToken()];languagemenu=[REF(player)]'>Language Menu</A>"
|
||||
body += "<A href='byond://?_src_=holder;[HrefToken()];languagemenu=[REF(player)]'>Language Menu</A> | "
|
||||
body += "<A href='byond://?_src_=holder;[HrefToken()];rpreminder=[REF(player)]'>Roleplay Reminder</A>"
|
||||
|
||||
if(player.client)
|
||||
if(!isnewplayer(player))
|
||||
@@ -449,8 +450,9 @@ ADMIN_VERB(lag_switch_panel, R_ADMIN, "Show Lag Switches", "Display the controls
|
||||
user << browse(dat.Join(), "window=lag_switch_panel;size=420x480")
|
||||
|
||||
ADMIN_VERB(spawn_panel, R_SPAWN, "Spawn Panel", "Spawn Panel (TGUI).", ADMIN_CATEGORY_GAME)
|
||||
var/datum/spawnpanel/panel = get_spawnpanel_for_admin(user.mob)
|
||||
if(panel)
|
||||
panel.ui_interact(user.mob)
|
||||
var/datum/spawnpanel/panel = user.holder.spawn_panel
|
||||
if(!panel)
|
||||
panel = new()
|
||||
user.holder.spawn_panel = panel
|
||||
panel.ui_interact(user.mob)
|
||||
BLACKBOX_LOG_ADMIN_VERB("Spawn Panel")
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
ADMIN_VERB(toggle_game_debug, R_DEBUG, "Debug-Game", "Toggles game debugging.", ADMIN_CATEGORY_DEBUG)
|
||||
GLOB.Debug2 = !GLOB.Debug2
|
||||
var/message = "toggled debugging [(GLOB.Debug2 ? "ON" : "OFF")]"
|
||||
GLOB.debugging_enabled = !GLOB.debugging_enabled
|
||||
var/message = "toggled debugging [(GLOB.debugging_enabled ? "ON" : "OFF")]"
|
||||
message_admins("[key_name_admin(user)] [message].")
|
||||
log_admin("[key_name(user)] [message].")
|
||||
BLACKBOX_LOG_ADMIN_VERB("Toggle Debug Two")
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
ADMIN_VERB(upload_jukebox_music, R_SERVER, "Jukebox Upload Music", "Upload a valid .ogg file to be accessed via the jukebox.", ADMIN_CATEGORY_SERVER)
|
||||
var/file = input(user, "Select a .ogg file to upload to the jukebox.") as sound|null
|
||||
if(!file)
|
||||
return
|
||||
|
||||
// we could theorticly support other sound types but OGG is the better format from what I am aware and I am 100% sure its length is properly fetched.
|
||||
if(!IS_OGG_FILE(file))
|
||||
tgui_alert(user, "Invalid file type. Please select an OGG file.", "Loading error", list("Ok"))
|
||||
return
|
||||
|
||||
var/list/track_data = splittext(file, "+")
|
||||
if(track_data.len < 2)
|
||||
if(tgui_alert(user, "Your song currently does not have a beat in deciseconds added to its title, e.g: SS13+5.ogg. Continue?", "Confirmation", list("Yes", "No")) != "Yes")
|
||||
return
|
||||
if(track_data.len > 2)
|
||||
tgui_alert(user, "Titles should only have its title and beat in deciseconds, e.g: SS13+5.ogg", "Loading error", list("Ok"))
|
||||
return
|
||||
|
||||
|
||||
var/clean_name = SANITIZE_FILENAME("[file]")
|
||||
var/save_path = "[CONFIG_JUKEBOX_SOUNDS][clean_name]"
|
||||
|
||||
// Copy uploaded file to the server
|
||||
fcopy(file, save_path)
|
||||
|
||||
message_admins("[key_name_admin(user)] uploaded [clean_name] to the jukebox!")
|
||||
to_chat(user, span_notice("Successfully uploaded [clean_name]!"))
|
||||
|
||||
ADMIN_VERB(browse_jukebox_music, R_SERVER, "Jukebox Browse Music", "Browse music files for moderation.", ADMIN_CATEGORY_SERVER)
|
||||
var/list/files = flist(CONFIG_JUKEBOX_SOUNDS)
|
||||
// Filter out things that are not sound files, like the exclude
|
||||
for(var/thing in files)
|
||||
if(!IS_SOUND_FILE(thing))
|
||||
files -= thing
|
||||
if(!files.len)
|
||||
to_chat(user, span_warning("No uploaded tracks found."))
|
||||
return
|
||||
|
||||
var/choice = tgui_input_list(user, "Select a track:", "Select Jukebox Music", files)
|
||||
if(!choice)
|
||||
return
|
||||
|
||||
var/path = "[CONFIG_JUKEBOX_SOUNDS][choice]"
|
||||
|
||||
switch(tgui_alert(user, "Play, Delete, or Download?", choice, list("Play", "Delete", "Download")))
|
||||
if ("Play")
|
||||
SEND_SOUND(user, sound(path))
|
||||
if ("Delete")
|
||||
fdel(path)
|
||||
var/msg = "[key_name_admin(user)] deleted [choice] from the jukebox!"
|
||||
message_admins(msg)
|
||||
log_admin(msg)
|
||||
SSblackbox.record_feedback("associative", "jukebox_deletion", 1, list("round_id" = "[GLOB.round_id]", "deletor" = "[key_name_admin(user)]", "deleted" = "[choice]"))
|
||||
if ("Download")
|
||||
user << ftp(file(path))
|
||||
else
|
||||
return
|
||||
@@ -554,7 +554,7 @@ ADMIN_VERB(secrets, R_NONE, "Secrets", "Abuse harder than you ever have before w
|
||||
SSblackbox.record_feedback("nested tally", "admin_secrets_fun_used", 1, list("Mass Braindamage"))
|
||||
for(var/mob/living/carbon/human/human_mob in GLOB.player_list)
|
||||
to_chat(human_mob, span_bolddanger("You suddenly feel stupid."), confidential = TRUE)
|
||||
human_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, 60, 80)
|
||||
human_mob.adjust_organ_loss(ORGAN_SLOT_BRAIN, 60, 80)
|
||||
message_admins("[key_name_admin(holder)] made everybody brain damaged")
|
||||
if("floorlava")
|
||||
SSweather.run_weather(/datum/weather/floor_is_lava)
|
||||
|
||||
Reference in New Issue
Block a user