Anleitungen

Discord-Bot

Ein Bot, der jede Nachricht prüft, Eindeutiges löscht und Grenzfälle in einen Log-Kanal schreibt.

Vorbereitung

  1. Lege im Discord Developer Portal eine Anwendung mit Bot an und aktiviere den Message Content Intent.
  2. Lade den Bot mit den Rechten Nachrichten lesen, Nachrichten verwalten und Nachrichten senden auf deinen Server ein.
  3. Lege in Axolite einen eigenen Schlüssel für den Bot an.
  4. Setze die Umgebungsvariablen DISCORD_TOKEN, AXO_KEY und LOG_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 Beispiel strict in 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.