audit logs wip

This commit is contained in:
Jill 2024-03-18 00:22:03 +03:00
parent ee9736bcc2
commit 8de11bdac2
Signed by: oat
GPG Key ID: 33489AA58A955108
4 changed files with 181 additions and 1 deletions

View File

@ -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');
};

0
src/commands/auditlog.ts Normal file
View File

View File

@ -19,7 +19,8 @@ const bot = new Client({
GatewayIntentBits.GuildMessageReactions,
GatewayIntentBits.GuildMembers,
GatewayIntentBits.MessageContent,
GatewayIntentBits.DirectMessages
GatewayIntentBits.DirectMessages,
GatewayIntentBits.GuildModeration,
],
});

158
src/lib/events.ts Normal file
View File

@ -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) {
}