mirror of
https://github.com/ZeppelinBot/Zeppelin.git
synced 2025-05-10 20:35:02 +00:00
Update to Knub30.0.0-beta.37 and Eris 0.15, first pass
This commit is contained in:
parent
84da543205
commit
f6be4f4af6
133 changed files with 6507 additions and 380 deletions
|
@ -61,7 +61,8 @@ const EXPIRED_MUTE_CHECK_INTERVAL = 60 * 1000;
|
|||
let FIRST_CHECK_TIME = Date.now();
|
||||
const FIRST_CHECK_INCREMENT = 5 * 1000;
|
||||
|
||||
export const MutesPlugin = zeppelinGuildPlugin<MutesPluginType>()("mutes", {
|
||||
export const MutesPlugin = zeppelinGuildPlugin<MutesPluginType>()({
|
||||
name: "mutes",
|
||||
showInDocs: true,
|
||||
info: {
|
||||
prettyName: "Mutes",
|
||||
|
@ -104,7 +105,7 @@ export const MutesPlugin = zeppelinGuildPlugin<MutesPluginType>()("mutes", {
|
|||
},
|
||||
},
|
||||
|
||||
onLoad(pluginData) {
|
||||
afterLoad(pluginData) {
|
||||
pluginData.state.mutes = GuildMutes.getGuildInstance(pluginData.guild.id);
|
||||
pluginData.state.cases = GuildCases.getGuildInstance(pluginData.guild.id);
|
||||
pluginData.state.serverLogs = new GuildLogs(pluginData.guild.id);
|
||||
|
@ -125,7 +126,7 @@ export const MutesPlugin = zeppelinGuildPlugin<MutesPluginType>()("mutes", {
|
|||
}, firstCheckTime - Date.now());
|
||||
},
|
||||
|
||||
onUnload(pluginData) {
|
||||
beforeUnload(pluginData) {
|
||||
clearInterval(pluginData.state.muteClearIntervalId);
|
||||
pluginData.state.events.removeAllListeners();
|
||||
},
|
||||
|
|
|
@ -3,9 +3,12 @@ import { mutesEvt } from "../types";
|
|||
/**
|
||||
* Clear active mute from the member if the member is banned
|
||||
*/
|
||||
export const ClearActiveMuteOnMemberBanEvt = mutesEvt("guildBanAdd", async ({ pluginData, args: { user } }) => {
|
||||
const mute = await pluginData.state.mutes.findExistingMuteForUserId(user.id);
|
||||
if (mute) {
|
||||
pluginData.state.mutes.clear(user.id);
|
||||
}
|
||||
export const ClearActiveMuteOnMemberBanEvt = mutesEvt({
|
||||
event: "guildBanAdd",
|
||||
async listener({ pluginData, args: { user } }) {
|
||||
const mute = await pluginData.state.mutes.findExistingMuteForUserId(user.id);
|
||||
if (mute) {
|
||||
pluginData.state.mutes.clear(user.id);
|
||||
}
|
||||
},
|
||||
});
|
||||
|
|
|
@ -4,9 +4,9 @@ import { memberHasMutedRole } from "../functions/memberHasMutedRole";
|
|||
/**
|
||||
* Clear active mute if the mute role is removed manually
|
||||
*/
|
||||
export const ClearActiveMuteOnRoleRemovalEvt = mutesEvt(
|
||||
"guildMemberUpdate",
|
||||
async ({ pluginData, args: { member } }) => {
|
||||
export const ClearActiveMuteOnRoleRemovalEvt = mutesEvt({
|
||||
event: "guildMemberUpdate",
|
||||
async listener({ pluginData, args: { member } }) {
|
||||
const muteRole = pluginData.config.get().mute_role;
|
||||
if (!muteRole) return;
|
||||
|
||||
|
@ -17,4 +17,4 @@ export const ClearActiveMuteOnRoleRemovalEvt = mutesEvt(
|
|||
await pluginData.state.mutes.clear(muteRole);
|
||||
}
|
||||
},
|
||||
);
|
||||
});
|
||||
|
|
|
@ -6,19 +6,22 @@ import { memberRolesLock } from "../../../utils/lockNameHelpers";
|
|||
/**
|
||||
* Reapply active mutes on join
|
||||
*/
|
||||
export const ReapplyActiveMuteOnJoinEvt = mutesEvt("guildMemberAdd", async ({ pluginData, args: { member } }) => {
|
||||
const mute = await pluginData.state.mutes.findExistingMuteForUserId(member.id);
|
||||
if (mute) {
|
||||
const muteRole = pluginData.config.get().mute_role;
|
||||
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.addRole(muteRole);
|
||||
memberRoleLock.unlock();
|
||||
if (muteRole) {
|
||||
const memberRoleLock = await pluginData.locks.acquire(memberRolesLock(member));
|
||||
await member.addRole(muteRole);
|
||||
memberRoleLock.unlock();
|
||||
}
|
||||
|
||||
pluginData.state.serverLogs.log(LogType.MEMBER_MUTE_REJOIN, {
|
||||
member: stripObjectToScalars(member, ["user", "roles"]),
|
||||
});
|
||||
}
|
||||
|
||||
pluginData.state.serverLogs.log(LogType.MEMBER_MUTE_REJOIN, {
|
||||
member: stripObjectToScalars(member, ["user", "roles"]),
|
||||
});
|
||||
}
|
||||
},
|
||||
});
|
||||
|
|
|
@ -52,7 +52,7 @@ export async function muteUser(
|
|||
}
|
||||
|
||||
const member = await resolveMember(pluginData.client, pluginData.guild, user.id, true); // Grab the fresh member so we don't have stale role info
|
||||
const config = pluginData.config.getMatchingConfig({ member, userId });
|
||||
const config = await pluginData.config.getMatchingConfig({ member, userId });
|
||||
|
||||
let rolesToRestore: string[] = [];
|
||||
if (member) {
|
||||
|
|
|
@ -3,7 +3,7 @@ import { tNullable, UserNotificationMethod, UserNotificationResult } from "../..
|
|||
import { Mute } from "../../data/entities/Mute";
|
||||
import { Member } from "eris";
|
||||
import { Case } from "../../data/entities/Case";
|
||||
import { BasePluginType, guildCommand, guildEventListener } from "knub";
|
||||
import { BasePluginType, typedGuildCommand, typedGuildEventListener } from "knub";
|
||||
import { GuildLogs } from "../../data/GuildLogs";
|
||||
import { GuildCases } from "../../data/GuildCases";
|
||||
import { GuildArchives } from "../../data/GuildArchives";
|
||||
|
@ -78,5 +78,5 @@ export interface MuteOptions {
|
|||
isAutomodAction?: boolean;
|
||||
}
|
||||
|
||||
export const mutesCmd = guildCommand<MutesPluginType>();
|
||||
export const mutesEvt = guildEventListener<MutesPluginType>();
|
||||
export const mutesCmd = typedGuildCommand<MutesPluginType>();
|
||||
export const mutesEvt = typedGuildEventListener<MutesPluginType>();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue