fetch all message from announcement channel on start
This is necessary because message sent before the bot has started up are not cached and reactions will not be registered. If the messages are cached manually the reactions will be received and can be processed using the regular event handling
This commit is contained in:
parent
f6476c609b
commit
331ff89060
@ -23,7 +23,7 @@ export class ExtendedClient extends Client {
|
|||||||
private pollCloseBackgroundTasks: Collection<string, ScheduledTask> = new Collection()
|
private pollCloseBackgroundTasks: Collection<string, ScheduledTask> = new Collection()
|
||||||
public constructor(jf: JellyfinHandler) {
|
public constructor(jf: JellyfinHandler) {
|
||||||
const intents: IntentsBitField = new IntentsBitField()
|
const intents: IntentsBitField = new IntentsBitField()
|
||||||
intents.add(IntentsBitField.Flags.GuildMembers, IntentsBitField.Flags.MessageContent, IntentsBitField.Flags.Guilds, IntentsBitField.Flags.DirectMessages, IntentsBitField.Flags.GuildScheduledEvents, IntentsBitField.Flags.GuildVoiceStates)
|
intents.add(IntentsBitField.Flags.GuildMembers, IntentsBitField.Flags.MessageContent, IntentsBitField.Flags.Guilds, IntentsBitField.Flags.DirectMessages, IntentsBitField.Flags.GuildScheduledEvents, IntentsBitField.Flags.GuildMessageReactions, IntentsBitField.Flags.GuildVoiceStates)
|
||||||
const options: ClientOptions = { intents }
|
const options: ClientOptions = { intents }
|
||||||
super(options)
|
super(options)
|
||||||
this.jellyfin = jf
|
this.jellyfin = jf
|
||||||
@ -75,6 +75,7 @@ export class ExtendedClient extends Client {
|
|||||||
this.registerCommands(slashCommands, guilds)
|
this.registerCommands(slashCommands, guilds)
|
||||||
this.cacheUsers(guilds)
|
this.cacheUsers(guilds)
|
||||||
await this.cacheAnnouncementServer(guilds)
|
await this.cacheAnnouncementServer(guilds)
|
||||||
|
this.fetchAnnouncementChannelMessage(this.announcementChannels)
|
||||||
this.startAnnouncementRoleBackgroundTask(guilds)
|
this.startAnnouncementRoleBackgroundTask(guilds)
|
||||||
this.startPollCloseBackgroundTasks()
|
this.startPollCloseBackgroundTasks()
|
||||||
})
|
})
|
||||||
@ -82,6 +83,11 @@ export class ExtendedClient extends Client {
|
|||||||
logger.info(`Error refreshing slash commands: ${error}`)
|
logger.info(`Error refreshing slash commands: ${error}`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
private async fetchAnnouncementChannelMessage(channels: Collection<string, TextChannel>): Promise<void> {
|
||||||
|
channels.each(async ch => {
|
||||||
|
ch.messages.fetch()
|
||||||
|
})
|
||||||
|
}
|
||||||
private async cacheAnnouncementServer(guilds: Collection<Snowflake, Guild>) {
|
private async cacheAnnouncementServer(guilds: Collection<Snowflake, Guild>) {
|
||||||
for (const guild of guilds.values()) {
|
for (const guild of guilds.values()) {
|
||||||
const channels: TextChannel[] = <TextChannel[]>(await guild.channels.fetch())
|
const channels: TextChannel[] = <TextChannel[]>(await guild.channels.fetch())
|
||||||
|
Loading…
Reference in New Issue
Block a user