aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Skoland <davidskoland@gmail.com>2026-02-07 21:10:00 +0100
committerDavid Skoland <davidskoland@gmail.com>2026-02-07 21:10:00 +0100
commit5eeb7ac9d90137c3b5ce9578c47bcc2ccff21c7e (patch)
tree50ba0df4c3187cba8742762b9a94ff40395bc382
parent0c76b200cc68c59772df930acd34a58bd6272c7f (diff)
Use charicon_extensions from extensions.json for char icon URLs
Instead of hardcoding .png, read the preferred extension from client.charicon_extensions[0] (populated via extensions.json), falling back to .png if unavailable. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
-rw-r--r--webAO/client/handleCharacterInfo.ts6
-rw-r--r--webAO/packets/handlers/handlePU.ts3
2 files changed, 6 insertions, 3 deletions
diff --git a/webAO/client/handleCharacterInfo.ts b/webAO/client/handleCharacterInfo.ts
index 0235f3b..28992e9 100644
--- a/webAO/client/handleCharacterInfo.ts
+++ b/webAO/client/handleCharacterInfo.ts
@@ -14,9 +14,10 @@ export const setupCharacterBasic = (chargs: string[], charid: number) => {
if (chargs[0]) {
img.alt = chargs[0];
img.title = chargs[0];
+ const iconExt = client.charicon_extensions[0] || ".png";
img.src = `${AO_HOST}characters/${encodeURI(
chargs[0].toLowerCase(),
- )}/char_icon.png`;
+ )}/char_icon${iconExt}`;
const mute_select = <HTMLSelectElement>(
document.getElementById("mute_select")
@@ -116,9 +117,10 @@ export const handleCharacterInfo = async (chargs: string[], charid: number) => {
if (chargs[0]) {
img.alt = chargs[0];
img.title = chargs[0];
+ const iconExt = client.charicon_extensions[0] || ".png";
img.src = `${AO_HOST}characters/${encodeURI(
chargs[0].toLowerCase(),
- )}/char_icon.png`;
+ )}/char_icon${iconExt}`;
// Reset inifile so ensureCharIni will re-fetch
if (client.chars[charid]) {
diff --git a/webAO/packets/handlers/handlePU.ts b/webAO/packets/handlers/handlePU.ts
index 18e508e..0f51029 100644
--- a/webAO/packets/handlers/handlePU.ts
+++ b/webAO/packets/handlers/handlePU.ts
@@ -21,7 +21,8 @@ export const handlePU = (args: string[]) => {
const playerImg = <HTMLImageElement>playerRow.childNodes[0].firstChild;
playerImg.alt = data;
playerImg.title = data;
- playerImg.src = `${AO_HOST}characters/${encodeURI(data.toLowerCase())}/char_icon.png`;
+ const iconExt = client.charicon_extensions[0] || ".png";
+ playerImg.src = `${AO_HOST}characters/${encodeURI(data.toLowerCase())}/char_icon${iconExt}`;
const charName = <HTMLElement>playerRow.childNodes[1];
charName.innerText = `[${args[1]}] ${data}`;
break;