feat(build): add leave logs

This commit is contained in:
smyalygames
2023-03-01 15:15:06 +00:00
parent 158c76c17e
commit 005c190582
4 changed files with 52 additions and 11 deletions

View File

@@ -20,10 +20,12 @@
import { Listener } from '@sapphire/framework';
import type { GuildMember } from 'discord.js';
import IDs from '#utils/ids';
import { updateUser } from '#utils/database/dbExistingUser';
import { checkBan } from '#utils/database/ban';
import { checkTempBan } from '#utils/database/tempBan';
import { checkActive } from '#utils/database/restriction';
import {
addEmptyUser,
logLeaving,
updateUser,
userExists,
} from '#utils/database/dbExistingUser';
export class DbLeaveServerListener extends Listener {
public constructor(context: Listener.Context, options: Listener.Options) {
@@ -37,14 +39,12 @@ export class DbLeaveServerListener extends Listener {
if (!member.roles.cache.hasAny(
IDs.roles.vegan.vegan,
IDs.roles.nonvegan.nonvegan,
)
|| await checkBan(member.id)
|| await checkTempBan(member.id)
|| await checkActive(member.id)
) {
return;
)) {
await updateUser(member);
} else if (await userExists(member.id)) {
await addEmptyUser(member.id);
}
await updateUser(member);
await logLeaving(member);
}
}

View File

@@ -181,3 +181,23 @@ export async function fetchRoles(userId: Snowflake) {
return roles;
}
export async function logLeaving(member: GuildMember) {
const roles: Snowflake[] = [];
member.roles.cache.forEach((role) => {
if (role.id !== member.guild.id) {
roles.push(role.id);
}
});
await container.database.leaveLog.create({
data: {
user: {
connect: {
id: member.id,
},
},
roles,
},
});
}