aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstonedDiscord <Tukz@gmx.de>2026-02-11 12:26:34 +0100
committerGitHub <noreply@github.com>2026-02-11 12:26:34 +0100
commit726d89ce8605d27be1c14bba59f81cfd6254ccb3 (patch)
treea17e8ac49a7700feee1df21742045d2c93bd9447
parent7391a61b881af5a515abfbf5905f65e749814fa4 (diff)
parent287f2a178b7b64bfa41b7c55b97e17d90c9f0c78 (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.ts24
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(),