U ovom ćemo članku razgovarati o ručno stvaranju bota za sviranje muzike u neskladu. Možete jednostavno kopirati cijeli dostavljeni kod i urediti ga ako posjedujete JavaScript vještine. Bot je stvorio SAD, ali u nekim fazama korisnik se još uvijek može suočiti s različitim problemima, pa vam savjetujemo da pažljivo čitate ne samo naša uputstva, već i na kodovima greške na ekranu ako postoje.
Ako se ispostavi da je ovaj materijal previše kompliciran za vas ili nije prikladan iz drugih razloga, koristite gotove besplatne botove za reprodukciju muzike. Članak na linku u nastavku naći ćete detaljne informacije o tome i možete implementirati zadatak.
Čitaj više:
Dodavanje muzičkog bota na server u neskladu
Igrajte muziku kroz bot u Discord-u
1. korak: Stvaranje nove aplikacije
Svaki bot za odbacivanje mora biti registriran na službenom portalu za programere. Tako da pristup svim potrebnim postavkama u vezi sa dozvolama i opšte ponašanje bot, možete kopirati link na svoj ovlašćenja u ličnom server i koristiti jedinstveni token, koji je potreban za daljnji razvoj komandi.
Idite na zvaničnom sajtu razdora Developer Portal
- Upotrijebite gornju vezu da biste otvorili glavnu stranicu portala za programere, prijavite se na Discord Lični račun i kliknite na "Novu aplikaciju" da biste stvorili novu aplikaciju.
- Unesite svoje ime, s obzirom na jedinstvenost, jer ako postoje mnogi robota sa istim imenom, to neće biti moguće stvoriti - obavijest o preimenovanju je obaviješten.
- Po završetku otvorite meni na web mjestu i odaberite kategoriju "Bot".
- Nasuprot niza "Build-A-Bot" kliknite na "Dodaj bot".
- Potvrdite dodavanje bota za odabranu aplikaciju.
- Kroz poznati meni idite na «OAUTH2».
- Ovaj je odjeljak odgovoran za opće parametre bota i njegove autorizacije. U "Dometi" blok, označite "Bot" stav.
- Na listi dozvola, budite sigurni da biste aktivirali vezu sa govornih kanala i sposobnost da se govori, kao što je potrebno za daljnje emitiranje glazbe.
- Bot bi trebao biti u mogućnosti za čitanje i slanje poruka, tako da ne zaboravite da omogućite ove opcije u odjeljku s tekstom chat dozvole. Naravno, možete osigurati sve dozvole odjednom, ali ovaj pristup je neverovatno, posebno u slučajevima gdje napraviti bot za masovnu korisnika.
- Čim podešavanje dozvola je završen, kopirajte link za prvu odobrenja bot na serveru, jer u suprotnom dodajte ga dok ne ispada.
- Pratite ovaj link i odaberite test server gdje želite provjeriti bot.
- Potvrdi hvatanje i čekanja za informacije o uspješnim odobrenja.
Sada imate bota sa jedinstvenim token, a bot je već dodan na server, ali dok je u offline režimu. Da biste ga pokrenuti, to će morati izvesti nekoliko akcija više na lokalnom računalu, jer dok ne izvadite Boting Boting za odjavljen rad.
Korak 2: Pripremne radnje
Pripremne radnje uključuju stvaranje potrebnih direktorija i datoteka, instalacija alata i zavisnosti za njih. Ne postoji ništa komplicirano u tome, potrebno je samo da se svaku radnju u red, pažljivo nakon greške u bilo kojoj fazi.
- Kreiranje foldera sa imenom bot. Možete odabrati bilo koje mjesto, ali dom folder korisnika je najbolje odgovara za to.
- Stvoriti dvije datoteke u njemu: "Config.json" i "index.js". U prvom instalirati ukupne konfiguracije bot - njegov prefiks i jedinstven način, au drugom - čitav program kod sa komandama i uobičajene zadatke ovog alata.
- Za rad bot će trebati Node.js. Ovaj alat je dizajniran za početak skripte na lokalnom računalu. Pratite link ispod i preuzeti svoje Installer za Windows.
Preuzimanje node.js sa zvaničnog sajta
- Očekuju da će preuzeti izvršnu datoteku izvršne, pokrenite ga i proći jednostavnu proceduru instalacije, slijedeći upute prikazane na ekranu.
- Nakon toga, otvorite "Command Line" pogodan za vas, na primjer, unos CMD u komunalnom "Run" (to pokreće Win + R kombinaciju tastera).
- Ugradite modul za rad sa razdora API, koji se zove "discord.js". Da biste to učinili, u prozoru konzole da se otvori, unesite NPM instalirati discord.js ffmpeg-binarne opsscript YTDL-Core --Save i pritisnite ENTER - tako da odmah dodati sve potrebne zavisnosti.
- Čekati za obavijesti na ekranu na uspješne instalacije, bez zatvaranja trenutne konzole prozor. Ako se pojave greške, uče kod i koristiti tražilice pronaći posao odluku o forumima ili na zvaničnom sajtu.
Kao rezultat toga, domaći folder korisnika bi se trebao pojaviti datoteke povezane sa Node.js komponentu i dodao nakon modula. Ponovo pokrenite računalo tako da bot nema poteškoća pokretanje, a zatim idite na sljedeći korak.
Korak 3: Montaža Bot Configuration File
Vi već znate da je u stvorio bot konfiguracijske datoteke će biti par redova koda koji je odgovoran za polovnih prefiks (simbol prije ulaska komande na serveru) i jedinstveni token koji definira primjenu u API-ja. Da ispuni sve dalje radnje, preporučujemo skidanje program sa JS podršku sintakse ili bilo napredni uređivač teksta, ako to nije ranije učinjeno. U članku na link ispod da ćete biti u mogućnosti da se upoznate sa dostupnim odgovarajuće rešenje.
Opširnije: Izbor razvojno okruženje za programiranje
Čim je instaliran na računaru i spreman za rad, možete sigurno početi da uređivanje konfiguracijsku datoteku, unos korisničkih podataka tamo.
- Pokrenite datoteku config.js kroz tekst editor ili razvojno okruženje, ubacite kod ispod.
{
"Prefiks": "!",
"Token": "Tvoja-toke"
}
Promijeniti prefiks u dvostrukim navodnicima do željene ili ostaviti znak uzvika. Primjer komande koristeći ovaj znak izgleda ovako :! Play.
- Idite na svoj bot na portalu razvoj, pronađite jedinstveni token tamo i kopirajte ga.
- Ubacite-toke inspekcije umjesto bez brisanja dvostrukih navodnika.
- Sačuvajte promjene i zatvorite ovu datoteku. Usput, možete izvesti istu radnju kroz standardni "notebook".
Na ovoj akcije sa datoteku konfiguracije su završeni, ne postoji više vam je potrebno da se propiše jednu liniju koda. Zatvori, ne zaboravljajući da sačuvate izmjene, a tako i nastaviti dalje pisanje bot za reprodukciju glazbe.
Korak 4: Suđenje Pokretanje Bot
Prvo, moramo biti sigurni da je bot se generalno radi na serveru i ide u online modu, to će biti potrebno pisati svoj glavni dio koda za index.js, a zatim koristite Node.js za početak.
- Kroz razvojno okruženje ili urednik izabrani tekst, otvorite navedenom datoteku za uređivanje.
- Umetnite blok koda koji je odgovoran za instalaciju zavisnost i ukazuje na module koristi:
Const Nesloga = potrebne ( 'discord.js');
const {
Prefiks,
žeton
} = Potrebne ( './ config.json');
const YTDL = potrebne ( 'YTDL-CORE');
- Uz pomoć prethodno navedene oznake, stvoriti klijenta i prijava, koja se provodi unošenjem samo dva jednostavna linije:
Const Klijent = new discord.client ();
Client.login (Token);
- Ostaje samo da odredite posljednje osnovne linije za slušanje bot.
Client.ONCE ( 'Ready', () => {
Console.log ( 'Spremni!');
});
Client.Once ( 'ponovnog', () => {
Console.log ( 'ponovnog!');
});
Client.ONCE ( 'DISCONNECT', () => {
Console.log ( 'Disconnect!');
});
- Proširite meni "File" i spremite promene.
- Pokrenite konzola ponovo na jednostavan način.
- Unesite čvor index.js naredbu za pokretanje bot skripte.
- Ako se njegove datoteke ne nalaze u korisničkom home direktorij, poslije čvora morati navesti kompletnu pusti ih.
- Uspješnog lansiranja bot je označen pojavio natpis "Spremni!".
- Otvoren razdora i uvjerite se da je bot otišao u status "online".
Korak 5: Pisanje glavni koder mjuzikla bot
Najsloženiji proces ostao - pisanje osnovni kod za mjuzikl bot. Tu je popis zadataka koje mora obavljati: čitanje poruka i obradu komande, definicija naziv pjesme ili njegovu adresu, povezivanje govornog kanala i reprodukciju. Dozvole na sve ovo bot je, tako da samo treba da odredite akcije koristeći JavaScript funkcije, koje se vrši u istom "index.js" datoteku.
Dodajte jednostavna mogućnost za čitanje poruke:
Client.on ( 'poruke', Async Poruka => {
}
Sastoji se od samo dva reda, ali će omogućiti bot da se običaj upita i ispravno obrađuju. Može se reći da je ovo jedan od najvažnijih timova za robota bilo koje vrste. Budite sigurni da biste dodali ignoriranje poruka od ostalih robota unosom
ako povratak (message.author.bot);
Ovo izbjegava sukobe dok koristite više robota na serveru istovremeno. Dalje, to će biti potrebno provjeriti prefiks tako da je bot prihvatio tim ili vratila.
if (Message.content.startSwith (prefiks)!) povratak;
Provjera pokrenula naredbe se vrši jednostavnim IF operatora, a dizajn u našem slučaju izgleda ovako:
Const ServerQueue = Queue.Get (Message.Guild.ID);
if (Message.Content.startSwith ( `$ {prefiksom} play`)) {
EXECUTE (Poruka, ServerQueue);
Povratak;
} Else if (message.content.startswith ( `$ {prefiksom} Skip`)) {
SKIP (Poruka, ServerQueue);
Povratak;
} Else if (message.content.startSwith ( `$ {prefiksom} stop`)) {
Stop (Poruka, Serverqueue);
Povratak;
} Else {
Message.Channel.send ( 'Morate koristiti postojeće komandu!')
}
Imajte na umu da je SEND ( '') funkcija šalje poruku korisniku ako se iznenada uđe u komandu neradni. Ova poruka možete uređivati, mijenja natpis pod navodnicima.
Sada je bot naučili da se naredbe, ali sve dok se ne može komunicirati s njima, s obzirom da akcije nisu navedeni. Prvo dodajte naredbu Play, koja je odgovorna za reprodukciju. Za to, niz je potrebna sa sljedeći obrazac:
Const Queue = Nove Karta ();
On šalje sve komande u redu i čini pjesme da igra samo kada je prethodni krajevima. Dalje, to će biti potrebno da se stvori funkciju koja će provjeriti da li je korisnik spojen na govorni kanal i da li je bot je odgovarajuće dozvole.
ASYNC FUNKCIJA Izvrši (PORUKA, SERVERQUEUE) {
const args = message.content.split ( '');
Const VoiceChannel = Message.Member.VoiceChannel;
if (! VoiceChannel) Povratak Message.Channel.send ( 'Da slušati muziku, morate biti u govorni kanal!');
const Dozvole = VoiceChannel.permissionSFOR (Message.Client.user);
If (! Permissions.has ( 'Connect') ||! Permissions.has ( 'govore')) {
Povratak Message.channel.send ( 'Moram dozvole da se pridruže i govoriti svoj glas kanal!');
}
}
Sljedeća Akcija - Povezivanje YTDL biblioteku, jer to bot će pročitati ime pjesme na link sa YouTube, nakon čega se igra na serveru. Proći će da ubacite komadić koda umetak.
Const Songinfo = Await ytdl.getinfo (args [1]);
Const Song = {
Naslov: Songinfo.title,
URL: Songinfo.Video_URL,
};
Sljedeći blok koda će vam omogućiti da shvatite da li postoje pjesme u red ili možete odmah spojiti na govorni kanal i početak reprodukcije.
If (! Serverqueue) {
} Else {
ServerQueue.Songs.push (Song);
Console.log (Serverqueue.songs);
Povratak Message.Channel.send ( `$ {Song.title} je dodan u red '!);
}
Zatim dolazi malo komplikovano za početnike programere shemu ugovor koji dodaje pjesmu u niz i čini isto svaki put kada uđete! Play provjeru red i odabir prave akcije. Obratite pažnju na komentare predstavio, što vam omogućava da se nosi sa svim suptilnosti.
// Stvaranje ugovor za red
Const QueueContruct = {
TextChannel: Message.Channel,
VoiceChannel: VoiceChannel,
Priključak: NULL,
Pjesme: [],
VOLUME: 5,
Playing: Istina,
};
// Set red sa našim ugovorom
queue.set (Message.Guild.ID, QueueContruct);
// Umetnite sastav u naš niz pjesama
queuecontruct.songs.push (SONG);
try {
// Ovdje mi pokušavamo da se pridruže glas chat i spasiti vezu u objektu
var veze = Await voicechannel.join ();
queuecontruct.connection = priključku;
// Pozivanje funkcije za reprodukciju za početak pjesmu
Play (Message.Guild, Queuecontruct.songs [0]);
} Catch (ERR) {
// Prikaz poruka o grešci ako bot ne može pridružiti glas chat
Console.log (ERR);
queue.delete (Message.Guild.ID);
Povratak Message.Channel.send (ERR);
}
Uz red, sve je jasno, ali i dalje ne igra pjesama, jer ne postoji zadatak za funkciju Play. Da biste to učinili u kodu je potrebno dodati strukture
Funkcija Play (Guild SONG) {
Const ServerQueue = queue.get (guild.id);
If (! Pjesmu) {
ServerQueue.VoiceChannel.Leave ();
queue.delete (guild.id);
Povratak;
}
}
Reprodukcija počinje pomoću funkcije PlayStream () i navedeni link na stazu.
Const Dispečer = ServerQueue.Connection.PlayStream (YTDL (Song.url))
.on ( 'Kraj', () => {
Console.log ( 'Muzika je gotovo!');
// uklanja gotovih pjesmu iz reda
serverqueue.songs.shift ();
// ponovo izaziva reprodukciju funkcija sa sljedećim pjesmu
Play (Savez, Serverqueue.songs [0]);
})
.on ( "greška", greška => {
Console.error (Greška);
});
dispatcher.setvolumelogarithmic (serverqueue.volume / 5);
Ako želite da dodate funkciju pjesmu skip, na primjer, kada odlučite igrati za reprodukciju, prvo se pobrinuti za odgovarajuću komandu, a zatim dodajte takav fragment:
FUNKCIJA SKIP (Poruka, Serverqueue) {
(! Message.member.voiceChannel) ako Povratak Message.Channel.send ( "Trebalo bi biti u glas kanal stop glazbu! ');
Ako (Serverqueue!) Povratak Message.Channel.send ( "Nema pesma koju sam mogao preskočiti! ');
ServerQueue.connection.dispatcher.end ();
}
Približno istu šemu radi i funkciju stanica, ali je blok sa kodom stekne malo drugačiji izgled:
FUNKCIJA STOP (Poruka, Serverqueue) {
if (! Message.member.VoiceChannel) Povratak Message.Channel.send ( '
Morate biti u govorni kanal da se zaustavi glazbu ')!;
ServerQueue.Songs = [];
ServerQueue.connection.dispatcher.end ();
}
Uzmite u obzir da gore navedene informacije predstavljene je pogodan isključivo za one korisnike koji su već upoznati sa JavaScript jezik ili se bavi samo u proučavanju i odlučili da naprave mjuzikl bot. Ako ne posjedujete vještine u cjelini, a navedeni blokovi sa kodom koji vam ništa reći na sve, jednostavno ubacite čitav izvorni kod u datoteku, zamijenite poruke iz bot na ruski (oni su u navodnicima) i Save the mijenja. Svi izvorni kod ima ove vrste:
Const Nesloga = potrebne ( 'discord.js');
const {
Prefiks,
žeton
} = Potrebne ( './ config.json');
const YTDL = potrebne ( 'YTDL-CORE');
Const Klijent = new discord.client ();
Const Queue = Nove Karta ();
Client.ONCE ( 'Ready', () => {
Console.log ( 'Spremni!');
});
Client.Once ( 'ponovnog', () => {
Console.log ( 'ponovnog!');
});
Client.ONCE ( 'DISCONNECT', () => {
Console.log ( 'Disconnect!');
});
Client.on ( 'poruke', Async Poruka => {
ako povratak (message.author.bot);
if (Message.content.startSwith (prefiks)!) povratak;
Const ServerQueue = Queue.Get (Message.Guild.ID);
if (Message.Content.startSwith ( `$ {prefiksom} play`)) {
EXECUTE (Poruka, ServerQueue);
Povratak;
} Else if (message.content.startswith ( `$ {prefiksom} Skip`)) {
SKIP (Poruka, ServerQueue);
Povratak;
} Else if (message.content.startSwith ( `$ {prefiksom} stop`)) {
Stop (Poruka, Serverqueue);
Povratak;
} Else {
Message.Channel.send ( "Potrebno je da unesete validnu Command! ')
}
});
ASYNC FUNKCIJA Izvrši (PORUKA, SERVERQUEUE) {
const args = message.content.split ( '');
Const VoiceChannel = Message.Member.VoiceChannel;
ako Povratak Message.Channel.send ( "Morate biti u A Voice Channel Play Music! ') (VoiceChannel!);
const Dozvole = VoiceChannel.permissionSFOR (Message.Client.user);
If (! Permissions.has ( 'Connect') ||! Permissions.has ( 'govore')) {
Povratak Message.Channel.send ( "Trebam Dozvole za prijem i govore u Your Voice Channel! ');
}
Const Songinfo = Await ytdl.getinfo (args [1]);
Const Song = {
Naslov: Songinfo.title,
URL: Songinfo.Video_URL,
};
If (! Serverqueue) {
Const QueueContruct = {
TextChannel: Message.Channel,
VoiceChannel: VoiceChannel,
Priključak: NULL,
Pjesme: [],
VOLUME: 5,
Playing: Istina,
};
queue.set (Message.Guild.ID, QueueContruct);
queuecontruct.songs.push (SONG);
try {
var veze = Await voicechannel.join ();
queuecontruct.connection = priključku;
Play (Message.Guild, Queuecontruct.songs [0]);
} Catch (ERR) {
Console.log (ERR);
queue.delete (Message.Guild.ID);
Povratak Message.Channel.send (ERR);
}
} Else {
ServerQueue.Songs.push (Song);
Console.log (Serverqueue.songs);
Povratak Message.Channel.send ( `$ {Song.title} je dodan u red '!);
}
}
FUNKCIJA SKIP (Poruka, Serverqueue) {
if (message.member.voiceChannel!) Povratak Message.Channel.send ( 'Morate biti u govorni kanal za Stop The Music!');
if (ServerQueue!) Povratak Message.Channel.send ( "There Is No Song da sam mogao Idi! ');
ServerQueue.connection.dispatcher.end ();
}
FUNKCIJA STOP (Poruka, Serverqueue) {
if (message.member.voiceChannel!) Povratak Message.Channel.send ( 'Morate biti u govorni kanal za Stop The Music!');
ServerQueue.Songs = [];
ServerQueue.connection.dispatcher.end ();
}
Funkcija Play (Guild SONG) {
Const ServerQueue = queue.get (guild.id);
If (! Pjesmu) {
ServerQueue.VoiceChannel.Leave ();
queue.delete (guild.id);
Povratak;
}
Const Dispečer = ServerQueue.Connection.PlayStream (YTDL (Song.url))
.on ( 'Kraj', () => {
Console.log ( 'Muzika Završeno!');
serverqueue.songs.shift ();
Play (Savez, Serverqueue.songs [0]);
})
.on ( "greška", greška => {
Console.error (Greška);
});
dispatcher.setvolumelogarithmic (serverqueue.volume / 5);
}
Client.login (Token);
Po završetku, bolje je da ponovo pokrenete bot, nakon čega možete ići na vaš server, povezivanje na govorni kanal i unositi komandom interakcije, provjera kako da reaguju na bot.
Ako gornja varijanta bota nije prikladna za vas, možete pronaći izvorne kodove na istom Githipu i kopiranje na računar. Princip registracije i lansira ostaje isti, pa ako je potrebno, jednostavno uredite gotov kod, a zatim nastavite sa testiranjem bota.
U ovom članku nismo utjecali na pražnjenje bot-a na hostingu, distribuiramo ga između ostalih korisnika, stvarajući avatar i upotrebu otvorenih mjesta, odakle ga može biti ovlašteno. Sve je ovo zasebne procese koji bi trebali biti uključeni samo kad ste izvrali svoju vještinu za stvaranje botova i spremni ste za distribuciju projekata na mreži.