Anleitungen
Discord-Bot
Ein Bot, der jede Nachricht prüft, Eindeutiges löscht und Grenzfälle in einen Log-Kanal schreibt.
Vorbereitung
- Lege im Discord Developer Portal eine Anwendung mit Bot an und aktiviere den Message Content Intent.
- Lade den Bot mit den Rechten Nachrichten lesen, Nachrichten verwalten und Nachrichten senden auf deinen Server ein.
- Lege in Axolite einen eigenen Schlüssel für den Bot an.
- Setze die Umgebungsvariablen
DISCORD_TOKEN,AXO_KEYundLOG_CHANNEL_ID.
Installieren
npm install discord.js
Der Bot
import { Client, GatewayIntentBits } from "discord.js";
const client = new Client({
intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent]
});
const LOG_CHANNEL = process.env.LOG_CHANNEL_ID;
async function check(text) {
const response = await fetch("https://api.axolite.app/v1/check", {
method: "POST",
headers: { "X-API-Key": process.env.AXO_KEY, "Content-Type": "application/json" },
body: JSON.stringify({ text, level: "medium" }),
signal: AbortSignal.timeout(5000)
});
return response.ok ? response.json() : null;
}
client.on("messageCreate", async (message) => {
if (message.author.bot || !message.content.trim()) return;
const result = await check(message.content.slice(0, 2000)).catch(() => null);
if (!result || result.action === "allow") return;
if (result.action === "block") await message.delete();
const log = await client.channels.fetch(LOG_CHANNEL);
await log.send(`${result.action} · ${message.author.tag} · Score ${result.score.toFixed(2)}`);
});
client.login(process.env.DISCORD_TOKEN);Anpassen
- Strenger oder lockerer: Ändere
level, zum Beispielstrictin einem Kanal für Jüngere. - Spielbegriffe: Begriffe wie „noob“ oder „kill“ trägst du als Erlaubt-Regel ein, statt den Code zu ändern.
- Ausfälle: Antwortet die API nicht, lässt der Bot die Nachricht durch. So bleibt der Chat offen, siehe Fehler.
- Viel Verkehr: Achte auf das Sekundenlimit deines Tarifs. Bei 429 hilft ein kurzer neuer Versuch.