mirror of
https://github.com/ZeppelinBot/Zeppelin.git
synced 2025-03-16 14:11:50 +00:00
Tweaks to member role restoration on unmute
This commit is contained in:
parent
be0f9182a0
commit
2451719155
2 changed files with 11 additions and 10 deletions
|
@ -18,17 +18,17 @@ export async function clearExpiredMutes(pluginData: GuildPluginData<MutesPluginT
|
||||||
|
|
||||||
const muteRole = pluginData.config.get().mute_role;
|
const muteRole = pluginData.config.get().mute_role;
|
||||||
if (muteRole) {
|
if (muteRole) {
|
||||||
await member.roles.remove(muteRole as Snowflake);
|
await member.roles.remove(muteRole);
|
||||||
}
|
}
|
||||||
if (mute.roles_to_restore) {
|
if (mute.roles_to_restore) {
|
||||||
const guildRoles = pluginData.guild.roles.cache;
|
const guildRoles = pluginData.guild.roles.cache;
|
||||||
let newRoles = [...member.roles.cache.keys()];
|
const newRoles = [...member.roles.cache.keys()].filter(roleId => roleId !== muteRole);
|
||||||
newRoles =
|
|
||||||
muteRole && newRoles.includes(muteRole) ? newRoles.splice(newRoles.indexOf(muteRole), 1) : newRoles;
|
|
||||||
for (const toRestore of mute.roles_to_restore) {
|
for (const toRestore of mute.roles_to_restore) {
|
||||||
if (guildRoles.has(toRestore as Snowflake) && toRestore !== muteRole) newRoles.push(toRestore);
|
if (guildRoles.has(toRestore) && toRestore !== muteRole && !newRoles.includes(toRestore)) {
|
||||||
|
newRoles.push(toRestore);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
await member.roles.set(newRoles as Snowflake[]);
|
await member.roles.set(newRoles);
|
||||||
}
|
}
|
||||||
|
|
||||||
lock.unlock();
|
lock.unlock();
|
||||||
|
|
|
@ -43,12 +43,13 @@ export async function unmuteUser(
|
||||||
}
|
}
|
||||||
if (existingMute?.roles_to_restore) {
|
if (existingMute?.roles_to_restore) {
|
||||||
const guildRoles = pluginData.guild.roles.cache;
|
const guildRoles = pluginData.guild.roles.cache;
|
||||||
let newRoles = [...member.roles.cache.keys()];
|
const newRoles = [...member.roles.cache.keys()].filter(roleId => roleId !== muteRole);
|
||||||
newRoles = muteRole && newRoles.includes(muteRole) ? newRoles.splice(newRoles.indexOf(muteRole), 1) : newRoles;
|
|
||||||
for (const toRestore of existingMute.roles_to_restore) {
|
for (const toRestore of existingMute.roles_to_restore) {
|
||||||
if (guildRoles.has(toRestore as Snowflake) && toRestore !== muteRole) newRoles.push(toRestore);
|
if (guildRoles.has(toRestore) && toRestore !== muteRole && !newRoles.includes(toRestore)) {
|
||||||
|
newRoles.push(toRestore);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
await member.roles.set(newRoles as Snowflake[]);
|
await member.roles.set(newRoles);
|
||||||
}
|
}
|
||||||
|
|
||||||
lock.unlock();
|
lock.unlock();
|
||||||
|
|
Loading…
Add table
Reference in a new issue