In diesem Artikel werden wir darüber reden, dass wir manuell ein Bot zum Spielen von Musik in der Zwietracht erstellen. Sie können den gesamten gesendeten Code einfach kopieren und für sich selbst bearbeiten, wenn Sie JavaScript-Fähigkeiten besitzen. Der Bot wurde von uns erstellt, aber in einigen Schritten kann der Benutzer immer noch unterschiedliche Probleme aufweisen, daher raten wir Ihnen, nicht nur unsere Anweisungen sorgfältig zu lesen, sondern auch auf den Bildschirmfehlercodes, wenn es solche gibt.
Wenn sich herausstellt, dass dieses Material für Sie zu kompliziert ist oder nicht aus anderen Gründen geeignet ist, verwenden Sie fertige kostenlose Bots, um Musik zu spielen. Der Artikel auf dem Link unten finden Sie detaillierte Informationen dazu, und Sie können die Aufgabe umsetzen.
Weiterlesen:
Hinzufügen eines musikalischen Bots an den Server in der Zwietracht
Spielen Sie Musik durch Bot in der Zwietracht
Schritt 1: Erstellen einer neuen Anwendung
Jeder Bot für den Wechsel muss auf dem offiziellen Portal für Entwickler registriert sein. So erhalten Sie Zugriff auf alle erforderlichen Einstellungen, die mit den Berechtigungen und dem allgemeinen Verhalten des Bots verbunden sind. Sie können den Link auf die Ermächtigung auf dem persönlichen Server kopieren und das einzigartige Token verwenden, das für die weitere Entwicklung von Befehlen benötigt wird.
Gehen Sie zur offiziellen Website des Discord Developer Portal
- Verwenden Sie den oben genannten Link, um die Hauptseite des Portals für Entwickler zu öffnen, sich beim Discord Personal Account anzumelden, und klicken Sie auf die "Neue Anwendung", um eine neue Anwendung zu erstellen.
- Geben Sie seinen Namen an, angesichts der Einzigartigkeit, denn wenn es viele Bots mit demselben Namen gibt, ist es nicht möglich, es zu erstellen - eine Benachrichtigung der Umbenennung wird benachrichtigt.
- Öffnen Sie nach Fertigstellung das Menü auf der Site und wählen Sie "Bot" -Kategorie.
- Gegenüber der Zeichenfolge "Build-A-Bot" klicken Sie auf das "Bot hinzufügen".
- Bestätigen Sie den Zusatz des Bots für die ausgewählte Anwendung.
- Gehen Sie durch ein bekanntes Menü auf «OAuth2».
- Dieser Abschnitt ist für die allgemeinen Parameter des Bots und seiner Ermächtigung verantwortlich. Markieren Sie im Block "Scopes" den Absatz "Bot".
- Aktivieren Sie in der Liste der Berechtigungen die Verbindung zu den Sprachkanälen und die Fähigkeit, sich zu sprechen, da es für weitere Rundfunkmusik erforderlich ist.
- Der Bot sollte in der Lage sein, Nachrichten lesen und zu senden. Vergessen Sie nicht, diese Optionen im Abschnitt mit Text-Chat-Berechtigungen zu aktivieren. Natürlich können Sie alle Berechtigungen gleichzeitig anbieten, aber dieser Ansatz ist unglaublich, insbesondere in Fällen, in denen Sie einen Bot für einen Massenbenutzer erstellen.
- Sobald die Berechtigungseinstellung abgeschlossen ist, kopieren Sie den Link für die erste Berechtigung des Bots auf dem Server, da sie sonst hinzufügen, bis er sich herausstellt.
- Folgen Sie diesem Link und wählen Sie den Testserver aus, in dem Sie den Bot überprüfen möchten.
- Capture bestätigen und auf Informationen über eine erfolgreiche Genehmigung warten.
Jetzt haben Sie einen Bot mit einem einzigartigen Token, und der Bot wurde bereits dem Server hinzugefügt, jedoch im Offline-Modus. Um es zu starten, muss es ein paar weitere Aktionen auf dem lokalen Computer durchführen, da wir die Boting-Boting für den Offline-Betrieb nicht entladen.
Schritt 2: Vorbereitende Aktionen
Zubereitende Aktionen beinhalten die Erstellung der erforderlichen Verzeichnisse und Dateien, die Installation von Werkzeugen und Abhängigkeiten für sie. Daraufhin ist nichts kompliziert, Sie müssen nur jede Aktion wiederum angeben, wodurch die Fehler in jeder Bühne sorgfältig folgen.
- Erstellen Sie einen Ordner mit dem Namen des Bots. Sie können einen beliebigen Ort auswählen, aber der Hauptordner des Benutzers eignet sich am besten dafür.
- Erstellen Sie zwei Dateien darin: "config.json" und "index.js". In der ersten Installation der Gesamtkonfiguration des Bots - sein Präfix und ein einzigartiger Token und im zweiten - dem gesamten Programmcode mit Befehlen und gemeinsamen Aufgaben dieses Tools.
- Für die Arbeit des Bots benötigt Node.js. Dieses Tool soll Skripts auf dem lokalen Computer starten. Folgen Sie dem Link unten und laden Sie das Installationsprogramm für Windows herunter.
Laden Sie node.js vom offiziellen Standort herunter
- Erwarten Sie, dass Sie die ausführbare Datei ausführbar herunterladen, leiten Sie sie aus und geben Sie die einfache Installationsvorgänge an, folgen Sie den Anweisungen auf dem Bildschirm.
- Öffnen Sie danach die "Befehlszeile", z. B. für Sie, z. B. CMD in das Dienstprogramm "RUN" eingeben (er startet die Kombination von Win + R-Tasten).
- Installieren Sie das Modul, um mit der Discord-API zu arbeiten, die als "Discord.js" bezeichnet wird. Geben Sie dazu im Konsolenfenster auf, in dem eröffnet wird, die NPM installieren, installieren Sie Discord.js ffmpeg-binaries opsscript ytdl-core --save - und drücken Sie ENTER -, sodass Sie sofort alle erforderlichen Abhängigkeiten hinzufügen.
- Warten Sie auf der Suche nach Benachrichtigungen auf dem Bildschirm auf einer erfolgreichen Installation, ohne das aktuelle Konsolenfenster zu schließen. Wenn Fehler angezeigt werden, lernen Sie den Code und verwenden Sie die Suchmaschine, um eine Arbeitsentscheidung in den Foren oder die offizielle Website zu finden.
Infolgedessen sollte der Home-Ordner des Benutzers mit der Komponente Node.js zugeordnete Dateien aufweisen und nach dem Modul hinzugefügt werden. Starten Sie den Computer neu, damit der Bot nicht Schwierigkeiten beim Start hat, und dann zum nächsten Schritt.
Schritt 3: Bot-Konfigurationsdatei bearbeiten
Sie wissen bereits, dass in der erstellten Bot-Konfigurationsdatei alle Zeilen des Codes vorhanden ist, das für das verwendete Präfix verantwortlich ist (Symbol vor dem Eingabe des Befehls auf dem Server) und ein einzigartiges Token, das den Antrag in der API definiert. Um alle weiteren Aktionen zu erfüllen, empfehlen wir, ein Programm mit JS Syntax-Support oder einem beliebigen erweiterten Texteditor herunterzuladen, falls dies zuvor nicht durchgeführt wurde. Der Artikel zum untenstehenden Link kann sich mit den verfügbaren geeigneten Lösungen vertraut machen.
Lesen Sie mehr: Auswählen der Entwicklungsumgebung für die Programmierung
Sobald es auf dem Computer installiert ist und bereit ist, um zu arbeiten, können Sie sicher, dass Sie die Konfigurationsdatei bearbeiten, die Benutzerdaten dort eingeben.
- Führen Sie die Datei config.js über einen Texteditor oder eine Entwicklungsumgebung aus, fügen Sie den untenstehenden Code ein.
{
"Präfix": "!",
"Token": "Your-Toke"
}
Ändern Sie das Präfix in doppelten Anführungszeichen auf das gewünschte oder verlassen Sie ein Ausrufezeichen. Ein Beispiel für einen Befehl mit diesem Zeichen sieht aus wie folgt aus:!
- Gehen Sie zu Ihrem Bot auf dem Entwicklungsportal, finden Sie dort ein einzigartiges Token und kopieren Sie es.
- Legen Sie Ihre Toke-Inspektion ein, ohne doppelte Anführungszeichen zu löschen.
- Speichern Sie die Änderungen und schließen Sie diese Datei. Übrigens können Sie dieselbe Aktion über ein Standard-Notebook ausführen.
Bei dieser Aktion mit der Konfigurationsdatei sind Sie nicht mehr, um eine einzige Codezeile vorzulegen. Schließen Sie es, ohne zu vergessen, die Änderungen zu retten, und fahren Sie weiter, um den Bot zum Spielen zum Spielen zu schreiben.
Schritt 4: Studie mit dem Start von Bot
Erstens müssen wir sicherstellen, dass der Bot in der Regel auf dem Server ausgeführt wird und in den Online-Modus geht, um seinen Hauptteil des Codes in Index.js zu schreiben, und verwenden Sie den Start von Node.js.
- Öffnen Sie über die Entwicklungsumgebung oder den ausgewählten Texteditor die erwähnte Datei zur Bearbeitung.
- Legen Sie den Codeblock ein, der für die Abhängigkeitsmontage verantwortlich ist, und zeigt die verwendeten Module an:
Const Discord = erfordern ('discord.js');
const {
Präfix,
Zeichen
} = Erfordern ('./ config.json');
const ytdl = erfordern ('ytdl-core');
- Erstellen Sie mit Hilfe der zuvor angegebenen Token einen Client und Login, das durch Eingabe von nur zwei einfachen Zeilen ausgeführt wird:
Const Client = neue Discord.Client ();
Client.login (token);
- Es bleibt nur noch, die letzten Grundzeilen, um den Bot zu hören.
Client.once ('ready', () => {
Console.log ('ready!');
});
Client.once ("erneut verbinden", () => {
Console.log ("erneut verbinden!");
});
Client.once ('trennen', () => {
Console.log ('trennen!');
});
- Erweitern Sie das Menü "Datei" und speichern Sie die vorgenommenen Änderungen.
- Führen Sie die Konsole in bequemer Weise erneut aus.
- Geben Sie den Befehl des Knoten Index.js ein, um das Bot-Skript zu starten.
- Wenn sich seine Dateien nicht im Eigenheimverzeichnis des Benutzers befinden, muss nach dem Knoten ein komplett angeben.
- Die erfolgreiche Einführung des Bots wird durch die erscheinende Inschrift "Fertig!" Angezeigt.
- Öffnen Sie Zwietracht und stellen Sie sicher, dass der Bot zum Status von "Online" ging.
Schritt 5: Schreiben des Hauptcodierers des musikalischen Bots
Der komplexeste Prozess blieb geblieben - den Grundcode für den musikalischen Bot schreiben. Es gibt eine Liste von Aufgaben, die es ausführen muss: Lesen von Nachrichten und Verarbeitung von Befehlen, Definition eines Songnamens oder seiner Adresse, Verbindung zu Sprachkanal und Wiedergabe. Berechtigungen für all diesen Bot ist, sodass Sie nur Aktionen mithilfe von JavaScript-Funktionen angeben müssen, die in derselben Datei "Index.js" ausgeführt werden.
Fügen Sie eine einfache Funktion hinzu, um Nachrichten zu lesen:
Client.on ('Nachricht', Async-Nachricht => {
}
Es besteht aus nur zwei Zeilen, ermöglicht es dem Bot, eine benutzerdefinierte Abfrage anzunehmen und ordnungsgemäß verarbeitet zu werden. Es kann gesagt werden, dass dies eines der wichtigsten Teams für Bots von Bots von Typen ist. Achten Sie darauf, dass Sie Nachrichten von anderen Bots von anderen Bots hinzufügen, indem Sie eingeben
Wenn (message.a author.bot) zurückkehren;
Dies vermeidet Konflikte, während Sie gleichzeitig mehrere Bots auf dem Server verwenden. Als nächstes ist es notwendig, das Präfix zu überprüfen, damit der Bot das Team akzeptiert oder es zurückgegeben hat.
Wenn (! message.content.startwith (Präfix)) zurückgegeben;
Die Überprüfung der gestarteten Befehle erfolgt mit einfachen, falls vorhandenen Bedienern, und das Design in unserem Fall sieht so aus:
Const serverQueue = queue.get (message.guild.id);
if (message.content.startwith (`$ {prefix})) {
Execute (Nachricht, ServerQueue);
Zurückkehren;
} Else if (message.content.startwith (`$ {Prefix} überspringen`)) {
Überspringen (Nachricht, ServerQueue);
Zurückkehren;
} Else if (message.content.startwith (`$ {Prefix} STOP))) {
STOP (Nachricht, ServerQueue);
Zurückkehren;
} ANDERS {
Message.channel.send ('Sie müssen den vorhandenen Befehl verwenden!')
}
Bitte beachten Sie, dass die Funktion Senden ('') die Nachricht an den Benutzer sendet, wenn sie plötzlich in den nicht arbeitenden Befehl eingeht. Diese Nachricht, die Sie bearbeiten können, ändern Sie die Inschrift in Anführungszeichen.
Jetzt hat der Bot gelernt, Befehle anzunehmen, aber bis er mit ihnen interagieren kann, da die Aktionen nicht angegeben sind. Fügen Sie zuerst den Play-Befehl hinzu, der für die Wiedergabe verantwortlich ist. Denn ein Array ist mit dem folgenden Formular erforderlich:
Const Queue = neue map ();
Er sendet alle Befehle in die Warteschlange und lässt die Songs nur dann spielen, wenn der vorherige endet. Als nächstes ist es notwendig, eine Funktion zu erstellen, die prüft, ob der an den Sprachkanal angeschlossene Benutzer angeschlossen ist und ob der Bot die entsprechenden Berechtigungen ist.
Async-Funktion Execute (Nachricht, ServerQueue) {
const Args = message.content.split ('');
Const voicechannel = nachweise.member.voicechannel;
Wenn (! Voicechannel) Return message.Channel.send ('Um Musik anhören, müssen Sie im Sprachkanal sein!');
const-Berechtigungen = voicechannel.permissionsFür (message.client.user);
If (! Permissions.HE ('CONNECT') ||! Berechtigungen.HA ('Speak')) {
Rückgabe von message.channel.send ('Ich brauche Genehmigungen, um Ihren Sprachkanal anzuschließen und zu sprechen! ");
}
}
Nächste Aktion - Anschließen der YTDL-Bibliothek, da dieser Bot den Namen des Songs auf dem Link von YouTube gelesen wird, wonach er auf dem Server abgespielt wird. Es dauert, um ein kleines Stück Codeeinsatz einzufügen.
Const SingInfo = warten ytdl.getInfo (Args [1]);
Const Song = {
Titel: songinfo.title,
URL: songinfo.video_url,
};
Mit dem nächsten Code-Blockblock können Sie verstehen, ob Songs in der Warteschlange vorhanden sind oder Sie sofort mit dem Sprachkanal herstellen und die Wiedergabe starten können.
If (! Serverqueue) {
} ANDERS {
Serverqueue.sons.push (Song);
Console.log (serverQueue.songs);
Die Warteschlange wurde der Warteschlange hinzugefügt.Channel.send (`$ {song.title} wurde der Warteschlange hinzugefügt!`););
}
Als nächstes kommt ein wenig kompliziert für Anfänger-Programmierer ein Vertragsschema, das ein Song in ein Array hinzufügt, und macht jedes Mal, wenn Sie eingeben, dass Sie eingeben, die Warteschlange überprüfen und die richtige Aktion auswählen. Achten Sie auf die dargestellten Kommentare, mit denen Sie mit allen Feinheiten umgehen können.
// Erstellen eines Vertrags für die Warteschlange
Const queuecontruct = {
Textchannel: message.channel,
Voicechannel: Voicechannel,
Verbindung: null,
Lieder: [],
Volumen: 5,
Spielen: wahr,
};
// Warteschlange mit unserem Vertrag einstellen
Warteschlange.Set (message.guild.id, queuecontruct);
// Fügen Sie die Komposition in unsere Anordnung von Songs ein
queuecontruct.songs.push (Song);
Versuchen {
// Hier versuchen wir, dem Voice-Chat anzuschließen und die Verbindung im Objekt zu speichern
VAR-Verbindung = warten voicechannel.join ();
queuecontruct.connection = Anschluss;
// Aufrufen der Wiedergabunktion, um den Song zu starten
Spielen (message.guild, queuecontruct.songs [0]);
} Catch (ERR) {
// Zeigt eine Fehlermeldung an, wenn der Bot nicht dem Voice-Chat anschließen kann
Console.log (ERR);
Warteschlange.Delete (message.guild.id);
Nachricht senden.Kannel.send (ERR);
}
Mit der Warteschlange ist alles klar, aber immer noch keine Songs spielt, da keine Zuordnung für die Wiedergabefunktion vorhanden ist. Um dies in dem Code zu tun, ist es notwendig, die Struktur hinzuzufügen
Funktionsspiel (Gilde, Song) {
Const serverqueue = queue.get (guild.id);
Wenn (! Song) {
ServerQueue.voicechannel.Leave ();
Warteschlange.Delete (Guild.ID);
Zurückkehren;
}
}
Das Spielen beginnt mit der Funktion PlayStream () und dem angegebenen Link zur Spur.
Const dispatcher = serverqueue.connection.playstream (ytdl (song.url))
.on ('ende', () => {{
Console.log ('musik ist vorbei!');
// entfernt den fertigen Song aus der Warteschlange
serverqueue.sons.shift ();
// Erneut bewirkt die Wiedergabunktion mit dem folgenden Song
Play (Gilde, ServerQueue.Songs [0]);
})
.on ('ERROR', ERROR => {
Console.Error (Fehler);
});
Dispatcher.SetVolumelogarithmic (ServerQueue.Volume / 5);
Wenn Sie beispielsweise eine Song-Überspringen hinzufügen möchten, z. B. wenn Sie sich entscheiden, eine Wiedergabeliste abzuspielen, kümmern Sie sich zunächst um den entsprechenden Befehl und fügen Sie ein solches Fragment hinzu:
Funktionspring (Nachricht, ServerQueue) {
Wenn (! message.member.voicechannel) zurücksage.channel.send ('Sie sollten sich in einem Sprachkanal befinden, um Musik aufzuhalten! ");
If (! Serverqueue) return message.channel.send ('Es gibt kein Song, den ich überspringen könnte!');
Serverqueue.connection.dispatcher.end ();
}
Etwa das gleiche Schema funktioniert auch die Haltestellenfunktion, aber der Block mit dem Code erwirbt einen etwas anderen Look:
Funktionsstopp (Nachricht, ServerQueue) {
Wenn (! message.member.voicechannel) zurücksage.channel.send ('
Sie müssen sich im Sprachkanal befinden, um Musik aufzuhalten! ');
ServerQueue.Songs = [];
Serverqueue.connection.dispatcher.end ();
}
Bedenken Sie, dass die oben vorgelegten Informationen ausschließlich für diejenigen Benutzer geeignet sind, die bereits mit der JavaScript-Sprache vertraut sind oder nur studiert und beschlossen, einen musikalischen Bot zu erstellen. Wenn Sie keine Fähigkeiten im Allgemeinen besitzen, und die angegebenen Blöcke mit dem Code, den Sie überhaupt nicht sagen, geben Sie einfach den gesamten Quellcode in die Datei ein, ersetzen Sie die Nachrichten aus dem Bot in Russisch (sie sind in Anführungszeichen) und speichern Sie die Änderungen. Der gesamte Quellcode hat diese Art:
Const Discord = erfordern ('discord.js');
const {
Präfix,
Zeichen
} = Erfordern ('./ config.json');
const ytdl = erfordern ('ytdl-core');
Const Client = neue Discord.Client ();
Const Queue = neue map ();
Client.once ('ready', () => {
Console.log ('ready!');
});
Client.once ("erneut verbinden", () => {
Console.log ("erneut verbinden!");
});
Client.once ('trennen', () => {
Console.log ('trennen!');
});
Client.on ('Nachricht', Async-Nachricht => {
Wenn (message.a author.bot) zurückkehren;
Wenn (! message.content.startwith (Präfix)) zurückgegeben;
Const serverQueue = queue.get (message.guild.id);
if (message.content.startwith (`$ {prefix})) {
Execute (Nachricht, ServerQueue);
Zurückkehren;
} Else if (message.content.startwith (`$ {Prefix} überspringen`)) {
Überspringen (Nachricht, ServerQueue);
Zurückkehren;
} Else if (message.content.startwith (`$ {Prefix} STOP))) {
STOP (Nachricht, ServerQueue);
Zurückkehren;
} ANDERS {
Message.channel.send ('Sie müssen einen gültigen Befehl eingeben!')
}
});
Async-Funktion Execute (Nachricht, ServerQueue) {
const Args = message.content.split ('');
Const voicechannel = nachweise.member.voicechannel;
Wenn (! Voicechannel) Return message.Channel.send ('Sie müssen in einem Sprachkanal sein, um Musik zu spielen! ");
const-Berechtigungen = voicechannel.permissionsFür (message.client.user);
If (! Permissions.HE ('CONNECT') ||! Berechtigungen.HA ('Speak')) {
Rückgabe von message.channel.send ('Ich brauche die Berechtigungen, um in Ihrem Sprachkanal beizutreten und sprechen! ");
}
Const SingInfo = warten ytdl.getInfo (Args [1]);
Const Song = {
Titel: songinfo.title,
URL: songinfo.video_url,
};
If (! Serverqueue) {
Const queuecontruct = {
Textchannel: message.channel,
Voicechannel: Voicechannel,
Verbindung: null,
Lieder: [],
Volumen: 5,
Spielen: wahr,
};
Warteschlange.Set (message.guild.id, queuecontruct);
queuecontruct.songs.push (Song);
Versuchen {
VAR-Verbindung = warten voicechannel.join ();
queuecontruct.connection = Anschluss;
Spielen (message.guild, queuecontruct.songs [0]);
} Catch (ERR) {
Console.log (ERR);
Warteschlange.Delete (message.guild.id);
Nachricht senden.Kannel.send (ERR);
}
} ANDERS {
Serverqueue.sons.push (Song);
Console.log (serverQueue.songs);
Die Warteschlange wurde der Warteschlange hinzugefügt.Channel.send (`$ {song.title} wurde der Warteschlange hinzugefügt!`););
}
}
Funktionspring (Nachricht, ServerQueue) {
Wenn (! message.member.voicechannel) zurücksage.Channel.send ('Sie müssen sich in einem Sprachkanal befinden, um die Musik zu stoppen! ");
if (! serverqueue) return message.channel.send ('Es gibt kein Song, den ich überspringen könnte!');
Serverqueue.connection.dispatcher.end ();
}
Funktionsstopp (Nachricht, ServerQueue) {
Wenn (! message.member.voicechannel) zurücksage.Channel.send ('Sie müssen sich in einem Sprachkanal befinden, um die Musik zu stoppen! ");
ServerQueue.Songs = [];
Serverqueue.connection.dispatcher.end ();
}
Funktionsspiel (Gilde, Song) {
Const serverqueue = queue.get (guild.id);
Wenn (! Song) {
ServerQueue.voicechannel.Leave ();
Warteschlange.Delete (Guild.ID);
Zurückkehren;
}
Const dispatcher = serverqueue.connection.playstream (ytdl (song.url))
.on ('ende', () => {{
Console.log ('musik endete!');
serverqueue.sons.shift ();
Play (Gilde, ServerQueue.Songs [0]);
})
.on ('ERROR', ERROR => {
Console.Error (Fehler);
});
Dispatcher.SetVolumelogarithmic (ServerQueue.Volume / 5);
}
Client.login (token);
Nach der Fertigstellung ist es besser, den Bot neu zu starten, danach können Sie zu Ihrem Server gehen, Verbindung zum Sprachkanal herstellen und einen beliebigen Befehl der Interaktion eingeben, indem Sie die Interaktion eingeben, indem Sie auf den Bot reagieren.
Wenn die obige Variante des Bots nicht für Sie geeignet ist, finden Sie die Quellcodes auf demselben GitHub und kopieren sie an Ihren Computer. Das Prinzip der Registrierung und den Start bleibt gleich, also bearbeiten Sie ggf. einfach den fertigen Code, und fahren Sie dann mit dem Testen des Bots fort.
In diesem Artikel haben wir die Entlastung eines Bots beim Hosting nicht beeinträchtigt, sie unter anderem verteilen, einen Avatar und die Verwendung von offenen Sites erstellen, von wo er autorisiert werden kann. All dies ist separate Prozesse, die nur dann tätig sein sollten, wenn Sie Ihre Fähigkeiten auf die Erstellung von Bots geschlagen haben und bereit sind, Projekte im Netzwerk zu verteilen.