generated from nhcarrigan/template
76e559876b
Replaces the old AI companion bot with a full Discord moderation system. Commands: warn, mute, unmute, kick, softban, ban, unban, prune Logging: member join/leave, activity (messages/threads/voice), mod actions Audit log: captures manual bans, kicks, timeouts, and unbans Sanctions: posts to Hikari sanction API for all applicable actions All commands are ephemeral and use Components v2. Permission and role hierarchy checks are enforced on every applicable command.
40 lines
995 B
TypeScript
40 lines
995 B
TypeScript
/**
|
|
* @copyright nhcarrigan
|
|
* @license Naomi's Public License
|
|
* @author Naomi Carrigan
|
|
*/
|
|
|
|
import { logActivity } from "../modules/logActivity.js";
|
|
import { logger } from "../utils/logger.js";
|
|
import type { AnyThreadChannel } from "discord.js";
|
|
|
|
/**
|
|
* Logs thread deletion events to the activity log channel.
|
|
* @param thread - The deleted thread channel.
|
|
* @returns A promise that resolves when the event has been logged.
|
|
*/
|
|
export const onThreadDelete = async(
|
|
thread: AnyThreadChannel,
|
|
): Promise<void> => {
|
|
try {
|
|
const fields = [
|
|
`**Thread**: ${thread.name} (\`${thread.id}\`)`,
|
|
`**Parent**: <#${thread.parentId ?? "Unknown"}>`,
|
|
].join("\n");
|
|
|
|
await logActivity({
|
|
client: thread.client,
|
|
emoji: "🗑️",
|
|
fields: fields,
|
|
title: "Thread Deleted",
|
|
});
|
|
} catch (error) {
|
|
await logger.error(
|
|
"Failed to log thread delete",
|
|
error instanceof Error
|
|
? error
|
|
: new Error(String(error)),
|
|
);
|
|
}
|
|
};
|