mirror of
https://github.com/JonnyBro/JaBa.git
synced 2024-11-22 21:24:59 +05:00
64 lines
2 KiB
JavaScript
64 lines
2 KiB
JavaScript
|
const Discord = require("discord.js");
|
||
|
|
||
|
/* THIS CHECK IF THERE IS A USER TO UNMUTE */
|
||
|
module.exports = {
|
||
|
/**
|
||
|
* Starts checking...
|
||
|
* @param {object} client The Discord Client instance
|
||
|
*/
|
||
|
async init(client) {
|
||
|
client.membersData
|
||
|
.find({ "mute.muted": true })
|
||
|
.then((members) => {
|
||
|
members.forEach((member) => {
|
||
|
client.databaseCache.mutedUsers.set(`${member.id}${member.guildID}`, member);
|
||
|
});
|
||
|
});
|
||
|
setInterval(async () => {
|
||
|
client.databaseCache.mutedUsers.array().filter((m) => m.mute.endDate <= Date.now()).forEach(async (memberData) => {
|
||
|
const guild = client.guilds.cache.get(memberData.guildID);
|
||
|
if (!guild) return;
|
||
|
const member = guild.members.cache.get(memberData.id) || await guild.members.fetch(memberData.id).catch(() => {
|
||
|
memberData.mute = {
|
||
|
muted: false,
|
||
|
endDate: null,
|
||
|
case: null
|
||
|
};
|
||
|
memberData.save();
|
||
|
client.logger.log("[unmute] " + memberData.id + " cannot be found.");
|
||
|
|
||
|
return null;
|
||
|
});
|
||
|
const guildData = await client.findOrCreateGuild({
|
||
|
id: guild.id
|
||
|
});
|
||
|
guild.data = guildData;
|
||
|
if (member) {
|
||
|
guild.channels.cache.forEach((channel) => {
|
||
|
const permOverwrites = channel.permissionOverwrites.get(member.id);
|
||
|
if (permOverwrites) permOverwrites.delete();
|
||
|
});
|
||
|
};
|
||
|
const user = member ? member.user : await client.users.fetch(memberData.id);
|
||
|
const embed = new Discord.MessageEmbed()
|
||
|
.setDescription(guild.translate("moderation/unmute:SUCCESS_CASE", {
|
||
|
user: user.toString(),
|
||
|
usertag: user.tag,
|
||
|
count: memberData.mute.case
|
||
|
}))
|
||
|
.setColor("#f44271")
|
||
|
.setFooter(guild.client.config.embed.footer);
|
||
|
const channel = guild.channels.cache.get(guildData.plugins.modlogs);
|
||
|
if (channel) channel.send(embed);
|
||
|
|
||
|
memberData.mute = {
|
||
|
muted: false,
|
||
|
endDate: null,
|
||
|
case: null
|
||
|
};
|
||
|
client.databaseCache.mutedUsers.delete(`${memberData.id}${memberData.guildID}`);
|
||
|
await memberData.save();
|
||
|
});
|
||
|
}, 1000);
|
||
|
}
|
||
|
};
|