mirror of
https://github.com/ZeppelinBot/Zeppelin.git
synced 2025-03-15 05:41:51 +00:00
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_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}`",
|
||||
|
||||
"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_UPDATE,
|
||||
|
||||
EMOJI_CREATE,
|
||||
EMOJI_DELETE,
|
||||
EMOJI_UPDATE,
|
||||
|
||||
STICKER_CREATE,
|
||||
STICKER_DELETE,
|
||||
STICKER_UPDATE,
|
||||
|
||||
COMMAND,
|
||||
|
||||
MESSAGE_SPAM_DETECTED,
|
||||
|
|
|
@ -20,6 +20,14 @@ import {
|
|||
LogsStageInstanceDeleteEvt,
|
||||
LogsStageInstanceUpdateEvt,
|
||||
} from "./events/LogsStageInstanceModifyEvts";
|
||||
import {
|
||||
LogsEmojiCreateEvt,
|
||||
LogsEmojiDeleteEvt,
|
||||
LogsEmojiUpdateEvt,
|
||||
LogsStickerCreateEvt,
|
||||
LogsStickerDeleteEvt,
|
||||
LogsStickerUpdateEvt,
|
||||
} from "./events/LogsStickerEmojiModifyEvts";
|
||||
import { LogsThreadCreateEvt, LogsThreadDeleteEvt, LogsThreadUpdateEvt } from "./events/LogsThreadModifyEvts";
|
||||
import { LogsGuildMemberUpdateEvt } from "./events/LogsUserUpdateEvts";
|
||||
import { LogsVoiceStateUpdateEvt } from "./events/LogsVoiceChannelEvts";
|
||||
|
@ -81,6 +89,12 @@ export const LogsPlugin = zeppelinGuildPlugin<LogsPluginType>()({
|
|||
LogsThreadCreateEvt,
|
||||
LogsThreadDeleteEvt,
|
||||
LogsThreadUpdateEvt,
|
||||
LogsEmojiCreateEvt,
|
||||
LogsEmojiDeleteEvt,
|
||||
LogsEmojiUpdateEvt,
|
||||
LogsStickerCreateEvt,
|
||||
LogsStickerDeleteEvt,
|
||||
LogsStickerUpdateEvt,
|
||||
],
|
||||
|
||||
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 = "";
|
||||
diff = prettyDifference(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;
|
||||
}
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
import {
|
||||
Emoji,
|
||||
GuildChannel,
|
||||
GuildMember,
|
||||
PartialGuildMember,
|
||||
Role,
|
||||
Snowflake,
|
||||
StageInstance,
|
||||
Sticker,
|
||||
ThreadChannel,
|
||||
User,
|
||||
} from "discord.js";
|
||||
|
@ -127,3 +129,51 @@ export function stageToConfigAccessibleStage(stage: StageInstance): IConfigAcces
|
|||
|
||||
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_DELETE": "Stage deleted",
|
||||
"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",
|
||||
"MESSAGE_SPAM_DETECTED": "Message spam detected",
|
||||
"CENSOR": "Message censored",
|
||||
|
|
Loading…
Add table
Reference in a new issue