Include Sticker and Emoji events in Logs
This commit is contained in:
parent
1e69da7cbc
commit
3886d2d1dd
7 changed files with 169 additions and 1 deletions
|
@ -50,6 +50,14 @@
|
||||||
"STAGE_INSTANCE_DELETE": "📣 Stage Instance `{stageInstance.topic}` was deleted in Stage Channel <#{stageChannel.id}>",
|
"STAGE_INSTANCE_DELETE": "📣 Stage Instance `{stageInstance.topic}` was deleted in Stage Channel <#{stageChannel.id}>",
|
||||||
"STAGE_INSTANCE_UPDATE": "📣 Stage Instance `{newStageInstance.topic}` was edited in Stage Channel <#{stageChannel.id}>. Changes:\n{differenceString}",
|
"STAGE_INSTANCE_UPDATE": "📣 Stage Instance `{newStageInstance.topic}` was edited in Stage Channel <#{stageChannel.id}>. Changes:\n{differenceString}",
|
||||||
|
|
||||||
|
"EMOJI_CREATE": "<{emoji.identifier}> Emoji `{emoji.name} ({emoji.id})` was created",
|
||||||
|
"EMOJI_DELETE": "👋 Emoji `{emoji.name} ({emoji.id})` was deleted",
|
||||||
|
"EMOJI_UPDATE": "<{newEmoji.identifier}> Emoji `{newEmoji.name} ({newEmoji.id})` was updated. Changes:\n{differenceString}",
|
||||||
|
|
||||||
|
"STICKER_CREATE": "🖼️ Sticker `{sticker.name} ({sticker.id})` was created. Description: `{sticker.description}` Format: {emoji.format}",
|
||||||
|
"STICKER_DELETE": "🖼️ Sticker `{sticker.name} ({sticker.id})` was deleted.",
|
||||||
|
"STICKER_UPDATE": "🖼️ Sticker `{newSticker.name} ({sticker.id})` was updated. Changes:\n{differenceString}",
|
||||||
|
|
||||||
"COMMAND": "🤖 {userMention(member)} used command in {channelMention(channel)}:\n`{command}`",
|
"COMMAND": "🤖 {userMention(member)} used command in {channelMention(channel)}:\n`{command}`",
|
||||||
|
|
||||||
"MESSAGE_SPAM_DETECTED": "🛑 {userMention(member)} spam detected in {channelMention(channel)}: {description} (more than {limit} in {interval}s)\n{archiveUrl}",
|
"MESSAGE_SPAM_DETECTED": "🛑 {userMention(member)} spam detected in {channelMention(channel)}: {description} (more than {limit} in {interval}s)\n{archiveUrl}",
|
||||||
|
|
|
@ -41,6 +41,14 @@ export enum LogType {
|
||||||
STAGE_INSTANCE_DELETE,
|
STAGE_INSTANCE_DELETE,
|
||||||
STAGE_INSTANCE_UPDATE,
|
STAGE_INSTANCE_UPDATE,
|
||||||
|
|
||||||
|
EMOJI_CREATE,
|
||||||
|
EMOJI_DELETE,
|
||||||
|
EMOJI_UPDATE,
|
||||||
|
|
||||||
|
STICKER_CREATE,
|
||||||
|
STICKER_DELETE,
|
||||||
|
STICKER_UPDATE,
|
||||||
|
|
||||||
COMMAND,
|
COMMAND,
|
||||||
|
|
||||||
MESSAGE_SPAM_DETECTED,
|
MESSAGE_SPAM_DETECTED,
|
||||||
|
|
|
@ -20,6 +20,14 @@ import {
|
||||||
LogsStageInstanceDeleteEvt,
|
LogsStageInstanceDeleteEvt,
|
||||||
LogsStageInstanceUpdateEvt,
|
LogsStageInstanceUpdateEvt,
|
||||||
} from "./events/LogsStageInstanceModifyEvts";
|
} from "./events/LogsStageInstanceModifyEvts";
|
||||||
|
import {
|
||||||
|
LogsEmojiCreateEvt,
|
||||||
|
LogsEmojiDeleteEvt,
|
||||||
|
LogsEmojiUpdateEvt,
|
||||||
|
LogsStickerCreateEvt,
|
||||||
|
LogsStickerDeleteEvt,
|
||||||
|
LogsStickerUpdateEvt,
|
||||||
|
} from "./events/LogsStickerEmojiModifyEvts";
|
||||||
import { LogsThreadCreateEvt, LogsThreadDeleteEvt, LogsThreadUpdateEvt } from "./events/LogsThreadModifyEvts";
|
import { LogsThreadCreateEvt, LogsThreadDeleteEvt, LogsThreadUpdateEvt } from "./events/LogsThreadModifyEvts";
|
||||||
import { LogsGuildMemberUpdateEvt } from "./events/LogsUserUpdateEvts";
|
import { LogsGuildMemberUpdateEvt } from "./events/LogsUserUpdateEvts";
|
||||||
import { LogsVoiceStateUpdateEvt } from "./events/LogsVoiceChannelEvts";
|
import { LogsVoiceStateUpdateEvt } from "./events/LogsVoiceChannelEvts";
|
||||||
|
@ -81,6 +89,12 @@ export const LogsPlugin = zeppelinGuildPlugin<LogsPluginType>()({
|
||||||
LogsThreadCreateEvt,
|
LogsThreadCreateEvt,
|
||||||
LogsThreadDeleteEvt,
|
LogsThreadDeleteEvt,
|
||||||
LogsThreadUpdateEvt,
|
LogsThreadUpdateEvt,
|
||||||
|
LogsEmojiCreateEvt,
|
||||||
|
LogsEmojiDeleteEvt,
|
||||||
|
LogsEmojiUpdateEvt,
|
||||||
|
LogsStickerCreateEvt,
|
||||||
|
LogsStickerDeleteEvt,
|
||||||
|
LogsStickerUpdateEvt,
|
||||||
],
|
],
|
||||||
|
|
||||||
public: {
|
public: {
|
||||||
|
|
|
@ -0,0 +1,82 @@
|
||||||
|
import { LogType } from "../../../data/LogType";
|
||||||
|
import { differenceToString, getScalarDifference } from "../../../utils";
|
||||||
|
import {
|
||||||
|
channelToConfigAccessibleChannel,
|
||||||
|
emojiToConfigAccessibleEmoji,
|
||||||
|
stickerToConfigAccessibleSticker,
|
||||||
|
} from "../../../utils/configAccessibleObjects";
|
||||||
|
import { logsEvt } from "../types";
|
||||||
|
|
||||||
|
export const LogsEmojiCreateEvt = logsEvt({
|
||||||
|
event: "emojiCreate",
|
||||||
|
|
||||||
|
async listener(meta) {
|
||||||
|
meta.pluginData.state.guildLogs.log(LogType.EMOJI_CREATE, {
|
||||||
|
emoji: emojiToConfigAccessibleEmoji(meta.args.emoji),
|
||||||
|
});
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
export const LogsEmojiDeleteEvt = logsEvt({
|
||||||
|
event: "emojiDelete",
|
||||||
|
|
||||||
|
async listener(meta) {
|
||||||
|
meta.pluginData.state.guildLogs.log(LogType.EMOJI_DELETE, {
|
||||||
|
emoji: emojiToConfigAccessibleEmoji(meta.args.emoji),
|
||||||
|
});
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
export const LogsEmojiUpdateEvt = logsEvt({
|
||||||
|
event: "emojiUpdate",
|
||||||
|
|
||||||
|
async listener(meta) {
|
||||||
|
const diff = getScalarDifference(meta.args.oldEmoji, meta.args.newEmoji);
|
||||||
|
const differenceString = differenceToString(diff);
|
||||||
|
|
||||||
|
meta.pluginData.state.guildLogs.log(LogType.EMOJI_UPDATE, {
|
||||||
|
oldEmoji: emojiToConfigAccessibleEmoji(meta.args.oldEmoji),
|
||||||
|
newEmoji: emojiToConfigAccessibleEmoji(meta.args.newEmoji),
|
||||||
|
differenceString,
|
||||||
|
});
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
export const LogsStickerCreateEvt = logsEvt({
|
||||||
|
event: "stickerCreate",
|
||||||
|
|
||||||
|
async listener(meta) {
|
||||||
|
meta.pluginData.state.guildLogs.log(LogType.STICKER_CREATE, {
|
||||||
|
thread: stickerToConfigAccessibleSticker(meta.args.sticker),
|
||||||
|
});
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
export const LogsStickerDeleteEvt = logsEvt({
|
||||||
|
event: "stickerDelete",
|
||||||
|
|
||||||
|
async listener(meta) {
|
||||||
|
meta.pluginData.state.guildLogs.log(LogType.STICKER_DELETE, {
|
||||||
|
thread: stickerToConfigAccessibleSticker(meta.args.sticker),
|
||||||
|
});
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
export const LogsStickerUpdateEvt = logsEvt({
|
||||||
|
event: "stickerUpdate",
|
||||||
|
|
||||||
|
async listener(meta) {
|
||||||
|
const diff = getScalarDifference(meta.args.oldSticker, meta.args.newSticker);
|
||||||
|
const differenceString = differenceToString(diff);
|
||||||
|
|
||||||
|
meta.pluginData.state.guildLogs.log(
|
||||||
|
LogType.STICKER_UPDATE,
|
||||||
|
{
|
||||||
|
oldThread: stickerToConfigAccessibleSticker(meta.args.oldSticker),
|
||||||
|
newThread: stickerToConfigAccessibleSticker(meta.args.newSticker),
|
||||||
|
differenceString,
|
||||||
|
},
|
||||||
|
meta.args.newSticker.id,
|
||||||
|
);
|
||||||
|
},
|
||||||
|
});
|
|
@ -212,7 +212,7 @@ export function differenceToString(diff: Map<string, { was: any; is: any }>): st
|
||||||
let toReturn = "";
|
let toReturn = "";
|
||||||
diff = prettyDifference(diff);
|
diff = prettyDifference(diff);
|
||||||
for (const [key, difference] of diff) {
|
for (const [key, difference] of diff) {
|
||||||
toReturn += `${key[0].toUpperCase() + key.slice(1)}: \`${difference.was}\` ➜ \`${difference.is}\`\n`;
|
toReturn += `**${key[0].toUpperCase() + key.slice(1)}**: \`${difference.was}\` ➜ \`${difference.is}\`\n`;
|
||||||
}
|
}
|
||||||
return toReturn;
|
return toReturn;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
import {
|
import {
|
||||||
|
Emoji,
|
||||||
GuildChannel,
|
GuildChannel,
|
||||||
GuildMember,
|
GuildMember,
|
||||||
PartialGuildMember,
|
PartialGuildMember,
|
||||||
Role,
|
Role,
|
||||||
Snowflake,
|
Snowflake,
|
||||||
StageInstance,
|
StageInstance,
|
||||||
|
Sticker,
|
||||||
ThreadChannel,
|
ThreadChannel,
|
||||||
User,
|
User,
|
||||||
} from "discord.js";
|
} from "discord.js";
|
||||||
|
@ -127,3 +129,51 @@ export function stageToConfigAccessibleStage(stage: StageInstance): IConfigAcces
|
||||||
|
|
||||||
return toReturn;
|
return toReturn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface IConfigAccessibleEmoji {
|
||||||
|
id: Snowflake;
|
||||||
|
name: string;
|
||||||
|
createdAt?: number;
|
||||||
|
animated: boolean;
|
||||||
|
identifier: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function emojiToConfigAccessibleEmoji(emoji: Emoji): IConfigAccessibleEmoji {
|
||||||
|
const toReturn: IConfigAccessibleEmoji = {
|
||||||
|
id: emoji.id!,
|
||||||
|
name: emoji.name!,
|
||||||
|
createdAt: emoji.createdTimestamp ?? undefined,
|
||||||
|
animated: emoji.animated ?? false,
|
||||||
|
identifier: emoji.identifier,
|
||||||
|
};
|
||||||
|
|
||||||
|
return toReturn;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface IConfigAccessibleSticker {
|
||||||
|
id: Snowflake;
|
||||||
|
guildId?: Snowflake;
|
||||||
|
packId?: Snowflake;
|
||||||
|
name: string;
|
||||||
|
description: string;
|
||||||
|
tags: string;
|
||||||
|
format: string;
|
||||||
|
animated: boolean;
|
||||||
|
url: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function stickerToConfigAccessibleSticker(sticker: Sticker): IConfigAccessibleSticker {
|
||||||
|
const toReturn: IConfigAccessibleSticker = {
|
||||||
|
id: sticker.id,
|
||||||
|
guildId: sticker.guildId ?? undefined,
|
||||||
|
packId: sticker.packId ?? undefined,
|
||||||
|
name: sticker.name,
|
||||||
|
description: sticker.description ?? "",
|
||||||
|
tags: sticker.tags?.join(", ") ?? "",
|
||||||
|
format: sticker.format,
|
||||||
|
animated: sticker.format === "PNG" ? false : true,
|
||||||
|
url: sticker.url,
|
||||||
|
};
|
||||||
|
|
||||||
|
return toReturn;
|
||||||
|
}
|
||||||
|
|
|
@ -37,6 +37,12 @@ const LOG_TYPES = {
|
||||||
"STAGE_INSTANCE_CREATE": "Stage created",
|
"STAGE_INSTANCE_CREATE": "Stage created",
|
||||||
"STAGE_INSTANCE_DELETE": "Stage deleted",
|
"STAGE_INSTANCE_DELETE": "Stage deleted",
|
||||||
"STAGE_INSTANCE_UPDATE": "Stage updated",
|
"STAGE_INSTANCE_UPDATE": "Stage updated",
|
||||||
|
"EMOJI_CREATE": "Emoji created",
|
||||||
|
"EMOJI_DELETE": "Emoji deleted",
|
||||||
|
"EMOJI_UPDATE": "Emoji updated",
|
||||||
|
"STICKER_CREATE": "Sticker created",
|
||||||
|
"STICKER_DELETE": "Sticker deleted",
|
||||||
|
"STICKER_UPDATE": "Sticker updated",
|
||||||
"COMMAND": "Command used",
|
"COMMAND": "Command used",
|
||||||
"MESSAGE_SPAM_DETECTED": "Message spam detected",
|
"MESSAGE_SPAM_DETECTED": "Message spam detected",
|
||||||
"CENSOR": "Message censored",
|
"CENSOR": "Message censored",
|
||||||
|
|
Loading…
Add table
Reference in a new issue