client.on("guildMemberRemove", async member => {
const db = await dbPromise;
const guildInvites = await member.guild.invites.fetch().catch(() => null);
if (!guildInvites) return;
const cachedInvites = invitesCache.get(member.guild.id);
const inviteUsed = guildInvites.find(inv => cachedInvites && cachedInvites.get(inv.code) < inv.uses);
if (!inviteUsed || inviteUsed.code === member.guild.vanityURLCode) return;
const inviterId = inviteUsed.inviter.id;
console.log(`User left after invited from ${inviteUsed.inviter.username} using link ${inviteUsed.code}`);
await db.run("UPDATE invites SET invites = invites - 1 WHERE userId = ?", inviterId);
});
client.on("guildMemberRemove", async member => {
const db = await dbPromise;
const guildInvites = await member.guild.invites.fetch().catch(() => null);
if (!guildInvites) return;
const cachedInvites = invitesCache.get(member.guild.id);
const inviteUsed = guildInvites.find(inv => cachedInvites && cachedInvites.get(inv.code) < inv.uses);
if (!inviteUsed || inviteUsed.code === member.guild.vanityURLCode) return;
const inviterId = inviteUsed.inviter.id;
console.log(`User left after invited from ${inviteUsed.inviter.username} using link ${inviteUsed.code}`);
await db.run("UPDATE invites SET invites = invites - 1 WHERE userId = ?", inviterId);
});