audit logs wip
This commit is contained in:
parent
ee9736bcc2
commit
8de11bdac2
|
@ -0,0 +1,21 @@
|
||||||
|
/**
|
||||||
|
* @param { import("knex").Knex } knex
|
||||||
|
* @returns { Promise<void> }
|
||||||
|
*/
|
||||||
|
exports.up = function(knex) {
|
||||||
|
return knex.schema
|
||||||
|
.createTable('auditLogs', table => {
|
||||||
|
table.string('guild');
|
||||||
|
table.string('channel');
|
||||||
|
table.string('eventTypes');
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param { import("knex").Knex } knex
|
||||||
|
* @returns { Promise<void> }
|
||||||
|
*/
|
||||||
|
exports.down = function(knex) {
|
||||||
|
return knex.schema
|
||||||
|
.dropTable('auditLogs');
|
||||||
|
};
|
|
@ -19,7 +19,8 @@ const bot = new Client({
|
||||||
GatewayIntentBits.GuildMessageReactions,
|
GatewayIntentBits.GuildMessageReactions,
|
||||||
GatewayIntentBits.GuildMembers,
|
GatewayIntentBits.GuildMembers,
|
||||||
GatewayIntentBits.MessageContent,
|
GatewayIntentBits.MessageContent,
|
||||||
GatewayIntentBits.DirectMessages
|
GatewayIntentBits.DirectMessages,
|
||||||
|
GatewayIntentBits.GuildModeration,
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,158 @@
|
||||||
|
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) {
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue