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

Update djs & knub (#395)

* update pkgs

Signed-off-by: GitHub <noreply@github.com>

* new knub typings

Signed-off-by: GitHub <noreply@github.com>

* more pkg updates

Signed-off-by: GitHub <noreply@github.com>

* more fixes

Signed-off-by: GitHub <noreply@github.com>

* channel typings

Signed-off-by: GitHub <noreply@github.com>

* more message utils typings fixes

Signed-off-by: GitHub <noreply@github.com>

* migrate permissions

Signed-off-by: GitHub <noreply@github.com>

* fix: InternalPoster webhookables

Signed-off-by: GitHub <noreply@github.com>

* djs typings: Attachment & Util

Signed-off-by: GitHub <noreply@github.com>

* more typings

Signed-off-by: GitHub <noreply@github.com>

* fix: rename permissionNames

Signed-off-by: GitHub <noreply@github.com>

* more fixes

Signed-off-by: GitHub <noreply@github.com>

* half the number of errors

* knub commands => messageCommands

Signed-off-by: GitHub <noreply@github.com>

* configPreprocessor => configParser

Signed-off-by: GitHub <noreply@github.com>

* fix channel.messages

Signed-off-by: GitHub <noreply@github.com>

* revert automod any typing

Signed-off-by: GitHub <noreply@github.com>

* more configParser typings

Signed-off-by: GitHub <noreply@github.com>

* revert

Signed-off-by: GitHub <noreply@github.com>

* remove knub type params

Signed-off-by: GitHub <noreply@github.com>

* fix more MessageEmbed / MessageOptions

Signed-off-by: GitHub <noreply@github.com>

* dumb commit for @almeidx to see why this is stupid

Signed-off-by: GitHub <noreply@github.com>

* temp disable custom_events

Signed-off-by: GitHub <noreply@github.com>

* more minor typings fixes - 23 err left

Signed-off-by: GitHub <noreply@github.com>

* update djs dep

* +debug build method (revert this)

Signed-off-by: GitHub <noreply@github.com>

* Revert "+debug build method (revert this)"

This reverts commit a80af1e729.

* Redo +debug build (Revert this)

Signed-off-by: GitHub <noreply@github.com>

* uniform before/after Load shorthands

Signed-off-by: GitHub <noreply@github.com>

* remove unused imports & add prettier plugin

Signed-off-by: GitHub <noreply@github.com>

* env fixes for web platform hosting

Signed-off-by: GitHub <noreply@github.com>

* feat: knub v32-next; related fixes

* fix: allow legacy keys in change_perms action

* fix: request Message Content intent

* fix: use Knub's config validation logic in API

* fix(dashboard): fix error when there are no message and/or slash commands in a plugin

* fix(automod): start_thread action thread options

* fix(CustomEvents): message command types

* chore: remove unneeded type annotation

* feat: add forum channel icon; use thread icon for news threads

* chore: make tslint happy

* chore: fix formatting

---------

Signed-off-by: GitHub <noreply@github.com>
Co-authored-by: almeidx <almeidx@pm.me>
Co-authored-by: Dragory <2606411+Dragory@users.noreply.github.com>
This commit is contained in:
Tiago R 2023-04-01 12:58:17 +01:00 committed by GitHub
parent 293115af22
commit 06877e90cc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
476 changed files with 2965 additions and 3251 deletions

View file

@ -6,18 +6,12 @@ import { GuildLogs } from "../../data/GuildLogs";
import { GuildSavedMessages } from "../../data/GuildSavedMessages";
import { LogType } from "../../data/LogType";
import { logger } from "../../logger";
import { makeIoTsConfigParser, mapToPublicFn } from "../../pluginUtils";
import { discardRegExpRunner, getRegExpRunner } from "../../regExpRunners";
import { createTypedTemplateSafeValueContainer, TypedTemplateSafeValueContainer } from "../../templateFormatter";
import { TimeAndDatePlugin } from "../TimeAndDate/TimeAndDatePlugin";
import { zeppelinGuildPlugin } from "../ZeppelinPluginBlueprint";
import { LogsChannelCreateEvt, LogsChannelDeleteEvt, LogsChannelUpdateEvt } from "./events/LogsChannelModifyEvts";
import { LogsGuildMemberAddEvt } from "./events/LogsGuildMemberAddEvt";
import { LogsGuildMemberRemoveEvt } from "./events/LogsGuildMemberRemoveEvt";
import { LogsRoleCreateEvt, LogsRoleDeleteEvt, LogsRoleUpdateEvt } from "./events/LogsRoleModifyEvts";
import {
LogsStageInstanceCreateEvt,
LogsStageInstanceDeleteEvt,
LogsStageInstanceUpdateEvt,
} from "./events/LogsStageInstanceModifyEvts";
import {
LogsEmojiCreateEvt,
LogsEmojiDeleteEvt,
@ -26,6 +20,14 @@ import {
LogsStickerDeleteEvt,
LogsStickerUpdateEvt,
} from "./events/LogsEmojiAndStickerModifyEvts";
import { LogsGuildMemberAddEvt } from "./events/LogsGuildMemberAddEvt";
import { LogsGuildMemberRemoveEvt } from "./events/LogsGuildMemberRemoveEvt";
import { LogsRoleCreateEvt, LogsRoleDeleteEvt, LogsRoleUpdateEvt } from "./events/LogsRoleModifyEvts";
import {
LogsStageInstanceCreateEvt,
LogsStageInstanceDeleteEvt,
LogsStageInstanceUpdateEvt,
} from "./events/LogsStageInstanceModifyEvts";
import { LogsThreadCreateEvt, LogsThreadDeleteEvt, LogsThreadUpdateEvt } from "./events/LogsThreadModifyEvts";
import { LogsGuildMemberUpdateEvt } from "./events/LogsUserUpdateEvts";
import { LogsVoiceStateUpdateEvt } from "./events/LogsVoiceChannelEvts";
@ -35,14 +37,9 @@ import { log } from "./util/log";
import { onMessageDelete } from "./util/onMessageDelete";
import { onMessageDeleteBulk } from "./util/onMessageDeleteBulk";
import { onMessageUpdate } from "./util/onMessageUpdate";
import { Util } from "discord.js";
import {
createTypedTemplateSafeValueContainer,
TemplateSafeValueContainer,
TypedTemplateSafeValueContainer,
} from "../../templateFormatter";
import { mapToPublicFn } from "../../pluginUtils";
import { escapeCodeBlock } from "discord.js";
import { InternalPosterPlugin } from "../InternalPoster/InternalPosterPlugin";
import { logAutomodAction } from "./logFunctions/logAutomodAction";
import { logBotAlert } from "./logFunctions/logBotAlert";
import { logCaseCreate } from "./logFunctions/logCaseCreate";
@ -53,6 +50,7 @@ import { logChannelCreate } from "./logFunctions/logChannelCreate";
import { logChannelDelete } from "./logFunctions/logChannelDelete";
import { logChannelUpdate } from "./logFunctions/logChannelUpdate";
import { logClean } from "./logFunctions/logClean";
import { logDmFailed } from "./logFunctions/logDmFailed";
import { logEmojiCreate } from "./logFunctions/logEmojiCreate";
import { logEmojiDelete } from "./logFunctions/logEmojiDelete";
import { logEmojiUpdate } from "./logFunctions/logEmojiUpdate";
@ -76,6 +74,7 @@ import { logMemberRoleChanges } from "./logFunctions/logMemberRoleChanges";
import { logMemberRoleRemove } from "./logFunctions/logMemberRoleRemove";
import { logMemberTimedBan } from "./logFunctions/logMemberTimedBan";
import { logMemberTimedMute } from "./logFunctions/logMemberTimedMute";
import { logMemberTimedUnban } from "./logFunctions/logMemberTimedUnban";
import { logMemberTimedUnmute } from "./logFunctions/logMemberTimedUnmute";
import { logMemberUnban } from "./logFunctions/logMemberUnban";
import { logMemberUnmute } from "./logFunctions/logMemberUnmute";
@ -110,9 +109,11 @@ import { logVoiceChannelForceMove } from "./logFunctions/logVoiceChannelForceMov
import { logVoiceChannelJoin } from "./logFunctions/logVoiceChannelJoin";
import { logVoiceChannelLeave } from "./logFunctions/logVoiceChannelLeave";
import { logVoiceChannelMove } from "./logFunctions/logVoiceChannelMove";
import { logMemberTimedUnban } from "./logFunctions/logMemberTimedUnban";
import { logDmFailed } from "./logFunctions/logDmFailed";
import { InternalPosterPlugin } from "../InternalPoster/InternalPosterPlugin";
// The `any` cast here is to prevent TypeScript from locking up from the circular dependency
function getCasesPlugin(): Promise<any> {
return import("../Cases/CasesPlugin.js") as Promise<any>;
}
const defaultOptions: PluginOptions<LogsPluginType> = {
config: {
@ -142,15 +143,11 @@ export const LogsPlugin = zeppelinGuildPlugin<LogsPluginType>()({
showInDocs: true,
info: {
prettyName: "Logs",
configSchema: ConfigSchema,
},
dependencies: async () => [
TimeAndDatePlugin,
InternalPosterPlugin,
// The `as any` cast here is to prevent TypeScript from locking up from the circular dependency
((await import("../Cases/CasesPlugin")) as any).CasesPlugin,
],
configSchema: ConfigSchema,
dependencies: async () => [TimeAndDatePlugin, InternalPosterPlugin, (await getCasesPlugin()).CasesPlugin],
configParser: makeIoTsConfigParser(ConfigSchema),
defaultOptions,
events: [
@ -275,7 +272,7 @@ export const LogsPlugin = zeppelinGuildPlugin<LogsPluginType>()({
},
afterLoad(pluginData) {
const { state, guild } = pluginData;
const { state } = pluginData;
state.logListener = ({ type, data }) => log(pluginData, type, data);
state.guildLogs.on("log", state.logListener);
@ -300,7 +297,7 @@ export const LogsPlugin = zeppelinGuildPlugin<LogsPluginType>()({
The following regex has taken longer than ${timeoutMs}ms for ${failedTimes} times and has been temporarily disabled:
`.trim() +
"\n```" +
Util.escapeCodeBlock(regexSource) +
escapeCodeBlock(regexSource) +
"```",
}),
);
@ -309,23 +306,25 @@ export const LogsPlugin = zeppelinGuildPlugin<LogsPluginType>()({
},
beforeUnload(pluginData) {
if (pluginData.state.logListener) {
pluginData.state.guildLogs.removeListener("log", pluginData.state.logListener);
const { state, guild } = pluginData;
if (state.logListener) {
state.guildLogs.removeListener("log", state.logListener);
}
if (pluginData.state.onMessageDeleteFn) {
pluginData.state.savedMessages.events.off("delete", pluginData.state.onMessageDeleteFn);
if (state.onMessageDeleteFn) {
state.savedMessages.events.off("delete", state.onMessageDeleteFn);
}
if (pluginData.state.onMessageDeleteBulkFn) {
pluginData.state.savedMessages.events.off("deleteBulk", pluginData.state.onMessageDeleteBulkFn);
if (state.onMessageDeleteBulkFn) {
state.savedMessages.events.off("deleteBulk", state.onMessageDeleteBulkFn);
}
if (pluginData.state.onMessageUpdateFn) {
pluginData.state.savedMessages.events.off("update", pluginData.state.onMessageUpdateFn);
if (state.onMessageUpdateFn) {
state.savedMessages.events.off("update", state.onMessageUpdateFn);
}
if (pluginData.state.regexRunnerRepeatedTimeoutListener) {
pluginData.state.regexRunner.off("repeatedTimeout", pluginData.state.regexRunnerRepeatedTimeoutListener);
if (state.regexRunnerRepeatedTimeoutListener) {
state.regexRunner.off("repeatedTimeout", state.regexRunnerRepeatedTimeoutListener);
}
discardRegExpRunner(`guild-${pluginData.guild.id}`);
discardRegExpRunner(`guild-${guild.id}`);
},
});

View file

@ -1,12 +1,10 @@
import { LogType } from "../../../data/LogType";
import { TextChannel, VoiceChannel } from "discord.js";
import { differenceToString, getScalarDifference } from "../../../utils";
import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects";
import { logsEvt } from "../types";
import { filterObject } from "../../../utils/filterObject";
import { logChannelCreate } from "../logFunctions/logChannelCreate";
import { logChannelDelete } from "../logFunctions/logChannelDelete";
import { logChannelUpdate } from "../logFunctions/logChannelUpdate";
import { TextChannel, VoiceChannel } from "discord.js";
import { filterObject } from "../../../utils/filterObject";
import { logsEvt } from "../types";
export const LogsChannelCreateEvt = logsEvt({
event: "channelCreate",

View file

@ -1,13 +1,13 @@
import { GuildEmoji, Sticker } from "discord.js";
import { differenceToString, getScalarDifference } from "../../../utils";
import { logsEvt } from "../types";
import { filterObject } from "../../../utils/filterObject";
import { logEmojiCreate } from "../logFunctions/logEmojiCreate";
import { logEmojiDelete } from "../logFunctions/logEmojiDelete";
import { logEmojiUpdate } from "../logFunctions/logEmojiUpdate";
import { logStickerCreate } from "../logFunctions/logStickerCreate";
import { logStickerDelete } from "../logFunctions/logStickerDelete";
import { logStickerUpdate } from "../logFunctions/logStickerUpdate";
import { Emoji, GuildEmoji, Sticker, ThreadChannel } from "discord.js";
import { filterObject } from "../../../utils/filterObject";
import { logsEvt } from "../types";
export const LogsEmojiCreateEvt = logsEvt({
event: "emojiCreate",

View file

@ -1,11 +1,10 @@
import { GuildAuditLogs } from "discord.js";
import { AuditLogEvent } from "discord.js";
import { LogType } from "../../../data/LogType";
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { logsEvt } from "../types";
import { logMemberBan } from "../logFunctions/logMemberBan";
import { isLogIgnored } from "../util/isLogIgnored";
import { logMemberUnban } from "../logFunctions/logMemberUnban";
import { findMatchingAuditLogEntry } from "../../../utils/findMatchingAuditLogEntry";
import { logMemberBan } from "../logFunctions/logMemberBan";
import { logMemberUnban } from "../logFunctions/logMemberUnban";
import { logsEvt } from "../types";
import { isLogIgnored } from "../util/isLogIgnored";
export const LogsGuildBanAddEvt = logsEvt({
event: "guildBanAdd",
@ -18,7 +17,11 @@ export const LogsGuildBanAddEvt = logsEvt({
return;
}
const relevantAuditLogEntry = await findMatchingAuditLogEntry(pluginData.guild, "MEMBER_BAN_ADD", user.id);
const relevantAuditLogEntry = await findMatchingAuditLogEntry(
pluginData.guild,
AuditLogEvent.MemberBanAdd,
user.id,
);
const mod = relevantAuditLogEntry?.executor ?? null;
logMemberBan(meta.pluginData, {
mod,
@ -40,7 +43,11 @@ export const LogsGuildBanRemoveEvt = logsEvt({
return;
}
const relevantAuditLogEntry = await findMatchingAuditLogEntry(pluginData.guild, "MEMBER_BAN_REMOVE", user.id);
const relevantAuditLogEntry = await findMatchingAuditLogEntry(
pluginData.guild,
AuditLogEvent.MemberBanRemove,
user.id,
);
const mod = relevantAuditLogEntry?.executor ?? null;
logMemberUnban(pluginData, {

View file

@ -1,10 +1,5 @@
import humanizeDuration from "humanize-duration";
import moment from "moment-timezone";
import { LogType } from "../../../data/LogType";
import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
import { logsEvt } from "../types";
import { logMemberJoin } from "../logFunctions/logMemberJoin";
import { logMemberJoinWithPriorRecords } from "../logFunctions/logMemberJoinWithPriorRecords";
import { logsEvt } from "../types";
export const LogsGuildMemberAddEvt = logsEvt({
event: "guildMemberAdd",

View file

@ -1,7 +1,5 @@
import { LogType } from "../../../data/LogType";
import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
import { logsEvt } from "../types";
import { logMemberLeave } from "../logFunctions/logMemberLeave";
import { logsEvt } from "../types";
export const LogsGuildMemberRemoveEvt = logsEvt({
event: "guildMemberRemove",

View file

@ -1,12 +1,10 @@
import { LogType } from "../../../data/LogType";
import { Role } from "discord.js";
import { differenceToString, getScalarDifference } from "../../../utils";
import { roleToTemplateSafeRole } from "../../../utils/templateSafeObjects";
import { logsEvt } from "../types";
import { filterObject } from "../../../utils/filterObject";
import { logRoleCreate } from "../logFunctions/logRoleCreate";
import { logRoleDelete } from "../logFunctions/logRoleDelete";
import { logRoleUpdate } from "../logFunctions/logRoleUpdate";
import { GuildEmoji, Role } from "discord.js";
import { filterObject } from "../../../utils/filterObject";
import { logsEvt } from "../types";
export const LogsRoleCreateEvt = logsEvt({
event: "roleCreate",

View file

@ -1,12 +1,10 @@
import { LogType } from "../../../data/LogType";
import { StageChannel, StageInstance } from "discord.js";
import { differenceToString, getScalarDifference } from "../../../utils";
import { channelToTemplateSafeChannel, stageToTemplateSafeStage } from "../../../utils/templateSafeObjects";
import { logsEvt } from "../types";
import { filterObject } from "../../../utils/filterObject";
import { logStageInstanceCreate } from "../logFunctions/logStageInstanceCreate";
import { Role, StageChannel, StageInstance } from "discord.js";
import { logStageInstanceDelete } from "../logFunctions/logStageInstanceDelete";
import { logStageInstanceUpdate } from "../logFunctions/logStageInstanceUpdate";
import { filterObject } from "../../../utils/filterObject";
import { logsEvt } from "../types";
export const LogsStageInstanceCreateEvt = logsEvt({
event: "stageInstanceCreate",

View file

@ -1,12 +1,10 @@
import { LogType } from "../../../data/LogType";
import { ThreadChannel } from "discord.js";
import { differenceToString, getScalarDifference } from "../../../utils";
import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects";
import { logsEvt } from "../types";
import { filterObject } from "../../../utils/filterObject";
import { logThreadCreate } from "../logFunctions/logThreadCreate";
import { logThreadDelete } from "../logFunctions/logThreadDelete";
import { logThreadUpdate } from "../logFunctions/logThreadUpdate";
import { TextChannel, ThreadChannel, VoiceChannel } from "discord.js";
import { filterObject } from "../../../utils/filterObject";
import { logsEvt } from "../types";
export const LogsThreadCreateEvt = logsEvt({
event: "threadCreate",

View file

@ -1,13 +1,11 @@
import { GuildAuditLogs } from "discord.js";
import diff from "lodash.difference";
import isEqual from "lodash.isequal";
import { memberToTemplateSafeMember, userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogType } from "../../../data/LogType";
import { logsEvt } from "../types";
import { logMemberNickChange } from "../logFunctions/logMemberNickChange";
import { logMemberRoleChanges } from "../logFunctions/logMemberRoleChanges";
import { logMemberRoleAdd } from "../logFunctions/logMemberRoleAdd";
import { logMemberRoleChanges } from "../logFunctions/logMemberRoleChanges";
import { logMemberRoleRemove } from "../logFunctions/logMemberRoleRemove";
import { logsEvt } from "../types";
export const LogsGuildMemberUpdateEvt = logsEvt({
event: "guildMemberUpdate",

View file

@ -1,9 +1,7 @@
import { channelToTemplateSafeChannel, memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
import { LogType } from "../../../data/LogType";
import { logsEvt } from "../types";
import { logVoiceChannelLeave } from "../logFunctions/logVoiceChannelLeave";
import { logVoiceChannelJoin } from "../logFunctions/logVoiceChannelJoin";
import { logVoiceChannelLeave } from "../logFunctions/logVoiceChannelLeave";
import { logVoiceChannelMove } from "../logFunctions/logVoiceChannelMove";
import { logsEvt } from "../types";
export const LogsVoiceStateUpdateEvt = logsEvt({
event: "voiceStateUpdate",

View file

@ -1,10 +1,10 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { User } from "discord.js";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogAutomodActionData {
rule: string;

View file

@ -1,8 +1,8 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogBotAlertData {
body: string;

View file

@ -1,10 +1,10 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { User } from "discord.js";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogCaseCreateData {
mod: User;

View file

@ -1,11 +1,11 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { GuildMember } from "discord.js";
import { caseToTemplateSafeCase, memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
import { GuildPluginData } from "knub";
import { Case } from "../../../data/entities/Case";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { caseToTemplateSafeCase, memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogCaseDeleteData {
mod: GuildMember;

View file

@ -1,10 +1,10 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { User } from "discord.js";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogCaseUpdateData {
mod: User;

View file

@ -1,18 +1,18 @@
import { GuildTextBasedChannel, User } from "discord.js";
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { deactivateMentions, disableCodeBlocks } from "knub/helpers";
import { resolveChannelIds } from "src/utils/resolveChannelIds";
import { SavedMessage } from "../../../data/entities/SavedMessage";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { BaseGuildTextChannel, GuildTextBasedChannel, ThreadChannel, User } from "discord.js";
import { UnknownUser } from "../../../utils";
import {
channelToTemplateSafeChannel,
savedMessageToTemplateSafeSavedMessage,
userToTemplateSafeUser,
} from "../../../utils/templateSafeObjects";
import { SavedMessage } from "../../../data/entities/SavedMessage";
import { UnknownUser } from "../../../utils";
import { deactivateMentions, disableCodeBlocks } from "knub/dist/helpers";
import { resolveChannelIds } from "src/utils/resolveChannelIds";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogCensorData {
user: User | UnknownUser;

View file

@ -1,14 +1,14 @@
import { GuildBasedChannel } from "discord.js";
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { GuildChannel, NewsChannel } from "discord.js";
import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects";
import { resolveChannelIds } from "../../../utils/resolveChannelIds";
import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogChannelCreateData {
channel: GuildChannel | NewsChannel;
channel: GuildBasedChannel;
}
export function logChannelCreate(pluginData: GuildPluginData<LogsPluginType>, data: LogChannelCreateData) {

View file

@ -1,14 +1,14 @@
import { GuildBasedChannel } from "discord.js";
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { GuildChannel, NewsChannel } from "discord.js";
import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects";
import { resolveChannelIds } from "../../../utils/resolveChannelIds";
import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogChannelDeleteData {
channel: GuildChannel | NewsChannel;
channel: GuildBasedChannel;
}
export function logChannelDelete(pluginData: GuildPluginData<LogsPluginType>, data: LogChannelDeleteData) {

View file

@ -1,15 +1,15 @@
import { GuildBasedChannel } from "discord.js";
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { GuildChannel, NewsChannel } from "discord.js";
import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects";
import { resolveChannelIds } from "../../../utils/resolveChannelIds";
import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogChannelUpdateData {
oldChannel: GuildChannel | NewsChannel;
newChannel: GuildChannel | NewsChannel;
oldChannel: GuildBasedChannel;
newChannel: GuildBasedChannel;
differenceString: string;
}

View file

@ -1,15 +1,15 @@
import { GuildTextBasedChannel, User } from "discord.js";
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { BaseGuildTextChannel, User } from "discord.js";
import { channelToTemplateSafeChannel, userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { resolveChannelIds } from "../../../utils/resolveChannelIds";
import { channelToTemplateSafeChannel, userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogCleanData {
mod: User;
channel: BaseGuildTextChannel;
channel: GuildTextBasedChannel;
count: number;
archiveUrl: string;
}

View file

@ -1,11 +1,11 @@
import { User } from "discord.js";
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { UnknownUser } from "../../../utils";
import { User } from "discord.js";
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogDmFailedData {
source: string;

View file

@ -1,10 +1,10 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { Emoji } from "discord.js";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { emojiToTemplateSafeEmoji } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogEmojiCreateData {
emoji: Emoji;

View file

@ -1,10 +1,10 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { Emoji } from "discord.js";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { emojiToTemplateSafeEmoji } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogEmojiDeleteData {
emoji: Emoji;

View file

@ -1,10 +1,10 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { Emoji } from "discord.js";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { emojiToTemplateSafeEmoji } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogEmojiUpdateData {
oldEmoji: Emoji;

View file

@ -1,10 +1,10 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { User } from "discord.js";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMassBanData {
mod: User;

View file

@ -1,10 +1,10 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { User } from "discord.js";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMassMuteData {
mod: User;

View file

@ -1,10 +1,10 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { User } from "discord.js";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMassUnbanData {
mod: User;

View file

@ -1,11 +1,11 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { User } from "discord.js";
import { memberToTemplateSafeMember, userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { UnknownUser } from "../../../utils";
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberBanData {
mod: User | UnknownUser | null;

View file

@ -1,10 +1,10 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { GuildMember, Snowflake } from "discord.js";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberForcebanData {
mod: GuildMember;

View file

@ -1,12 +1,12 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { GuildMember } from "discord.js";
import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
import moment from "moment-timezone";
import humanizeDuration from "humanize-duration";
import { GuildPluginData } from "knub";
import moment from "moment-timezone";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberJoinData {
member: GuildMember;

View file

@ -1,10 +1,10 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { GuildMember } from "discord.js";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberJoinWithPriorRecordsData {
member: GuildMember;

View file

@ -1,11 +1,11 @@
import { User } from "discord.js";
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { GuildMember, User } from "discord.js";
import { memberToTemplateSafeMember, userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { UnknownUser } from "../../../utils";
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberKickData {
mod: User | UnknownUser | null;

View file

@ -1,10 +1,10 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { GuildMember, PartialGuildMember } from "discord.js";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberLeaveData {
member: GuildMember | PartialGuildMember;

View file

@ -1,11 +1,11 @@
import { User } from "discord.js";
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { GuildMember, User } from "discord.js";
import { memberToTemplateSafeMember, userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { UnknownUser } from "../../../utils";
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberMuteData {
mod: User | UnknownUser;

View file

@ -1,15 +1,15 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { GuildMember } from "discord.js";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { UnknownUser } from "../../../utils";
import {
memberToTemplateSafeMember,
TemplateSafeUnknownMember,
TemplateSafeUnknownUser,
} from "../../../utils/templateSafeObjects";
import { UnknownUser } from "../../../utils";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberMuteExpiredData {
member: GuildMember | UnknownUser;

View file

@ -1,10 +1,10 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { GuildMember } from "discord.js";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberMuteRejoinData {
member: GuildMember;

View file

@ -1,10 +1,10 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { GuildMember } from "discord.js";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberNickChangeData {
member: GuildMember;

View file

@ -1,11 +1,11 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { User } from "discord.js";
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { UnknownUser } from "../../../utils";
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberNoteData {
mod: User;

View file

@ -1,10 +1,10 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { GuildMember } from "discord.js";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberRestoreData {
member: GuildMember;

View file

@ -1,10 +1,10 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { GuildMember, Role, User } from "discord.js";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { memberToTemplateSafeMember, userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberRoleAddData {
mod: User | null;

View file

@ -1,11 +1,11 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { GuildMember, Role, User } from "discord.js";
import { memberToTemplateSafeMember, userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { UnknownUser } from "../../../utils";
import { memberToTemplateSafeMember, userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberRoleChangesData {
mod: User | UnknownUser | null;

View file

@ -1,10 +1,10 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { GuildMember, Role, User } from "discord.js";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { memberToTemplateSafeMember, userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberRoleRemoveData {
mod: User | null;

View file

@ -1,11 +1,11 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { User } from "discord.js";
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { UnknownUser } from "../../../utils";
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberTimedBanData {
mod: User | UnknownUser;

View file

@ -1,11 +1,11 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { User } from "discord.js";
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { UnknownUser } from "../../../utils";
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberTimedMuteData {
mod: User | UnknownUser;

View file

@ -1,11 +1,11 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { User } from "discord.js";
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { UnknownUser } from "../../../utils";
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberTimedUnbanData {
mod: User | UnknownUser;

View file

@ -1,11 +1,11 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { User } from "discord.js";
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { UnknownUser } from "../../../utils";
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberTimedUnmuteData {
mod: User;

View file

@ -1,11 +1,11 @@
import { Snowflake, User } from "discord.js";
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { GuildMember, Snowflake, User } from "discord.js";
import { memberToTemplateSafeMember, userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { UnknownUser } from "../../../utils";
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberUnbanData {
mod: User | UnknownUser | null;

View file

@ -1,11 +1,11 @@
import { User } from "discord.js";
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { GuildMember, User } from "discord.js";
import { memberToTemplateSafeMember, userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { UnknownUser } from "../../../utils";
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberUnmuteData {
mod: User;

View file

@ -1,10 +1,10 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { GuildMember } from "discord.js";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMemberWarnData {
mod: GuildMember;

View file

@ -1,19 +1,19 @@
import { GuildTextBasedChannel, User } from "discord.js";
import { GuildPluginData } from "knub";
import { FORMAT_NO_TIMESTAMP, LogsPluginType } from "../types";
import moment from "moment-timezone";
import { ISavedMessageAttachmentData, SavedMessage } from "../../../data/entities/SavedMessage";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { BaseGuildTextChannel, GuildTextBasedChannel, ThreadChannel, User } from "discord.js";
import { UnknownUser, useMediaUrls } from "../../../utils";
import { resolveChannelIds } from "../../../utils/resolveChannelIds";
import {
channelToTemplateSafeChannel,
savedMessageToTemplateSafeSavedMessage,
userToTemplateSafeUser,
} from "../../../utils/templateSafeObjects";
import moment from "moment-timezone";
import { ISavedMessageAttachmentData, SavedMessage } from "../../../data/entities/SavedMessage";
import { TimeAndDatePlugin } from "../../TimeAndDate/TimeAndDatePlugin";
import { UnknownUser, useMediaUrls } from "../../../utils";
import { resolveChannelIds } from "../../../utils/resolveChannelIds";
import { FORMAT_NO_TIMESTAMP, LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMessageDeleteData {
user: User | UnknownUser;

View file

@ -1,22 +1,22 @@
import { GuildBasedChannel, User } from "discord.js";
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { SavedMessage } from "../../../data/entities/SavedMessage";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { BaseGuildTextChannel, User } from "discord.js";
import { UnknownUser } from "../../../utils";
import { resolveChannelIds } from "../../../utils/resolveChannelIds";
import {
channelToTemplateSafeChannel,
savedMessageToTemplateSafeSavedMessage,
userToTemplateSafeUser,
} from "../../../utils/templateSafeObjects";
import { SavedMessage } from "../../../data/entities/SavedMessage";
import { UnknownUser } from "../../../utils";
import { resolveChannelIds } from "../../../utils/resolveChannelIds";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMessageDeleteAutoData {
message: SavedMessage;
user: User | UnknownUser;
channel: BaseGuildTextChannel;
channel: GuildBasedChannel;
messageDate: string;
}

View file

@ -1,11 +1,11 @@
import { GuildTextBasedChannel } from "discord.js";
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { BaseGuildTextChannel, GuildTextBasedChannel, ThreadChannel } from "discord.js";
import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects";
import { resolveChannelIds } from "../../../utils/resolveChannelIds";
import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMessageDeleteBareData {
messageId: string;

View file

@ -1,11 +1,11 @@
import { GuildTextBasedChannel } from "discord.js";
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { BaseGuildTextChannel, GuildTextBasedChannel, ThreadChannel } from "discord.js";
import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects";
import { resolveChannelIds } from "../../../utils/resolveChannelIds";
import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMessageDeleteBulkData {
count: number;

View file

@ -1,17 +1,17 @@
import { GuildTextBasedChannel, User } from "discord.js";
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { SavedMessage } from "../../../data/entities/SavedMessage";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { BaseGuildTextChannel, GuildTextBasedChannel, ThreadChannel, User } from "discord.js";
import { UnknownUser } from "../../../utils";
import { resolveChannelIds } from "../../../utils/resolveChannelIds";
import {
channelToTemplateSafeChannel,
savedMessageToTemplateSafeSavedMessage,
userToTemplateSafeUser,
} from "../../../utils/templateSafeObjects";
import { SavedMessage } from "../../../data/entities/SavedMessage";
import { UnknownUser } from "../../../utils";
import { resolveChannelIds } from "../../../utils/resolveChannelIds";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMessageEditData {
user: User | UnknownUser;

View file

@ -1,15 +1,15 @@
import { GuildMember, GuildTextBasedChannel } from "discord.js";
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { BaseGuildTextChannel, GuildChannel, GuildMember, ThreadChannel } from "discord.js";
import { channelToTemplateSafeChannel, memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
import { resolveChannelIds } from "../../../utils/resolveChannelIds";
import { channelToTemplateSafeChannel, memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogMessageSpamDetectedData {
member: GuildMember;
channel: GuildChannel | ThreadChannel;
channel: GuildTextBasedChannel;
description: string;
limit: number;
interval: number;

View file

@ -1,10 +1,10 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { GuildMember } from "discord.js";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogOtherSpamDetectedData {
member: GuildMember;

View file

@ -1,11 +1,11 @@
import { GuildTextBasedChannel, User } from "discord.js";
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { BaseGuildTextChannel, GuildTextBasedChannel, ThreadChannel, User } from "discord.js";
import { channelToTemplateSafeChannel, userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { resolveChannelIds } from "../../../utils/resolveChannelIds";
import { channelToTemplateSafeChannel, userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogPostedScheduledMessageData {
author: User;

View file

@ -1,11 +1,11 @@
import { GuildTextBasedChannel, User } from "discord.js";
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { BaseGuildTextChannel, GuildTextBasedChannel, ThreadChannel, User } from "discord.js";
import { channelToTemplateSafeChannel, userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { resolveChannelIds } from "../../../utils/resolveChannelIds";
import { channelToTemplateSafeChannel, userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogRepeatedMessageData {
author: User;

View file

@ -1,10 +1,10 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { Role } from "discord.js";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { roleToTemplateSafeRole } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogRoleCreateData {
role: Role;

View file

@ -1,10 +1,10 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { Role } from "discord.js";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { roleToTemplateSafeRole } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogRoleDeleteData {
role: Role;

View file

@ -1,10 +1,10 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { Role } from "discord.js";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { roleToTemplateSafeRole } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogRoleUpdateData {
oldRole: Role;

View file

@ -1,11 +1,11 @@
import { GuildTextBasedChannel, User } from "discord.js";
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { BaseGuildTextChannel, GuildTextBasedChannel, ThreadChannel, User } from "discord.js";
import { channelToTemplateSafeChannel, userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { resolveChannelIds } from "../../../utils/resolveChannelIds";
import { channelToTemplateSafeChannel, userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogScheduledMessageData {
author: User;

View file

@ -1,11 +1,11 @@
import { GuildTextBasedChannel, User } from "discord.js";
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { BaseGuildTextChannel, GuildTextBasedChannel, ThreadChannel, User } from "discord.js";
import { channelToTemplateSafeChannel, userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { resolveChannelIds } from "../../../utils/resolveChannelIds";
import { channelToTemplateSafeChannel, userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogScheduledRepeatedMessageData {
author: User;

View file

@ -1,8 +1,8 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogSetAntiraidAutoData {
level: string;

View file

@ -1,10 +1,10 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { User } from "discord.js";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogSetAntiraidUserData {
level: string;

View file

@ -1,11 +1,11 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { StageChannel, StageInstance } from "discord.js";
import { channelToTemplateSafeChannel, stageToTemplateSafeStage } from "../../../utils/templateSafeObjects";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { resolveChannelIds } from "../../../utils/resolveChannelIds";
import { channelToTemplateSafeChannel, stageToTemplateSafeStage } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogStageInstanceCreateData {
stageInstance: StageInstance;

View file

@ -1,11 +1,11 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { StageChannel, StageInstance } from "discord.js";
import { channelToTemplateSafeChannel, stageToTemplateSafeStage } from "../../../utils/templateSafeObjects";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { resolveChannelIds } from "../../../utils/resolveChannelIds";
import { channelToTemplateSafeChannel, stageToTemplateSafeStage } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogStageInstanceDeleteData {
stageInstance: StageInstance;

View file

@ -1,14 +1,14 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { StageChannel, StageInstance } from "discord.js";
import { channelToTemplateSafeChannel, stageToTemplateSafeStage } from "../../../utils/templateSafeObjects";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { resolveChannelIds } from "../../../utils/resolveChannelIds";
import { channelToTemplateSafeChannel, stageToTemplateSafeStage } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogStageInstanceUpdateData {
oldStageInstance: StageInstance;
oldStageInstance: StageInstance | null;
newStageInstance: StageInstance;
stageChannel: StageChannel;
differenceString: string;
@ -19,7 +19,7 @@ export function logStageInstanceUpdate(pluginData: GuildPluginData<LogsPluginTyp
pluginData,
LogType.STAGE_INSTANCE_UPDATE,
createTypedTemplateSafeValueContainer({
oldStageInstance: stageToTemplateSafeStage(data.oldStageInstance),
oldStageInstance: data.oldStageInstance ? stageToTemplateSafeStage(data.oldStageInstance) : null,
newStageInstance: stageToTemplateSafeStage(data.newStageInstance),
stageChannel: channelToTemplateSafeChannel(data.stageChannel),
differenceString: data.differenceString,

View file

@ -1,10 +1,10 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { Sticker } from "discord.js";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { stickerToTemplateSafeSticker } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogStickerCreateData {
sticker: Sticker;

View file

@ -1,10 +1,10 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { Sticker } from "discord.js";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { stickerToTemplateSafeSticker } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogStickerDeleteData {
sticker: Sticker;

View file

@ -1,10 +1,10 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { Sticker } from "discord.js";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { stickerToTemplateSafeSticker } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogStickerUpdateData {
oldSticker: Sticker;

View file

@ -1,14 +1,14 @@
import { AnyThreadChannel } from "discord.js";
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { ThreadChannel } from "discord.js";
import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects";
import { resolveChannelIds } from "../../../utils/resolveChannelIds";
import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogThreadCreateData {
thread: ThreadChannel;
thread: AnyThreadChannel;
}
export function logThreadCreate(pluginData: GuildPluginData<LogsPluginType>, data: LogThreadCreateData) {

View file

@ -1,14 +1,14 @@
import { AnyThreadChannel } from "discord.js";
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { ThreadChannel } from "discord.js";
import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects";
import { resolveChannelIds } from "../../../utils/resolveChannelIds";
import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogThreadDeleteData {
thread: ThreadChannel;
thread: AnyThreadChannel;
}
export function logThreadDelete(pluginData: GuildPluginData<LogsPluginType>, data: LogThreadDeleteData) {

View file

@ -1,15 +1,15 @@
import { AnyThreadChannel } from "discord.js";
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { ThreadChannel } from "discord.js";
import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects";
import { resolveChannelIds } from "../../../utils/resolveChannelIds";
import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogThreadUpdateData {
oldThread: ThreadChannel;
newThread: ThreadChannel;
oldThread: AnyThreadChannel;
newThread: AnyThreadChannel;
differenceString: string;
}

View file

@ -1,20 +1,20 @@
import { GuildMember, User, VoiceBasedChannel } from "discord.js";
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { BaseGuildVoiceChannel, GuildMember, User } from "discord.js";
import { resolveChannelIds } from "../../../utils/resolveChannelIds";
import {
channelToTemplateSafeChannel,
memberToTemplateSafeMember,
userToTemplateSafeUser,
} from "../../../utils/templateSafeObjects";
import { resolveChannelIds } from "../../../utils/resolveChannelIds";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogVoiceChannelForceDisconnectData {
mod: User;
member: GuildMember;
oldChannel: BaseGuildVoiceChannel;
oldChannel: VoiceBasedChannel;
}
export function logVoiceChannelForceDisconnect(

View file

@ -1,21 +1,21 @@
import { GuildMember, User, VoiceBasedChannel } from "discord.js";
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { BaseGuildVoiceChannel, GuildMember, User } from "discord.js";
import { resolveChannelIds } from "../../../utils/resolveChannelIds";
import {
channelToTemplateSafeChannel,
memberToTemplateSafeMember,
userToTemplateSafeUser,
} from "../../../utils/templateSafeObjects";
import { resolveChannelIds } from "../../../utils/resolveChannelIds";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogVoiceChannelForceMoveData {
mod: User;
member: GuildMember;
oldChannel: BaseGuildVoiceChannel;
newChannel: BaseGuildVoiceChannel;
oldChannel: VoiceBasedChannel;
newChannel: VoiceBasedChannel;
}
export function logVoiceChannelForceMove(

View file

@ -1,15 +1,15 @@
import { GuildMember, VoiceBasedChannel } from "discord.js";
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { BaseGuildVoiceChannel, GuildMember } from "discord.js";
import { channelToTemplateSafeChannel, memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
import { resolveChannelIds } from "../../../utils/resolveChannelIds";
import { channelToTemplateSafeChannel, memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogVoiceChannelJoinData {
member: GuildMember;
channel: BaseGuildVoiceChannel;
channel: VoiceBasedChannel;
}
export function logVoiceChannelJoin(pluginData: GuildPluginData<LogsPluginType>, data: LogVoiceChannelJoinData) {

View file

@ -1,15 +1,15 @@
import { GuildMember, VoiceBasedChannel } from "discord.js";
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { BaseGuildVoiceChannel, GuildMember } from "discord.js";
import { channelToTemplateSafeChannel, memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
import { resolveChannelIds } from "../../../utils/resolveChannelIds";
import { channelToTemplateSafeChannel, memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogVoiceChannelLeaveData {
member: GuildMember;
channel: BaseGuildVoiceChannel;
channel: VoiceBasedChannel;
}
export function logVoiceChannelLeave(pluginData: GuildPluginData<LogsPluginType>, data: LogVoiceChannelLeaveData) {

View file

@ -1,16 +1,16 @@
import { GuildMember, VoiceBasedChannel } from "discord.js";
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { log } from "../util/log";
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { BaseGuildVoiceChannel, GuildMember } from "discord.js";
import { channelToTemplateSafeChannel, memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
import { resolveChannelIds } from "../../../utils/resolveChannelIds";
import { channelToTemplateSafeChannel, memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
import { LogsPluginType } from "../types";
import { log } from "../util/log";
interface LogVoiceChannelMoveData {
member: GuildMember;
oldChannel: BaseGuildVoiceChannel;
newChannel: BaseGuildVoiceChannel;
oldChannel: VoiceBasedChannel;
newChannel: VoiceBasedChannel;
}
export function logVoiceChannelMove(pluginData: GuildPluginData<LogsPluginType>, data: LogVoiceChannelMoveData) {

View file

@ -1,15 +1,14 @@
import * as t from "io-ts";
import { BasePluginType, CooldownManager, guildPluginEventListener } from "knub";
import { z } from "zod";
import { BasePluginType, CooldownManager, typedGuildEventListener } from "knub";
import { GuildArchives } from "../../data/GuildArchives";
import { GuildCases } from "../../data/GuildCases";
import { GuildLogs } from "../../data/GuildLogs";
import { GuildSavedMessages } from "../../data/GuildSavedMessages";
import { RegExpRunner } from "../../RegExpRunner";
import { StrictMessageContent, tMessageContent, tNullable } from "../../utils";
import { TRegex } from "../../validatorUtils";
import { LogType } from "../../data/LogType";
import { GuildMember } from "discord.js";
import { RegExpRunner } from "../../RegExpRunner";
import { tMessageContent, tNullable } from "../../utils";
import { MessageBuffer } from "../../utils/MessageBuffer";
import {
TemplateSafeCase,
TemplateSafeChannel,
@ -23,12 +22,7 @@ import {
TemplateSafeUnknownUser,
TemplateSafeUser,
} from "../../utils/templateSafeObjects";
import {
TemplateSafeValue,
TemplateSafeValueContainer,
TypedTemplateSafeValueContainer,
} from "../../templateFormatter";
import { MessageBuffer } from "../../utils/MessageBuffer";
import { TRegex } from "../../validatorUtils";
export const tLogFormats = t.record(t.string, t.union([t.string, tMessageContent]));
export type TLogFormats = t.TypeOf<typeof tLogFormats>;
@ -96,7 +90,7 @@ export interface LogsPluginType extends BasePluginType {
};
}
export const logsEvt = typedGuildEventListener<LogsPluginType>();
export const logsEvt = guildPluginEventListener<LogsPluginType>();
export const LogTypeData = z.object({
[LogType.MEMBER_WARN]: z.object({
@ -280,7 +274,7 @@ export const LogTypeData = z.object({
}),
[LogType.STAGE_INSTANCE_UPDATE]: z.object({
oldStageInstance: z.instanceof(TemplateSafeStage),
oldStageInstance: z.instanceof(TemplateSafeStage).or(z.null()),
newStageInstance: z.instanceof(TemplateSafeStage),
stageChannel: z.instanceof(TemplateSafeChannel),
differenceString: z.string(),

View file

@ -1,4 +1,4 @@
import { MessageOptions } from "discord.js";
import { MessageCreateOptions } from "discord.js";
import { GuildPluginData } from "knub";
import { SavedMessage } from "../../../data/entities/SavedMessage";
import { LogType } from "../../../data/LogType";
@ -18,21 +18,21 @@ import {
verboseUserMention,
verboseUserName,
} from "../../../utils";
import { TimeAndDatePlugin } from "../../TimeAndDate/TimeAndDatePlugin";
import { FORMAT_NO_TIMESTAMP, ILogTypeData, LogsPluginType, TLogChannel } from "../types";
import {
getTemplateSafeMemberLevel,
TemplateSafeMember,
memberToTemplateSafeMember,
TemplateSafeMember,
TemplateSafeUser,
} from "../../../utils/templateSafeObjects";
import { TimeAndDatePlugin } from "../../TimeAndDate/TimeAndDatePlugin";
import { FORMAT_NO_TIMESTAMP, ILogTypeData, LogsPluginType, TLogChannel } from "../types";
export async function getLogMessage<TLogType extends keyof ILogTypeData>(
pluginData: GuildPluginData<LogsPluginType>,
type: TLogType,
data: TypedTemplateSafeValueContainer<ILogTypeData[TLogType]>,
opts?: Pick<TLogChannel, "format" | "timestamp_format" | "include_embed_timestamp">,
): Promise<MessageOptions | null> {
): Promise<MessageCreateOptions | null> {
const config = pluginData.config.get();
const format = opts?.format?.[LogType[type]] || config.format[LogType[type]] || "";
if (format === "" || format == null) return null;

View file

@ -1,6 +1,6 @@
import { GuildPluginData } from "knub";
import { LogsPluginType } from "../types";
import { LogType } from "../../../data/LogType";
import { LogsPluginType } from "../types";
export function isLogIgnored(pluginData: GuildPluginData<LogsPluginType>, type: LogType, ignoreId: string) {
return pluginData.state.guildLogs.isLogIgnored(type, ignoreId);

View file

@ -1,13 +1,13 @@
import { MessageEmbedOptions, MessageMentionTypes, Snowflake, TextChannel } from "discord.js";
import { APIEmbed, MessageMentionTypes, Snowflake } from "discord.js";
import { GuildPluginData } from "knub";
import { LogType } from "../../../data/LogType";
import { allowTimeout } from "../../../RegExpRunner";
import { TypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { isDiscordAPIError, MINUTES } from "../../../utils";
import { MessageBuffer } from "../../../utils/MessageBuffer";
import { InternalPosterPlugin } from "../../InternalPoster/InternalPosterPlugin";
import { ILogTypeData, LogsPluginType, TLogChannel, TLogChannelMap } from "../types";
import { getLogMessage } from "./getLogMessage";
import { TypedTemplateSafeValueContainer } from "../../../templateFormatter";
import { LogType } from "../../../data/LogType";
import { MessageBuffer } from "../../../utils/MessageBuffer";
import { createChunkedMessage, isDiscordAPIError, MINUTES } from "../../../utils";
import { InternalPosterPlugin } from "../../InternalPoster/InternalPosterPlugin";
const excludedUserProps = ["user", "member", "mod"];
const excludedRoleProps = ["message.member.roles", "member.roles"];
@ -88,7 +88,7 @@ export async function log<TLogType extends keyof ILogTypeData>(
logChannelLoop: for (const [channelId, opts] of Object.entries(logChannels)) {
const channel = pluginData.guild.channels.cache.get(channelId as Snowflake);
if (!channel?.isText()) continue;
if (!channel?.isTextBased()) continue;
if (pluginData.state.channelCooldowns.isOnCooldown(channelId)) continue;
if (opts.include?.length && !opts.include.includes(typeStr)) continue;
if (opts.exclude && opts.exclude.includes(typeStr)) continue;
@ -141,7 +141,7 @@ export async function log<TLogType extends keyof ILogTypeData>(
const buffer = pluginData.state.buffers.get(channelId)!;
buffer.push({
content: typeof message === "string" ? message : message.content || "",
embeds: typeof message === "string" ? [] : ((message.embeds || []) as MessageEmbedOptions[]),
embeds: typeof message === "string" ? [] : ((message.embeds || []) as APIEmbed[]),
});
}
}

View file

@ -1,21 +1,18 @@
import { Snowflake, TextChannel, ThreadChannel } from "discord.js";
import { Snowflake } from "discord.js";
import { GuildPluginData } from "knub";
import { SavedMessage } from "../../../data/entities/SavedMessage";
import { LogType } from "../../../data/LogType";
import { resolveUser } from "../../../utils";
import { LogsPluginType } from "../types";
import { logMessageDelete } from "../logFunctions/logMessageDelete";
import { isLogIgnored } from "./isLogIgnored";
import { logMessageDeleteBare } from "../logFunctions/logMessageDeleteBare";
import { LogsPluginType } from "../types";
import { isLogIgnored } from "./isLogIgnored";
export async function onMessageDelete(pluginData: GuildPluginData<LogsPluginType>, savedMessage: SavedMessage) {
const user = await resolveUser(pluginData.client, savedMessage.user_id);
const channel = pluginData.guild.channels.resolve(savedMessage.channel_id as Snowflake) as
| TextChannel
| ThreadChannel
| null;
const channel = pluginData.guild.channels.resolve(savedMessage.channel_id as Snowflake);
if (channel == null) {
if (!channel?.isTextBased()) {
return;
}

View file

@ -1,10 +1,10 @@
import { BaseGuildTextChannel, GuildTextBasedChannel, Snowflake, ThreadChannel } from "discord.js";
import { Snowflake } from "discord.js";
import { GuildPluginData } from "knub";
import { SavedMessage } from "../../../data/entities/SavedMessage";
import { LogType } from "../../../data/LogType";
import { getBaseUrl } from "../../../pluginUtils";
import { LogsPluginType } from "../types";
import { logMessageDeleteBulk } from "../logFunctions/logMessageDeleteBulk";
import { LogsPluginType } from "../types";
import { isLogIgnored } from "./isLogIgnored";
export async function onMessageDeleteBulk(pluginData: GuildPluginData<LogsPluginType>, savedMessages: SavedMessage[]) {
@ -12,9 +12,11 @@ export async function onMessageDeleteBulk(pluginData: GuildPluginData<LogsPlugin
return;
}
const channel = pluginData.guild.channels.cache.get(
savedMessages[0].channel_id as Snowflake,
) as GuildTextBasedChannel;
const channel = pluginData.guild.channels.cache.get(savedMessages[0].channel_id as Snowflake);
if (!channel?.isTextBased()) {
return;
}
const archiveId = await pluginData.state.archives.createFromSavedMessages(savedMessages, pluginData.guild);
const archiveUrl = pluginData.state.archives.getUrl(getBaseUrl(pluginData), archiveId);
const authorIds = Array.from(new Set(savedMessages.map((item) => `\`${item.user_id}\``)));

View file

@ -1,12 +1,10 @@
import { BaseGuildTextChannel, GuildTextBasedChannel, MessageEmbed, Snowflake, ThreadChannel } from "discord.js";
import { EmbedData, GuildTextBasedChannel, Snowflake } from "discord.js";
import { GuildPluginData } from "knub";
import cloneDeep from "lodash.clonedeep";
import { channelToTemplateSafeChannel, userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
import { SavedMessage } from "../../../data/entities/SavedMessage";
import { LogType } from "../../../data/LogType";
import { resolveUser } from "../../../utils";
import { LogsPluginType } from "../types";
import { logMessageEdit } from "../logFunctions/logMessageEdit";
import { LogsPluginType } from "../types";
export async function onMessageUpdate(
pluginData: GuildPluginData<LogsPluginType>,
@ -16,13 +14,13 @@ export async function onMessageUpdate(
// To log a message update, either the message content or a rich embed has to change
let logUpdate = false;
const oldEmbedsToCompare = ((oldSavedMessage.data.embeds || []) as MessageEmbed[])
const oldEmbedsToCompare = ((oldSavedMessage.data.embeds || []) as EmbedData[])
.map((e) => cloneDeep(e))
.filter((e) => (e as MessageEmbed).type === "rich");
.filter((e) => (e as EmbedData).type === "rich");
const newEmbedsToCompare = ((savedMessage.data.embeds || []) as MessageEmbed[])
const newEmbedsToCompare = ((savedMessage.data.embeds || []) as EmbedData[])
.map((e) => cloneDeep(e))
.filter((e) => (e as MessageEmbed).type === "rich");
.filter((e) => (e as EmbedData).type === "rich");
for (const embed of [...oldEmbedsToCompare, ...newEmbedsToCompare]) {
if (embed.thumbnail) {