I'm kind of new to bot coding so I would like to get some help on this,
So, I wanted my bot to remove all permissions of a member which intends to delete more than 1 channel in 2 minutes interval. I made something like this below;
client.on("channelDelete", async function(channel) {
const channelDeleteId = channel.id;
// finding all channel deletions in the log
channel.guild.fetchAuditLogs({
'type': 'CHANNEL_DELETE'
})
// finding the log entry for this specific channel
.then(logs => logs.entries.find(entry => entry.target.id === channelDeleteId))
.then(entry => {
// getting the author of the deletion
author = entry.executor;
if (author.id === "472911936951156740") return console.log("VoiceMaster Bot has deleted a channel."); // dont mind, it's ok
console.log(`channel ${channel.name} deleted by ${author}`);
let member = channel.guild.members.cache.find(m => m.id === author.id);
let deletedRecently = new Set;
if (deletedRecently.has(member)) {
member.roles.set([]);
//member.ban();
} else {
deletedRecently.add(member);
setTimeout(() => {
deletedRecently.delete(member);
}, 120000);
}
})
.catch(error => console.error(error));
});
When I test it, it sometimes loops 3-4 times and triggers the role removing row.
Problem solved, thx. It was all about my little mistake. Sry for bothering...