21 lines
865 B
TypeScript
21 lines
865 B
TypeScript
import { Message } from "discord.js";
|
|
|
|
|
|
// branded types to differentiate objects of identical Type but different contents
|
|
export type VoteEndMessage = Message<true> & { readonly __brand: 'voteend' }
|
|
export type AnnouncementMessage = Message<true> & { readonly __brand: 'announcement' }
|
|
export type VoteMessage = Message<true> & { readonly __brand: 'vote' }
|
|
|
|
export type KnownDiscordMessage = VoteMessage | VoteEndMessage | AnnouncementMessage
|
|
|
|
export function isVoteMessage(message: Message): message is VoteMessage {
|
|
return message.cleanContent.includes('[Abstimmung]')
|
|
}
|
|
export function isInitialAnnouncement(message: Message): message is AnnouncementMessage {
|
|
return message.cleanContent.includes("[initial]")
|
|
}
|
|
export function isVoteEndedMessage(message: Message): message is VoteEndMessage {
|
|
return message.cleanContent.includes("[Abstimmung beendet]")
|
|
}
|
|
|