ACLClouds
ACLClouds

Einen Discord-Node.js-Bot mit discord.js v14 hosten

npm-Projekt, Intents, Token, Start: die Schritte, um einen discord.js-v14-Bot online zu bringen, einen nach dem anderen.

Ein discord.js-v14-Bot ist ein klassisches Node.js-Projekt: eine package.json, eine Einstiegsdatei und ein paar Abhängigkeiten. Die nützlichen Schritte sind immer dieselben: Projekt anlegen, Intents deklarieren, den Token aus der Umgebung lesen und den Start prüfen, bevor Sie den Bot dem Server übergeben.

  • discord.js v14 läuft mit Node.js 18 oder neuer, und der Client deklariert seine Intents.
  • Der Token wird aus Umgebungsvariablen gelesen, nie aus index.js.
  • Used disallowed intents und Fehler 4014 haben dieselbe Ursache: ein im Portal deaktivierter privilegierter Intent.

Projekt anlegen

discord.js v14 funktioniert mit Node.js 18 oder neuer. Das Projekt besteht aus einer package.json, die die Abhängigkeiten auflistet, und einer Einstiegsdatei, index.js.

  • npm init -y: erstellt die package.json mit Standardwerten.
  • npm install discord.js: fügt discord.js v14 den Abhängigkeiten hinzu.
  • Ergänzen Sie im Abschnitt scripts der package.json "start": "node index.js", um den Bot mit npm start zu starten.

Den Client schreiben

Der Client muss die Intents deklarieren, die er braucht. Ein Intent, der im Code fehlt, erhält keine Ereignisse, und ein privilegierter Intent, der im Portal nicht aktiviert ist, lässt die Verbindung scheitern.

  • GatewayIntentBits.Guilds und GatewayIntentBits.GuildMessages: Server- und Nachrichtenereignisse.
  • GatewayIntentBits.MessageContent: privilegierter Intent, im Entwicklerportal zu aktivieren, um Nachrichtentexte zu lesen.
  • client.login(process.env.DISCORD_TOKEN): der Token kommt aus der Umgebung, nie aus dem Code.

Starten und prüfen

Testen Sie den Bot lokal, bevor Sie ihn hochladen. Ein verbundener Bot sollte die Bestätigung ausgeben, die Sie in seinem Startereignis vorgesehen haben.

  • npm install: installiert die in package.json aufgelisteten Abhängigkeiten.
  • npm start: startet den Bot mit dem Startskript.
  • Gibt die Konsole Used disallowed intents aus, ist ein privilegierter Intent im Portal deaktiviert: aktivieren Sie ihn und starten Sie den Bot neu.

Warum ACLClouds für einen discord.js-Bot

Der kostenlose Tarif umfasst 1 Bot, 315 MB RAM und 715 MB Speicher. Node.js, ffmpeg, yt-dlp und deno sind im Node.js-Image bereits enthalten, und Dateien laden Sie per SFTP hoch.

  • Kostenloser Tarif: 1 Bot, 315 MB RAM, 0,25 vCPU, 715 MB Speicher, Uploads bis 100 MB.
  • Node.js-Image: ffmpeg, yt-dlp und deno bereits installiert.
  • SFTP-Zugang pro Bot auf Port 2222, mit den Zugangsdaten aus der Karte „Accès SFTP“.

Häufig gestellte Fragen

Welche Node.js-Version soll ich nehmen?

Für ein neues discord.js-v14-Projekt sollten Sie Node.js 18 oder neuer wählen, das noch gepflegt wird. Ältere Versionen verursachen irgendwann Sicherheitsprobleme.

Soll ich den Ordner node_modules hochladen?

Nein. Er ist schwer, und der kostenlose Speicher umfasst 715 MB. Laden Sie package.json und package-lock.json hoch und lassen Sie die Installation den Ordner neu erstellen.

Warum zeigt der Bot Used disallowed intents an?

Der Code fordert einen privilegierten Intent an, etwa MessageContent, der im Discord-Entwicklerportal nicht aktiviert ist. Aktivieren Sie ihn und starten Sie den Bot neu.