mirror of
https://github.com/veganhacktivists/arabot.git
synced 2025-12-22 04:21:28 +01:00
feat(build): add leave logs
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user