3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-05-10 12:25:02 +00:00

Typed log functions + more

This commit is contained in:
Dragory 2021-08-18 01:51:42 +03:00
parent d2ac700143
commit bed6589d48
No known key found for this signature in database
GPG key ID: 5F387BA66DF8AAC1
166 changed files with 4021 additions and 869 deletions

View file

@ -70,9 +70,8 @@ export const MutesPlugin = zeppelinGuildPlugin<MutesPluginType>()({
},
configSchema: ConfigSchema,
defaultOptions,
dependencies: [CasesPlugin, LogsPlugin],
defaultOptions,
// prettier-ignore
commands: [

View file

@ -1,8 +1,9 @@
import { Snowflake } from "discord.js";
import { memberToConfigAccessibleMember } from "../../../utils/configAccessibleObjects";
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
@ -20,8 +21,8 @@ export const ReapplyActiveMuteOnJoinEvt = mutesEvt({
memberRoleLock.unlock();
}
pluginData.state.serverLogs.log(LogType.MEMBER_MUTE_REJOIN, {
member: memberToConfigAccessibleMember(member),
pluginData.getPlugin(LogsPlugin).logMemberMuteRejoin({
member,
});
}
},

View file

@ -1,10 +1,11 @@
import { Snowflake } from "discord.js";
import { GuildPluginData } from "knub";
import { memberToConfigAccessibleMember } from "../../../utils/configAccessibleObjects";
import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
import { LogType } from "../../../data/LogType";
import { resolveMember, UnknownUser } from "../../../utils";
import { resolveMember, UnknownUser, verboseUserMention } from "../../../utils";
import { memberRolesLock } from "../../../utils/lockNameHelpers";
import { MutesPluginType } from "../types";
import { LogsPlugin } from "../../Logs/LogsPlugin";
export async function clearExpiredMutes(pluginData: GuildPluginData<MutesPluginType>) {
const expiredMutes = await pluginData.state.mutes.getExpiredMutes();
@ -32,19 +33,16 @@ export async function clearExpiredMutes(pluginData: GuildPluginData<MutesPluginT
lock.unlock();
} catch {
pluginData.state.serverLogs.log(LogType.BOT_ALERT, {
body: `Failed to remove mute role from {userMention(member)}`,
member: memberToConfigAccessibleMember(member),
pluginData.getPlugin(LogsPlugin).logBotAlert({
body: `Failed to remove mute role from ${verboseUserMention(member.user)}`,
});
}
}
await pluginData.state.mutes.clear(mute.user_id);
pluginData.state.serverLogs.log(LogType.MEMBER_MUTE_EXPIRED, {
member: member
? memberToConfigAccessibleMember(member)
: { id: mute.user_id, user: new UnknownUser({ id: mute.user_id }) },
pluginData.getPlugin(LogsPlugin).logMemberMuteExpired({
member: member ? memberToTemplateSafeMember(member) : new UnknownUser({ id: mute.user_id }),
});
pluginData.state.events.emit("unmute", mute.user_id);

View file

@ -1,7 +1,7 @@
import { Snowflake, TextChannel, User } from "discord.js";
import humanizeDuration from "humanize-duration";
import { GuildPluginData } from "knub";
import { userToConfigAccessibleUser } from "../../../utils/configAccessibleObjects";
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { CaseTypes } from "../../../data/CaseTypes";
import { Case } from "../../../data/entities/Case";
import { LogType } from "../../../data/LogType";
@ -93,7 +93,7 @@ export async function muteUser(
const actualMuteRole = pluginData.guild.roles.cache.get(muteRole as Snowflake);
if (!actualMuteRole) {
lock.unlock();
logs.log(LogType.BOT_ALERT, {
logs.logBotAlert({
body: `Cannot mute users, specified mute role Id is invalid`,
});
throw new RecoverablePluginError(ERRORS.INVALID_MUTE_ROLE_ID);
@ -104,14 +104,14 @@ export async function muteUser(
// If we have roles and one of them is above the muted role, throw generic error
if (zepRoles.size >= 0 && zepRoles.some(zepRole => zepRole.position > actualMuteRole.position)) {
lock.unlock();
logs.log(LogType.BOT_ALERT, {
logs.logBotAlert({
body: `Cannot mute user ${member.id}: ${e}`,
});
throw e;
} else {
// Otherwise, throw error that mute role is above zeps roles
lock.unlock();
logs.log(LogType.BOT_ALERT, {
logs.logBotAlert({
body: `Cannot mute users, specified mute role is above Zeppelin in the role hierarchy`,
});
throw new RecoverablePluginError(ERRORS.MUTE_ROLE_ABOVE_ZEP);
@ -156,7 +156,7 @@ export async function muteUser(
reason: reason || "None",
time: timeUntilUnmute,
moderator: muteOptions.caseArgs?.modId
? userToConfigAccessibleUser(await resolveUser(pluginData.client, muteOptions.caseArgs.modId))
? userToTemplateSafeUser(await resolveUser(pluginData.client, muteOptions.caseArgs.modId))
: "",
}));
@ -224,19 +224,19 @@ export async function muteUser(
// Log the action
const mod = await resolveUser(pluginData.client, muteOptions.caseArgs?.modId);
if (muteTime) {
pluginData.state.serverLogs.log(LogType.MEMBER_TIMED_MUTE, {
mod: userToConfigAccessibleUser(mod),
user: userToConfigAccessibleUser(user),
pluginData.getPlugin(LogsPlugin).logMemberTimedMute({
mod,
user,
time: timeUntilUnmute,
caseNumber: theCase.case_number,
reason,
reason: reason ?? "",
});
} else {
pluginData.state.serverLogs.log(LogType.MEMBER_MUTE, {
mod: userToConfigAccessibleUser(mod),
user: userToConfigAccessibleUser(user),
pluginData.getPlugin(LogsPlugin).logMemberMute({
mod,
user,
caseNumber: theCase.case_number,
reason,
reason: reason ?? "",
});
}

View file

@ -1,7 +1,7 @@
import { Snowflake } from "discord.js";
import humanizeDuration from "humanize-duration";
import { GuildPluginData } from "knub";
import { userToConfigAccessibleUser } from "../../../utils/configAccessibleObjects";
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { CaseTypes } from "../../../data/CaseTypes";
import { LogType } from "../../../data/LogType";
import { resolveMember, resolveUser } from "../../../utils";
@ -10,6 +10,7 @@ import { CasesPlugin } from "../../Cases/CasesPlugin";
import { CaseArgs } from "../../Cases/types";
import { MutesPluginType, UnmuteResult } from "../types";
import { memberHasMutedRole } from "./memberHasMutedRole";
import { LogsPlugin } from "../../Logs/LogsPlugin";
export async function unmuteUser(
pluginData: GuildPluginData<MutesPluginType>,
@ -87,17 +88,17 @@ export async function unmuteUser(
// Log the action
const mod = await pluginData.client.users.fetch(modId as Snowflake);
if (unmuteTime) {
pluginData.state.serverLogs.log(LogType.MEMBER_TIMED_UNMUTE, {
mod: userToConfigAccessibleUser(mod),
user: userToConfigAccessibleUser(user),
pluginData.getPlugin(LogsPlugin).logMemberTimedUnmute({
mod,
user,
caseNumber: createdCase.case_number,
time: timeUntilUnmute,
reason: caseArgs.reason,
});
} else {
pluginData.state.serverLogs.log(LogType.MEMBER_UNMUTE, {
mod: userToConfigAccessibleUser(mod),
user: userToConfigAccessibleUser(user),
pluginData.getPlugin(LogsPlugin).logMemberUnmute({
mod,
user,
caseNumber: createdCase.case_number,
reason: caseArgs.reason,
});