const colors = require('colors'); module.exports = async (ban, db, client) => { // Fetch perms this guild has const guild = await client.guilds.fetch(ban.guild.id); db.all("SELECT list_id, auto_remove FROM perms WHERE entity_id = ? AND entity_type = 'guild'", [ban.guild.id], async (err, lists) => { ; for (const entry of lists) { const list = await db.get("SELECT * FROM lists WHERE id = ?", [entry.list_id]); if (!list) { console.log(`${colors.red('[ERROR]')} List not found for id ${entry.list_id}. How'd we get here?`); continue; } if (entry.auto_remove) { try { const existingBan = await db.get("SELECT * FROM bans WHERE list_id = ? AND user_id = ?", [list.id, ban.user.id]); if (!existingBan) { // Not banned on this list continue; } await db.run("DELETE FROM bans WHERE list_id = ? AND user_id = ?", [list.id, ban.user.id]); } catch (e) { console.log(`[ERROR] Could not auto-remove ban for user ${ban.user.id} in guild ${guild.id}:`, e); } } } }); };