const {
AuditLogEvent
} = require('discord.js')
const {users} = require('../../models/User')
const db = require('../../db');
const { eq } = require('drizzle-orm');
async function handleMemberUpdate(oldMember, newMember, client) {
if (!oldMember.communicationDisabledUntil && newMember.communicationDisabledUntil) {
console.log(`${newMember.user.tag} was timed out until ${newMember.communicationDisabledUntil.toISOString()}`);
try {
const auditLogs = await newMember.guild.fetchAuditLogs({
type: AuditLogEvent.MemberUpdate,
limit: 1,
});
const timeoutLog = auditLogs.entries.first();
const moderator = timeoutLog ? timeoutLog.executor : null;
console.log(`Timeout moderator: ${moderator ? moderator.tag : 'AutoMod or Unknown'}`);
} catch (error) {
console.error('Error handling member timeout:', error);
}
}
// Check if the timeout has been removed
else if (oldMember.communicationDisabledUntil && !newMember.communicationDisabledUntil) {
const existingUser = await db.select({
userId: users.userId,
leetcode: users.leetcode,
time: users.time,
}).from(users).where(eq(users.userId, oldMember.user.id));
console.log(existingUser)
if(existingUser.length !== 0){
await db.delete(users).where(eq(users.userId, newMember.user.id));
console.log(`${newMember.user.tag} removed from db`)
}
console.log('user aint in db')
}
}
module.exports = {handleMemberUpdate}
const {
AuditLogEvent
} = require('discord.js')
const {users} = require('../../models/User')
const db = require('../../db');
const { eq } = require('drizzle-orm');
async function handleMemberUpdate(oldMember, newMember, client) {
if (!oldMember.communicationDisabledUntil && newMember.communicationDisabledUntil) {
console.log(`${newMember.user.tag} was timed out until ${newMember.communicationDisabledUntil.toISOString()}`);
try {
const auditLogs = await newMember.guild.fetchAuditLogs({
type: AuditLogEvent.MemberUpdate,
limit: 1,
});
const timeoutLog = auditLogs.entries.first();
const moderator = timeoutLog ? timeoutLog.executor : null;
console.log(`Timeout moderator: ${moderator ? moderator.tag : 'AutoMod or Unknown'}`);
} catch (error) {
console.error('Error handling member timeout:', error);
}
}
// Check if the timeout has been removed
else if (oldMember.communicationDisabledUntil && !newMember.communicationDisabledUntil) {
const existingUser = await db.select({
userId: users.userId,
leetcode: users.leetcode,
time: users.time,
}).from(users).where(eq(users.userId, oldMember.user.id));
console.log(existingUser)
if(existingUser.length !== 0){
await db.delete(users).where(eq(users.userId, newMember.user.id));
console.log(`${newMember.user.tag} removed from db`)
}
console.log('user aint in db')
}
}
module.exports = {handleMemberUpdate}