mirror of
https://github.com/ZeppelinBot/Zeppelin.git
synced 2025-03-15 05:41:51 +00:00
Add missing role locks for unmutes
This commit is contained in:
parent
0a8239996a
commit
74cc58aeaa
2 changed files with 16 additions and 2 deletions
|
@ -3,6 +3,7 @@ import { MutesPluginType } from "../types";
|
|||
import { LogType } from "../../../data/LogType";
|
||||
import { resolveMember, stripObjectToScalars, UnknownUser } from "../../../utils";
|
||||
import { MemberOptions } from "eris";
|
||||
import { memberRolesLock } from "../../../utils/lockNameHelpers";
|
||||
|
||||
export async function clearExpiredMutes(pluginData: GuildPluginData<MutesPluginType>) {
|
||||
const expiredMutes = await pluginData.state.mutes.getExpiredMutes();
|
||||
|
@ -11,9 +12,12 @@ export async function clearExpiredMutes(pluginData: GuildPluginData<MutesPluginT
|
|||
|
||||
if (member) {
|
||||
try {
|
||||
const lock = await pluginData.locks.acquire(memberRolesLock(member));
|
||||
|
||||
const muteRole = pluginData.config.get().mute_role;
|
||||
if (muteRole) {
|
||||
await member.removeRole(muteRole);
|
||||
member.roles = member.roles.filter(r => r !== muteRole);
|
||||
}
|
||||
if (mute.roles_to_restore) {
|
||||
const memberOptions: MemberOptions = {};
|
||||
|
@ -21,8 +25,11 @@ export async function clearExpiredMutes(pluginData: GuildPluginData<MutesPluginT
|
|||
memberOptions.roles = Array.from(
|
||||
new Set([...mute.roles_to_restore, ...member.roles.filter(x => x !== muteRole && guildRoles.has(x))]),
|
||||
);
|
||||
member.edit(memberOptions);
|
||||
await member.edit(memberOptions);
|
||||
member.roles = memberOptions.roles;
|
||||
}
|
||||
|
||||
lock.unlock();
|
||||
} catch (e) {
|
||||
pluginData.state.serverLogs.log(LogType.BOT_ALERT, {
|
||||
body: `Failed to remove mute role from {userMention(member)}`,
|
||||
|
|
|
@ -8,6 +8,7 @@ import { CasesPlugin } from "../../Cases/CasesPlugin";
|
|||
import { CaseTypes } from "../../../data/CaseTypes";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { MemberOptions } from "eris";
|
||||
import { memberRolesLock } from "../../../utils/lockNameHelpers";
|
||||
|
||||
export async function unmuteUser(
|
||||
pluginData: GuildPluginData<MutesPluginType>,
|
||||
|
@ -32,9 +33,12 @@ export async function unmuteUser(
|
|||
} else {
|
||||
// Unmute immediately
|
||||
if (member) {
|
||||
const lock = await pluginData.locks.acquire(memberRolesLock(member));
|
||||
|
||||
const muteRole = pluginData.config.get().mute_role;
|
||||
if (muteRole && member.roles.includes(muteRole)) {
|
||||
await member.removeRole(muteRole);
|
||||
member.roles = member.roles.filter(r => r !== muteRole);
|
||||
}
|
||||
if (existingMute?.roles_to_restore) {
|
||||
const memberOptions: MemberOptions = {};
|
||||
|
@ -42,8 +46,11 @@ export async function unmuteUser(
|
|||
memberOptions.roles = Array.from(
|
||||
new Set([...existingMute.roles_to_restore, ...member.roles.filter(x => x !== muteRole && guildRoles.has(x))]),
|
||||
);
|
||||
member.edit(memberOptions);
|
||||
await member.edit(memberOptions);
|
||||
member.roles = memberOptions.roles;
|
||||
}
|
||||
|
||||
lock.unlock();
|
||||
} else {
|
||||
// tslint:disable-next-line:no-console
|
||||
console.warn(
|
||||
|
|
Loading…
Add table
Reference in a new issue