better thread caching
This commit is contained in:
parent
2ee2b46bbf
commit
17fab4658b
1 changed files with 16 additions and 9 deletions
25
src/index.js
25
src/index.js
|
@ -72,15 +72,6 @@ bot.on("messageCreate", async (msg) => {
|
|||
) {
|
||||
const newChannel = await bot.getDMChannel(msg.author.id);
|
||||
if (msg.channel.id == newChannel.id) msg.channel = newChannel;
|
||||
} else if (
|
||||
msg.guildID &&
|
||||
!bot.guilds.get(msg.guildID).channels.has(msg.channel.id)
|
||||
) {
|
||||
const threads = await bot.requestHandler
|
||||
.request("GET", `/guilds/${msg.guildID}/threads/active`, true)
|
||||
.then((x) => x.threads);
|
||||
const thread = threads.filter((x) => x.id == msg.channel.id)[0];
|
||||
if (thread) msg.channel = new Eris.TextChannel(thread, bot);
|
||||
}
|
||||
|
||||
// if we still have no dm channel (threads cause this too)
|
||||
|
@ -108,6 +99,22 @@ bot.on("ready", async () => {
|
|||
}
|
||||
});
|
||||
|
||||
bot.once("ready", async function () {
|
||||
const guilds = bot.guilds.values();
|
||||
async function cacheThreads(guild) {
|
||||
if (!guild) return;
|
||||
const threads = await bot.requestHandler
|
||||
.request("GET", `/guilds/${guild.id}/threads/active`, true)
|
||||
.then((x) => x.threads);
|
||||
for (const thread of threads) {
|
||||
guild.channels.set(thread.id, new Eris.TextChannel(thread, bot));
|
||||
}
|
||||
const next = guilds.next().value;
|
||||
if (next) await cacheThreads(next);
|
||||
}
|
||||
await cacheThreads(guilds.next().value);
|
||||
});
|
||||
|
||||
bot.on("error", (err) => {
|
||||
logger.error("hf:main", "Catching error: " + err);
|
||||
});
|
||||
|
|
Loading…
Reference in a new issue