3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-05-11 04:45:02 +00:00
zeppelin/backend/src/plugins/Mutes/events/ReapplyActiveMuteOnJoinEvt.ts
2021-08-18 01:51:42 +03:00

29 lines
967 B
TypeScript

import { Snowflake } from "discord.js";
import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
import { LogType } from "../../../data/LogType";
import { memberRolesLock } from "../../../utils/lockNameHelpers";
import { mutesEvt } from "../types";
import { LogsPlugin } from "../../Logs/LogsPlugin";
/**
* Reapply active mutes on join
*/
export const ReapplyActiveMuteOnJoinEvt = mutesEvt({
event: "guildMemberAdd",
async listener({ pluginData, args: { member } }) {
const mute = await pluginData.state.mutes.findExistingMuteForUserId(member.id);
if (mute) {
const muteRole = pluginData.config.get().mute_role;
if (muteRole) {
const memberRoleLock = await pluginData.locks.acquire(memberRolesLock(member));
await member.roles.add(muteRole as Snowflake);
memberRoleLock.unlock();
}
pluginData.getPlugin(LogsPlugin).logMemberMuteRejoin({
member,
});
}
},
});