From e50cb10c5b7d0621410d22ecc923eb6397e5c9b6 Mon Sep 17 00:00:00 2001 From: Sammy Date: Mon, 12 Jun 2023 22:21:10 +0200 Subject: [PATCH] implement slash command for announcement --- server/commands/announce.ts | 38 +++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 server/commands/announce.ts diff --git a/server/commands/announce.ts b/server/commands/announce.ts new file mode 100644 index 0000000..d825164 --- /dev/null +++ b/server/commands/announce.ts @@ -0,0 +1,38 @@ +import { Guild, GuildScheduledEvent, GuildScheduledEventEditOptions, GuildScheduledEventSetStatusArg, GuildScheduledEventStatus, Message, MessageCreateOptions, MessageEditOptions, TextChannel, messageLink } from 'discord.js' +import { v4 as uuid } from 'uuid' +import { config } from '../configuration' +import { Emotes } from '../events/guildScheduledEventCreate' +import { logger } from '../logger' +import { Command } from '../structures/command' +import { RunOptions } from '../types/commandTypes' +import { client } from '../..' + +export default new Command({ + name: 'announce', + description: 'Neues announcement im announcement Channel an alle senden.', + options: [], + run: async (interaction: RunOptions) => { + const command = interaction.interaction + const requestId = uuid() + const guildId = command.guildId! + logger.info("Got command for announcing!", { guildId, requestId }) + const announcementChannel: TextChannel = client.getAnnouncementChannelForGuild(guildId) + + const body = `Hey! @everyone! Hier ist der Watchparty Bot vom Hartzarett. + +Wir machen in Zukunft regelmäßig Watchparties! Falls du mitmachen möchtest, reagiere einfach auf diesen Post mit 🎫, dann bekommst du automatisch eine Rolle zugewiesen und wirst benachrichtigt sobald es in der Zukunft weitere Watchparties und Filme zum abstimmen gibt. + +Für eine Erklärung wie das alles funktioniert mach einfach /mitgucken für eine lange Erklärung am Stück oder /guides wenn du auswählen möchtest wozu du Infos bekommst.` + + const options: MessageCreateOptions = { + allowedMentions: { parse: ['everyone'] }, + content: body + } + + const message: Message = await announcementChannel.send(options) + + message.react("🎫") + + command.followUp("Ist rausgeschickt!") + } +}) \ No newline at end of file