158 lines
2.9 KiB
TypeScript
158 lines
2.9 KiB
TypeScript
import { Sticker, ThreadChannel, Message, User, Invite, GuildMember, GuildScheduledEvent, GuildEmoji, Channel } from 'discord.js';
|
|
|
|
export enum EventType {
|
|
ChannelCreate,
|
|
ChannelRename,
|
|
ChannelDelete,
|
|
|
|
EmojiCreate,
|
|
EmojiRename,
|
|
EmojiDelete,
|
|
|
|
EventCreate,
|
|
EventEdit,
|
|
EventDelete,
|
|
|
|
InviteCreate,
|
|
InviteUpdate,
|
|
InviteDelete,
|
|
|
|
MemberBan,
|
|
MemberUnban,
|
|
MemberKick,
|
|
MemberDisconnect,
|
|
MemberNickname,
|
|
MemberChangeRoles,
|
|
|
|
MessageDelete,
|
|
MessageEdit,
|
|
|
|
StickerCreate,
|
|
StickerRename,
|
|
StickerDelete,
|
|
|
|
ThreadCreate,
|
|
ThreadEdit,
|
|
ThreadDelete,
|
|
}
|
|
|
|
export type Event = {
|
|
type: EventType.ChannelCreate,
|
|
causer: User,
|
|
channel: Channel,
|
|
} | {
|
|
type: EventType.ChannelRename,
|
|
causer: User,
|
|
channel: Channel,
|
|
oldName: string, newName: string,
|
|
} | {
|
|
type: EventType.ChannelDelete,
|
|
causer: User,
|
|
channel: Channel,
|
|
} | {
|
|
type: EventType.EmojiCreate,
|
|
causer: User,
|
|
emoji: GuildEmoji,
|
|
} | {
|
|
type: EventType.EmojiRename,
|
|
causer: User,
|
|
emoji: GuildEmoji,
|
|
oldName: string, newName: string,
|
|
} | {
|
|
type: EventType.EmojiDelete,
|
|
causer: User,
|
|
emoji: GuildEmoji,
|
|
} | {
|
|
type: EventType.EventCreate,
|
|
causer: User,
|
|
event: GuildScheduledEvent,
|
|
} | {
|
|
type: EventType.EventEdit,
|
|
causer: User,
|
|
oldEvent: GuildScheduledEvent,
|
|
event: GuildScheduledEvent,
|
|
} | {
|
|
type: EventType.EventDelete,
|
|
causer: User,
|
|
event: GuildScheduledEvent,
|
|
} | {
|
|
type: EventType.InviteCreate,
|
|
causer: User,
|
|
invite: Invite,
|
|
} | {
|
|
type: EventType.InviteUpdate,
|
|
causer: User,
|
|
oldInvite: Invite,
|
|
invite: Invite,
|
|
} | {
|
|
type: EventType.InviteDelete,
|
|
causer: User,
|
|
invite: Invite,
|
|
} | {
|
|
type: EventType.MemberBan,
|
|
causer: User,
|
|
member: GuildMember,
|
|
reason: string,
|
|
} | {
|
|
type: EventType.MemberUnban,
|
|
causer: User,
|
|
member: GuildMember,
|
|
reason: string,
|
|
} | {
|
|
type: EventType.MemberKick,
|
|
causer: User,
|
|
member: GuildMember,
|
|
reason: string,
|
|
} | {
|
|
type: EventType.MemberDisconnect,
|
|
causer: User,
|
|
member: GuildMember,
|
|
} | {
|
|
type: EventType.MemberNickname,
|
|
causer: User,
|
|
member: GuildMember,
|
|
oldNickname: string, newNickname: string,
|
|
} | {
|
|
type: EventType.MemberChangeRoles,
|
|
causer: User,
|
|
member: GuildMember,
|
|
// TODO: huh
|
|
} | {
|
|
type: EventType.MessageDelete,
|
|
causer: User,
|
|
message: Message,
|
|
} | {
|
|
type: EventType.MessageEdit,
|
|
causer: User,
|
|
oldMessage: Message,
|
|
message: Message,
|
|
} | {
|
|
type: EventType.StickerCreate,
|
|
causer: User,
|
|
sticker: Sticker,
|
|
} | {
|
|
type: EventType.StickerRename,
|
|
causer: User,
|
|
oldName: string, newName: string,
|
|
} | {
|
|
type: EventType.StickerDelete,
|
|
causer: User,
|
|
sticker: Sticker,
|
|
} | {
|
|
type: EventType.ThreadCreate,
|
|
causer: User,
|
|
thread: ThreadChannel,
|
|
} | {
|
|
type: EventType.ThreadEdit,
|
|
causer: User,
|
|
oldThread: ThreadChannel,
|
|
thread: ThreadChannel,
|
|
} | {
|
|
type: EventType.ThreadDelete,
|
|
causer: User,
|
|
thread: ThreadChannel,
|
|
};
|
|
|
|
export async function triggerEvent(event: Event) {
|
|
|
|
} |