From f26d35429e66ddcdd02c10f57b315b0f02b4add2 Mon Sep 17 00:00:00 2001 From: David Skoland Date: Sat, 7 Feb 2026 22:21:42 +0100 Subject: Fix playerlist icons using wrong asset URL PR/PU packets arrive before the ASS packet, so playerlist icon srcs were set with the default AO_HOST. Now handleASS re-applies the correct asset URL to existing playerlist images after AO_HOST updates. Co-Authored-By: Claude Opus 4.6 --- webAO/packets/handlers/handleASS.ts | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'webAO/packets/handlers') diff --git a/webAO/packets/handlers/handleASS.ts b/webAO/packets/handlers/handleASS.ts index a46d68e..1ecfd04 100644 --- a/webAO/packets/handlers/handleASS.ts +++ b/webAO/packets/handlers/handleASS.ts @@ -1,4 +1,5 @@ -import { setAOhost } from "../../client/aoHost"; +import { setAOhost, AO_HOST } from "../../client/aoHost"; +import { client } from "../../client"; /** * new asset url!! @@ -6,4 +7,20 @@ import { setAOhost } from "../../client/aoHost"; */ export const handleASS = (args: string[]) => { if (args[1] !== "None") setAOhost(args[1]); + + // Re-apply playerlist icon srcs that were set before AO_HOST was known + const iconExt = client.charicon_extensions[0] || ".png"; + for (const [playerID, player] of client.players) { + if (player.charId >= 0) { + const char = client.chars[player.charId]; + if (char) { + const img = document.querySelector( + `#client_playerlist_entry${playerID} img` + ); + if (img) { + img.src = `${AO_HOST}characters/${encodeURI(char.name.toLowerCase())}/char_icon${iconExt}`; + } + } + } + } }; -- cgit