Port Mutes plugin
This commit is contained in:
parent
479cb56928
commit
ccff7384ba
11 changed files with 797 additions and 0 deletions
30
backend/src/plugins/Mutes/functions/clearExpiredMutes.ts
Normal file
30
backend/src/plugins/Mutes/functions/clearExpiredMutes.ts
Normal file
|
@ -0,0 +1,30 @@
|
|||
import { PluginData } from "knub";
|
||||
import { MutesPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { resolveMember, stripObjectToScalars, UnknownUser } from "../../../utils";
|
||||
|
||||
export async function clearExpiredMutes(pluginData: PluginData<MutesPluginType>) {
|
||||
const expiredMutes = await pluginData.state.mutes.getExpiredMutes();
|
||||
for (const mute of expiredMutes) {
|
||||
const member = await resolveMember(pluginData.client, pluginData.guild, mute.user_id);
|
||||
|
||||
if (member) {
|
||||
try {
|
||||
await member.removeRole(pluginData.config.get().mute_role);
|
||||
} catch (e) {
|
||||
pluginData.state.serverLogs.log(LogType.BOT_ALERT, {
|
||||
body: `Failed to remove mute role from {userMention(member)}`,
|
||||
member: stripObjectToScalars(member),
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
await pluginData.state.mutes.clear(mute.user_id);
|
||||
|
||||
pluginData.state.serverLogs.log(LogType.MEMBER_MUTE_EXPIRED, {
|
||||
member: member
|
||||
? stripObjectToScalars(member, ["user", "roles"])
|
||||
: { id: mute.user_id, user: new UnknownUser({ id: mute.user_id }) },
|
||||
});
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue