From 198a25d145eab98f5d9af679c3148310ed200609 Mon Sep 17 00:00:00 2001 From: Sammy Date: Tue, 13 Jun 2023 23:15:03 +0200 Subject: [PATCH] ping watch role when voting starts and closes --- server/commands/closepoll.ts | 5 +++-- server/events/guildScheduledEventCreate.ts | 12 +++++++++--- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/server/commands/closepoll.ts b/server/commands/closepoll.ts index 1290882..6997726 100644 --- a/server/commands/closepoll.ts +++ b/server/commands/closepoll.ts @@ -61,15 +61,16 @@ export async function closePoll(guild: Guild, requestId: string) { } async function updateMessage(movie: string, message: Message, guildId: string, requestId: string) { + const role = (await message.guild!.roles.fetch()).find(role => role.id === config.bot.announcement_role) const body = `[Abstimmung beendet] Gewonnen hat: ${movie}` - .concat(message.cleanContent.substring("[Abstimmung]".length)) + .concat(message.content.substring("[Abstimmung]".length)) const options: MessageEditOptions = { content: body, + allowedMentions: { parse: ["roles"] } } logger.info("Updating message.", { guildId, requestId }) message.edit(options) - } async function updateEvent(votes: Vote[], guild: Guild, guildId: string, requestId: string) { diff --git a/server/events/guildScheduledEventCreate.ts b/server/events/guildScheduledEventCreate.ts index bdee85b..3ac411d 100644 --- a/server/events/guildScheduledEventCreate.ts +++ b/server/events/guildScheduledEventCreate.ts @@ -1,4 +1,4 @@ -import { GuildScheduledEvent, Message, TextChannel } from "discord.js"; +import { GuildScheduledEvent, Message, MessageCreateOptions, TextChannel } from "discord.js"; import { ScheduledTask, schedule } from "node-cron"; import { v4 as uuid } from "uuid"; import { client, jellyfinHandler } from "../.."; @@ -30,14 +30,20 @@ export async function execute(event: GuildScheduledEvent) { const announcementChannel: TextChannel = client.getAnnouncementChannelForGuild(event.guildId) logger.debug(`Found channel ${JSON.stringify(announcementChannel, null, 2)}`, { guildId: event.guildId, requestId }) + const role = (await event.guild!.roles.fetch()).find(role => role.id === config.bot.announcement_role) - let message = "[Abstimmung]\nEs gibt eine neue Abstimmung für die nächste Watchparty! Stimme hierunter für den nächsten Film ab!\n" + let message = `[Abstimmung]\n<@&${role ? role.id : "hab die Rolle nicht gefunden"}> Es gibt eine neue Abstimmung für die nächste Watchparty! Stimme hierunter für den nächsten Film ab!\n` for (let i = 0; i < movies.length; i++) { message = message.concat(Emotes[i]).concat(": ").concat(movies[i].name!).concat("\n") } - const sentMessage: Message = await (await announcementChannel.fetch()).send(message) + const options: MessageCreateOptions = { + allowedMentions: { parse: ["roles"]}, + content: message + } + + const sentMessage: Message = await (await announcementChannel.fetch()).send(options) for (let i = 0; i < movies.length; i++) { sentMessage.react(Emotes[i])