diff options
| author | stonedDiscord <Tukz@gmx.de> | 2026-02-11 12:26:34 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-02-11 12:26:34 +0100 |
| commit | 726d89ce8605d27be1c14bba59f81cfd6254ccb3 (patch) | |
| tree | a17e8ac49a7700feee1df21742045d2c93bd9447 | |
| parent | 7391a61b881af5a515abfbf5905f65e749814fa4 (diff) | |
| parent | 287f2a178b7b64bfa41b7c55b97e17d90c9f0c78 (diff) | |
Merge pull request #294 from OmniTroid/better-emoteloading
Speed up emote icon loading by deducing extension from first button
| -rw-r--r-- | webAO/packets/handlers/handlePV.ts | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/webAO/packets/handlers/handlePV.ts b/webAO/packets/handlers/handlePV.ts index 4ac747f..a39a4dd 100644 --- a/webAO/packets/handlers/handlePV.ts +++ b/webAO/packets/handlers/handlePV.ts @@ -43,6 +43,16 @@ export const handlePV = async (args: string[]) => { alt="unavailable" class="emote_button">No emotes available</span>`; } else { + // Probe extensions once using button1_off, then reuse for all emotes + const charPath = `${AO_HOST}characters/${encodeURI(me.name.toLowerCase())}/emotions/`; + let emoteExtension = client.emotions_extensions[0]; + for (const extension of client.emotions_extensions) { + if (await fileExists(`${charPath}button1_off${extension}`)) { + emoteExtension = extension; + break; + } + } + for (let i = 1; i <= ini.emotions.number; i++) { try { const emoteinfo = ini.emotions[i].split("#"); @@ -56,20 +66,8 @@ export const handlePV = async (args: string[]) => { esfx = "0"; esfxd = 0; } - // Make sure the asset server is case insensitive, or that everything on it is lowercase - let url; - for (const extension of client.emotions_extensions) { - url = `${AO_HOST}characters/${encodeURI( - me.name.toLowerCase(), - )}/emotions/button${i}_off${extension}`; - - const exists = await fileExists(url); - - if (exists) { - break; - } - } + const url = `${charPath}button${i}_off${emoteExtension}`; emotes[i] = { desc: emoteinfo[0].toLowerCase(), |
