mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-23 03:57:48 +01:00
ports the chat panel and backend updates [NO GBP] (#18895)
* ports the chat settings update * . * . * follow up changes * zod * migration changes from jl * this will blow up badly * yuck * . * . * order * . * : * be gone * . * . * logging * dix logging * move to its own atom * fix settings import * . * fix audio * tgui fix * . * archiving as atom * more changes from JL * bring back default archive all * no stale state * no need to run twice * - * we need both anyway * dep up * . * build fixes port * Fix file path replacement in build script * backend update * . * . * use the tg method * only use as unchunked fallback for say etc * . * linter errors * tg's chunking methód should be sane enough * sadly still not * update for tg chunking * force those * jl suggestion * . * needs game atom * push * have this * we only want to store if a page was changed or added * only store what we really care about * fixes import port * we need settings first * recoloring shouldn't be a pain * partial * . * some type fixing * . * no throw of events * ree map might not be there yet * . * always store our settings * this is a valid crash * ss early assets * saver image access * missed unsafe access * . * move chat loading order * . * . * . * . * missing unregs * keep the ref map name, just don't bother * await the asset like redux did before * try that? * . * use await * biome up * better handling as JL did on tg * rename * last dep up * major bump here * major bump --------- Co-authored-by: Cameron Lennox <killer65311@gmail.com>
This commit is contained in:
co-authored by
Cameron Lennox
parent
0b64afc891
commit
6cf7d1ab5f
@@ -18,15 +18,15 @@ GLOBAL_LIST_EMPTY(asset_datums)
|
||||
var/cached_serialized_url_mappings
|
||||
var/cached_serialized_url_mappings_transport_type
|
||||
|
||||
/// Whether or not this asset should be loaded in the "early assets" SS
|
||||
var/early = FALSE
|
||||
|
||||
/// Whether or not this asset can be cached across rounds of the same commit under the `CACHE_ASSETS` config.
|
||||
/// This is not a *guarantee* the asset will be cached. Not all asset subtypes respect this field, and the
|
||||
/// config can, of course, be disabled.
|
||||
/// Disable this if your asset can change between rounds on the same exact version of the code.
|
||||
var/cross_round_cachable = FALSE
|
||||
|
||||
/// Whether or not this asset should be loaded in the "early assets" SS
|
||||
var/early = FALSE
|
||||
|
||||
/datum/asset/New()
|
||||
GLOB.asset_datums[type] = src
|
||||
register()
|
||||
@@ -114,6 +114,9 @@ GLOBAL_LIST_EMPTY(asset_datums)
|
||||
for (var/asset_name in assets)
|
||||
.[asset_name] = SSassets.transport.get_asset_url(asset_name, assets[asset_name])
|
||||
|
||||
/datum/asset/simple/unregister()
|
||||
for (var/asset_name in assets)
|
||||
SSassets.transport.unregister_asset(asset_name)
|
||||
|
||||
// For registering or sending multiple others at once
|
||||
/datum/asset/group
|
||||
@@ -546,6 +549,11 @@ GLOBAL_LIST_EMPTY(asset_datums)
|
||||
return
|
||||
. = list("[item_filename]" = SSassets.transport.get_asset_url(item_filename))
|
||||
|
||||
/datum/asset/changelog_item/unregister()
|
||||
if (!item_filename)
|
||||
return
|
||||
SSassets.transport.unregister_asset(item_filename)
|
||||
|
||||
//Generates assets based on iconstates of a single icon
|
||||
/datum/asset/simple/icon_states
|
||||
_abstract = /datum/asset/simple/icon_states
|
||||
|
||||
@@ -90,9 +90,9 @@
|
||||
#endif
|
||||
if (!istype(client))
|
||||
if (ismob(client))
|
||||
var/mob/M = client
|
||||
if (M.client)
|
||||
client = M.client
|
||||
var/mob/our_mob = client
|
||||
if (our_mob.client)
|
||||
client = our_mob.client
|
||||
else //no stacktrace because this will mainly happen because the client went away
|
||||
return
|
||||
else
|
||||
|
||||
@@ -225,7 +225,7 @@
|
||||
if(href_list["window_id"] == "statbrowser")
|
||||
return TRUE
|
||||
// Chunked messages will exceed the limit
|
||||
if(href_list["tgui"] && href_list["totalPackets"])
|
||||
if(href_list["tgui"] && href_list["type"] == "payloadChunk")
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
|
||||
@@ -381,19 +381,17 @@
|
||||
reinitialize()
|
||||
if("chat/resend")
|
||||
SSchat.handle_resend(client, payload)
|
||||
/* Does not work with tgui say, so not in use yet
|
||||
if("oversizedPayloadRequest")
|
||||
var/payload_id = payload["id"]
|
||||
var/chunk_count = payload["chunkCount"]
|
||||
var/permit_payload = chunk_count <= CONFIG_GET(number/tgui_max_chunk_count)
|
||||
var/chunk_count = text2num(payload["chunkCount"])
|
||||
var/permit_payload = chunk_count <= MAX_MESSAGE_CHUNKS
|
||||
if(permit_payload)
|
||||
create_oversized_payload(payload_id, payload["type"], chunk_count)
|
||||
send_message("oversizePayloadResponse", list("allow" = permit_payload, "id" = payload_id))
|
||||
if("payloadChunk")
|
||||
var/payload_id = payload["id"]
|
||||
append_payload_chunk(payload_id, payload["chunk"])
|
||||
send_message("acknowlegePayloadChunk", list("id" = payload_id))
|
||||
*/
|
||||
send_message("acknowledgePayloadChunk", list("id" = payload_id))
|
||||
|
||||
/datum/tgui_window/vv_edit_var(var_name, var_value)
|
||||
return var_name != NAMEOF(src, id) && ..()
|
||||
|
||||
@@ -19,19 +19,19 @@
|
||||
// Failed to fix, using tgalert as fallback
|
||||
action = tg_alert(src, "Did that work?", "", "Yes", "No, switch to old ui")
|
||||
if (action == "No, switch to old ui")
|
||||
winset(src, "legacy_output_selector", "left=output_legacy")
|
||||
winset(src, "outputwindow.legacy_output_selector", "left=output_legacy")
|
||||
log_tgui(src, "Failed to fix.", context = "verb/fix_tgui_panel")
|
||||
|
||||
/client/proc/nuke_chat()
|
||||
// Catch all solution (kick the whole thing in the pants)
|
||||
winset(src, "legacy_output_selector", "left=output_legacy")
|
||||
winset(src, "outputwindow.legacy_output_selector", "left=output_legacy")
|
||||
if(!tgui_panel || !istype(tgui_panel))
|
||||
log_tgui(src, "tgui_panel datum is missing",
|
||||
context = "verb/fix_tgui_panel")
|
||||
tgui_panel = new(src)
|
||||
tgui_panel.initialize(force = TRUE)
|
||||
// Force show the panel to see if there are any errors
|
||||
winset(src, "legacy_output_selector", "left=output_browser")
|
||||
winset(src, "outputwindow.legacy_output_selector", "left=output_browser")
|
||||
|
||||
if(prefs?.read_preference(/datum/preference/toggle/browser_dev_tools))
|
||||
winset(src, null, "browser-options=[DEFAULT_CLIENT_BROWSER_OPTIONS],devtools")
|
||||
|
||||
Reference in New Issue
Block a user