blob: 4bbaab74063095264bb7c70457d37002acb25540 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
import transparentPng from '../constants/transparentPng';
import fileExistsSync from '../utils/fileExistsSync';
/**
* Sets all the img tags to the right sources
* @param {*} chatmsg
*/
const setEmote = (AO_HOST, client, charactername, emotename, prefix, pair, side) => {
const pairID = pair ? 'pair' : 'char';
const characterFolder = `${AO_HOST}characters/`;
const acceptedPositions = ['def', 'pro', 'wit'];
const position = acceptedPositions.includes(side) ? `${side}_` : '';
const emoteSelector = document.getElementById(`client_${position}${pairID}_img`)
const extensionsMap = [
'.gif',
'.png',
'.apng',
'.webp'
];
for (const extension of extensionsMap) {
// Hides all sprites before creating a new sprite
if (client.lastChar !== client.chatmsg.name) {
emoteSelector.src = transparentPng;
}
let url;
if (extension === '.png') {
url = `${characterFolder}${encodeURI(charactername)}/${encodeURI(emotename)}${extension}`;
} else {
url = `${characterFolder}${encodeURI(charactername)}/${encodeURI(prefix)}${encodeURI(emotename)}${extension}`;
}
const exists = fileExistsSync(url);
if (exists) {
emoteSelector.src = url;
break;
}
}
};
export default setEmote;
|