TravBot-v3/src/modules/emoteRegistry.ts

34 lines
1.2 KiB
TypeScript
Raw Normal View History

2021-03-31 02:56:25 +00:00
import {client} from "../index";
import FileManager from "./storage";
import {EmoteRegistryDump} from "../structures";
2021-03-31 02:56:25 +00:00
2022-02-17 10:07:58 +00:00
async function updateGlobalEmoteRegistry(): Promise<void> {
2021-03-31 02:56:25 +00:00
const data: EmoteRegistryDump = {version: 1, list: []};
for (const guild of client.guilds.cache.values()) {
2022-02-17 10:07:58 +00:00
let g = await guild.fetch();
for (const emote of g.emojis.cache.values()) {
data.list.push({
ref: emote.name,
id: emote.id,
name: emote.name,
requires_colons: emote.requiresColons ?? false,
animated: emote.animated ?? false,
url: emote.url,
guild_id: emote.guild.name,
guild_name: emote.guild.name
});
}
2021-03-31 02:56:25 +00:00
}
2021-05-06 13:30:51 +00:00
FileManager.open("data/public"); // generate folder if it doesn't exist
2022-02-17 10:07:58 +00:00
FileManager.write("public/emote-registry", data, false);
2021-03-31 02:56:25 +00:00
}
2021-05-08 13:32:45 +00:00
client.on("emojiCreate", updateGlobalEmoteRegistry);
client.on("emojiDelete", updateGlobalEmoteRegistry);
client.on("emojiUpdate", updateGlobalEmoteRegistry);
client.on("guildCreate", updateGlobalEmoteRegistry);
client.on("guildDelete", updateGlobalEmoteRegistry);
client.on("ready", updateGlobalEmoteRegistry);