blob: bc8adb85ae2332a6ac06a8c9bd0af70a41bed93b [file] [log] [blame]
import type { NucleusClient } from "../utils/client.js";
import { AuditLogEvent, GuildAuditLogsEntry, Sticker } from "discord.js";
import { generalException } from "../utils/createTemporaryStorage.js";
export const event = "stickerCreate";
export async function callback(client: NucleusClient, sticker: Sticker) {
const { getAuditLog, isLogging, log, NucleusColors, entry, renderUser, renderDelta } = client.logger;
if (!(await isLogging(sticker.guild!.id, "stickerUpdate"))) return;
const auditLog = (await getAuditLog(sticker.guild!, AuditLogEvent.StickerCreate)).filter(
(entry: GuildAuditLogsEntry) => (entry.target as Sticker)!.id === sticker.id
)[0]!;
if (auditLog.executor!.id === client.user!.id) return;
if (client.noLog.includes(`${sticker.guild!.id}${auditLog.id}`)) return;
generalException(`${sticker.guild!.id}${auditLog.id}`);
const data = {
meta: {
type: "stickerCreate",
displayName: "Sticker Created",
calculateType: "stickerUpdate",
color: NucleusColors.green,
emoji: "GUILD.EMOJI.CREATE",
timestamp: sticker.createdTimestamp
},
list: {
stickerId: entry(sticker.id, `\`${sticker.id}\``),
emoji: entry(sticker.name, `\`:${sticker.name}:\``),
createdBy: entry(auditLog.executor!.id, renderUser(auditLog.executor!)),
created: entry(sticker.createdTimestamp, renderDelta(sticker.createdTimestamp))
},
hidden: {
guild: sticker.guild!.id
}
};
await log(data);
}