apps/bot/src/lib/utils.ts (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
import {
container,
type ChatInputCommandSuccessPayload,
type Command,
type ContextMenuCommandSuccessPayload,
type MessageCommandSuccessPayload,
} from "@sapphire/framework";
import type { Guild, User } from "discord.js";
export function logSuccessCommand(
payload:
| ContextMenuCommandSuccessPayload
| ChatInputCommandSuccessPayload
| MessageCommandSuccessPayload,
): void {
let successLoggerData: ReturnType<typeof getSuccessLoggerData>;
if ("interaction" in payload) {
successLoggerData = getSuccessLoggerData(
payload.interaction.guild,
payload.interaction.user,
payload.command,
);
} else {
successLoggerData = getSuccessLoggerData(
payload.message.guild,
payload.message.author,
payload.command,
);
}
container.logger.debug(
`${successLoggerData.shard} - ${successLoggerData.commandName} ${successLoggerData.author} ${successLoggerData.sentAt}`,
);
}
export function getSuccessLoggerData(guild: Guild | null, user: User, command: Command) {
const shard = guild?.shardId;
const commandName = command.name;
const author = `${user.username}[${user.id}]`;
const sentAt = `${guild?.name}[${guild?.id}]`;
return { shard, commandName, author, sentAt };
}
|