Hvordan man laver robotter til musik i discard

Anonim

Hvordan man laver robotter til musik i discard

I denne artikel vil vi tale om manuelt at skabe en bot til afspilning af musik i Discord. Du kan blot kopiere hele indsendt kode, og redigere det for dig selv, hvis du ejer JavaScript færdigheder. Den bot blev skabt af os, men på nogle stadier brugeren kan stadig står over for forskellige problemer, så vi råder dig til omhyggeligt at læse ikke kun vores instruktioner, men også optræder på skærmen fejlkoder, hvis der er en sådan.

Hvis det viser sig, at dette materiale også er kompliceret for dig eller ikke egnet til andre grunde, bruge færdiglavede gratis robotter til at spille musik. Artiklen på nedenstående link kan du finde detaljerede oplysninger om, og du kan gennemføre opgaven.

Læs mere:

Tilføjelse af en musikalsk bot til serveren i Discord

Afspil musik bot i Discord

Trin 1: Oprettelse af en ny ansøgning

Hver bot for udsmid skal være registreret på den officielle portal for udviklere. Så du får adgang til alle de nødvendige indstillinger i forbindelse med de tilladelser, og den generelle opførsel af bot, kan du kopiere linket til sin tilladelse i den personlige server og bruge den unikke token, som er nødvendig for yderligere udvikling af kommandoer.

Gå til den officielle hjemmeside for Discord Developer Portal

  1. Brug linket ovenfor for at åbne portalen hovedside for udviklere, logge på Discord personlige konto, og klik på "Ny ansøgning" for at oprette en ny ansøgning.
  2. Gå til registrering af en ny ansøgning for at skabe en musikalsk bot i Discord

  3. Indtast sit navn på grund af den unikke, fordi hvis der er mange bots med samme navn, vil det ikke være muligt at skabe det - en meddelelse om omdøbning anmeldes.
  4. Indtast navnet, når du registrerer en ny ansøgning om at skabe en musikalsk bot i Discord

  5. Ved afslutning, åbne menuen på sitet og vælg kategorien "Bot".
  6. Gå til at forbinde komponenterne i en ny ansøgning for at skabe en musikalsk bot i Discord

  7. Overfor "Build-A-Bot" streng klik på "Tilføj Bot".
  8. Tilslutning knap komponenter af en ny ansøgning for at skabe en musikalsk bot i Discord

  9. Bekræfte tilføjelsen af ​​bot for det valgte program.
  10. Bekræftelse af komponenter til en ny ansøgning for at skabe en musikalsk bot i Discord

  11. Gennem en velkendt menu, gå til «OAuth2».
  12. Gå til siden Indstillinger program til at skabe en musikalsk bot i Discord

  13. Dette afsnit er ansvarlig for de generelle parametre for bot og dens tilladelse. I "Scopes" blok, markere "Bot" afsnit.
  14. Vælg den type anvendelse af ansøgningen for at skabe en musikalsk bot i Discord

  15. På listen over tilladelser, skal du sørge for at aktivere forbindelsen til talekanaler og evnen til at tale, da det er nødvendigt for yderligere udsendelse musik.
  16. Søg efter stemmen kanal tilladelser, når du konfigurerer en ansøgning om at skabe en musikalsk bot i Discord

  17. Den bot bør være i stand til at læse og sende beskeder, så glem ikke at aktivere disse indstillinger i afsnittet med tekst chat tilladelser. Selvfølgelig kan du give alle tilladelser på en gang, men denne fremgangsmåde er utrolig, især i tilfælde, hvor man foretager en bot til en masse bruger.
  18. Søg efter tekst kanal tilladelser, når du konfigurerer en ansøgning om at skabe en musikalsk bot i Discord

  19. Så snart indstillingen tilladelse er fuldført, kopiere linket for den første godkendelse af bot på serveren, for ellers tilføje det, indtil det viser sig.
  20. Kopireference tilladelse redskab til at skabe en musikalsk bot i Discord

  21. Følg dette link og vælge den test server, hvor du ønsker at kontrollere bot.
  22. Første tilladelse efter linket for at skabe en musikalsk bot i Discord

  23. Bekræft opsamling og vente på information om vellykket tilladelse.
  24. Vellykket tilladelse efter et link til at oprette en musikalsk bot i Discord

Nu har du en bot med en unik token, og bot er allerede blevet tilføjet til serveren, men mens i offline-tilstand. For at starte det, vil det have til at udføre et par flere handlinger på den lokale computer, da mens vi ikke losse Boting Boting offline drift.

Trin 2: Forberedende foranstaltninger

Forberedende aktioner omfatter oprettelsen af ​​de nødvendige mapper og filer, installation af værktøjer og afhængigheder for dem. Der er intet kompliceret i dette, behøver du kun at gøre hver handling til gengæld omhyggeligt at følge de fejl i noget tidspunkt.

  1. Opret en mappe med navnet på den bot. Du kan vælge ethvert sted, men hjemmemappen for brugeren er bedst egnet til dette.
  2. Tilføjelse af en brugerdefineret mappe for at skabe en musikalsk bot i Discord

  3. Opret to filer i det: "Config.json" og "index.js". I den første installere den samlede konfiguration af bot - dens præfiks og unik token, og i det andet - hele programkoden med kommandoer og fælles opgaver dette værktøj.
  4. Tilføjelse af filer til en brugerdefineret mappe for at skabe en musikalsk bot i Discord

  5. Til arbejde bot får brug Node.js. Dette værktøj er designet til at starte scripts på den lokale computer. Følg nedenstående link og downloade sin installatør til Windows.

    Hent node.js fra den officielle hjemmeside

  6. Download af en komponent til at skabe en musikalsk bot i Discord

  7. Forvent at hente den eksekverbare fil eksekverbar, køre det og give det enkel installation procedure, at følge anvisningerne på skærmen.
  8. Løb og installere en komponent til at skabe en musikalsk bot i Discord

  9. Efter at åbne "Command Line" bekvemt for dig, for eksempel, indtastning CMD i "Kør" nytte (det starter nøgler kombination Win + R).
  10. Kører kommandolinjen for at skabe en musikalsk bot i Discord

  11. Installer modulet til arbejdet med Discord API, som kaldes "discord.js". For at gøre dette, i konsollen vindue, der åbnes, skal du indtaste NPM installere discord.js ffmpeg-binære filer opsscript YTDL-Core --Save og tryk på ENTER - så du straks tilføje alle de nødvendige afhængigheder.
  12. Ekstra moduler indstilling kommando til at oprette et musikalsk bot i Discord

  13. Vent på meddelelser på skærmen på en vellykket installation, uden at lukke det aktuelle konsol-vinduet. Hvis fejl vises, lære deres kode og bruge søgemaskine til at finde en afgørelse arbejde på fora eller den officielle hjemmeside.
  14. Installation proces med ekstra moduler for at skabe en musikalsk bot i Discord

Som et resultat, bør brugerens hjemmemappe vises filer i forbindelse med node.js komponent og tilføjede efter modulet. Genstart computeren, så botten ikke har svært ved opstart, og derefter gå videre til næste trin.

Trin 3: Redigering Bot konfigurationsfil

Du ved allerede, at der i den oprettede bot konfigurationsfil vil der være alt et par rækker af den kode, der er ansvarlig for den anvendte præfiks (symbol inden de kommer ind kommandoen på serveren) og en unik token, der definerer applikationens i API. For at opfylde alle yderligere foranstaltninger, anbefaler vi at downloade et program med JS syntaks support eller enhver avanceret teksteditor, hvis dette ikke er blevet gjort tidligere. Artiklen på nedenstående link du vil være i stand til at gøre dig bekendt med de tilgængelige egnede løsninger.

Læs mere: Valg af udviklingsmiljø til programmering

Så snart det er installeret på computeren, og klar til at arbejde, kan du roligt begynde at redigere konfigurationsfilen, indtastning brugerdata der.

  1. Kør config.js fil via en teksteditor eller udviklingsmiljø, skal du indsætte koden nedenfor.

    {

    "Præfiks": "!"

    "Token": "Din-Toke"

    }

    Ændring af præfiks, når du redigerer en konfigurationsfil til at skabe en musikalsk bot i Discord

    Skift præfikset i dobbelte anførselstegn til det ønskede eller efterlade et udråbstegn. Et eksempel på en kommando ved hjælp dette tegn ligner denne :! Play.

  2. Gå til din bot på udviklingen portalen, finde en unik token der og kopiere det.
  3. Kopiering unikke tokens til at skabe en musikalsk bot i Discord

  4. Indsæt din-Toke inspektion i stedet uden at slette dobbelte anførselstegn.
  5. Udskiftning af et unikt token i en konfigurationsfil for at oprette en musikalsk bot i Discord

  6. Gem ændringerne og luk denne fil. Forresten kan du udføre den samme handling gennem en standard "notesbog".
  7. Brug af en teksteditor, når du redigerer en konfigurationsfil til at oprette en musikalsk bot i Discord

På disse handlinger med konfigurationsfilen er der gennemført, er der ikke længere, at du skal ordinere en enkelt kode kode. Luk det, uden at glemme at gemme redigerne, og fortsæt til yderligere at skrive botten for at afspille musik.

Trin 4: Forsøg starter bot

For det første skal vi sørge for, at botten generelt kører på serveren og går til online-tilstand, det vil være nødvendigt at skrive sin hoveddel af koden til indeks.js, og brug derefter node.js til at starte.

  1. Gennem udviklingsmiljøet eller den valgte teksteditor skal du åbne den nævnte fil til redigering.
  2. Åbning af kodeindtastningsfilen for at oprette en musikalsk bot i Discord

  3. Indsæt den blok af kode, der er ansvarlig for afhængighedsinstallationen og angiver de anvendte moduler:

    Const discord = kræve ('discord.js');

    const {

    Præfiks,

    polet

    } = Kræver ('./ config.json');

    const YTDL = kræve ('ytdl-core');

  4. Afhængighedsdeklarationskode for at skabe en musikalsk bot i Discord

  5. Ved hjælp af de tidligere specificerede tokens skal du oprette en klient og login, som udføres ved kun at indtaste to enkle linjer:

    Const client = nyt discord.client ();

    Klient.login (token);

  6. Tilføjelse af en klient og tokens for at skabe en musikalsk bot i Discord

  7. Det forbliver kun at angive de sidste grundlæggende linjer for at lytte til botten.

    Klient.once ('klar', () => {

    Console.log ('Ready!');

    });

    Klient.once ('reconnecting', () => {

    Console.Log ('Tilslutning!');

    });

    Klient.once ('Afbryd', () => {

    Console.log ('Afbryd!');

    });

  8. Kommandoer ved tilslutning i kode for at oprette en musikalsk bot i Discord

  9. Udvid menuen "Fil" og gem de foretagne ændringer.
  10. Gem ændringer efter redigeringskode for at oprette en musikalsk bot i Discord

  11. Kør konsollen igen på en bekvem måde.
  12. Kører kommandolinjen for at tænde botten for at oprette en musikalsk bot i Discord

  13. Indtast kommandoen node index.js for at starte bot scriptet.
  14. Bot inspektionshold for at skabe en musikalsk bot i Discord

  15. Hvis dets filer ikke er placeret i brugerens hjemmekatalog, skal du efter node angive en komplet lad dem.
  16. Indtast en anden bot-kontaktkommando for at oprette en musikalsk bot i Discord

  17. Den succesfulde lancering af bot er angivet med den, der er optrådte indskrift "Klar!".
  18. Resultatet af en vellykket lancering for at skabe en musikalsk bot i Discord

  19. Åbn Discord og sørg for, at botten gik til status for "Online".
  20. Tjek bot online for at oprette en musikalsk bot i Discord

Trin 5: Skrivning af hovedkoder for den musikalske bot

Den mest komplicerede proces forblev - at skrive den grundlæggende kode for den musikalske bot. Der er en liste over opgaver, det skal udføre: læse beskeder og forarbejdning kommandoer, definition af en sang navn eller dets adresse, der forbinder til talekanal og afspilning. Tilladelser på alt dette bot er, så skal du blot angive handlinger ved hjælp JavaScript-funktioner, som udføres i den samme "index.js" fil.

Redigering kode for at sikre normal drift af den musikalske bot i Discord

Tilføj en simpel funktion til at læse meddelelser:

Client.on ( 'Message', Async Message => {

}

Den består af kun to linjer, men vil tillade botten til at tage en brugerdefineret forespørgsel og behandlet korrekt. Det kan siges, at dette er en af ​​de vigtigste hold til bots af alle typer. Sørg for at tilføje ignorerer beskeder fra andre robotter ved at indtaste

hvis (message.author.bot) tilbagevenden;

Derved undgår konflikter, mens du bruger flere robotter på serveren samtidigt. Dernæst vil det være nødvendigt at kontrollere præfikset så bot accepterede holdet eller returneres det.

hvis (Message.content.startSwith (Prefix)!) Return;

Kontrol lanceret kommandoer udføres ved hjælp af simple IF operatører og designet i vores tilfælde ser således ud:

Const ServerQueue = Queue.Get (Message.Guild.ID);

hvis (Message.Content.startSwith ( `$ {prefix} play`)) {

EXECUTE (Message, ServerQueue);

Vend tilbage;

} Else if (message.content.startswith ( `$ {prefix} Skip`)) {

SKIP (Message, ServerQueue);

Vend tilbage;

} Else if (message.content.startSwith ( `$ {prefix} stop`)) {

Stop (Message, Serverqueue);

Vend tilbage;

} Else {

Message.Channel.send ( 'Du skal bruge den eksisterende kommando!')

}

Bemærk venligst, at SEND ( '') funktion sender den besked til brugeren, hvis det pludselig kommer ind i ikke-arbejdende kommando. Denne meddelelse kan du redigere, ændre indskriften i anførselstegn.

Nu bot lært at tage kommandoer, men indtil det kan interagere med dem, da de handlinger, er ikke specificeret. Først tilføje Play-kommandoen, som er ansvarlig for afspilning. For det, er et array nødvendigt med følgende form:

Const Kø = Nyt kort ();

Han sender alle kommandoer i køen og gør sangene til at spille, når den foregående ene ender. Dernæst vil det være nødvendigt at oprette en funktion, der vil kontrollere, om brugeren er tilsluttet til stemmen kanal og om bot er de tilsvarende tilladelser.

ASYNC FUNCTION EXECUTE (MESSAGE, SERVERQUEUE) {

const args = message.content.split ( '');

Const VoiceChannel = Message.Member.VoiceChannel;

if (! VoiceChannel) Retur Message.Channel.send ( 'For at lytte til musik, du har brug for at være i stemmen kanal!');

const Tilladelser = VoiceChannel.permissionSFOR (Message.Client.user);

Hvis (! Permissions.has ( 'Tilslut') ||! Permissions.has ( 'tale')) {

Retur Message.channel.send ( 'Jeg har brug for tilladelser til at deltage og tale din stemme kanal!');

}

}

Næste Handling - Tilslutning af YTDL bibliotek, da denne bot vil læse navnet på sangen på linket fra YouTube, hvorefter det spilles på serveren. Det vil tage for at indsætte et lille stykke kode indsats.

Const Songinfo = afvente ytdl.getinfo (args [1]);

Const Song = {

Titel: Songinfo.title,

URL: Songinfo.Video_URL,

};

Den næste blok af kode giver dig mulighed for at forstå, om der er sange i køen, eller du kan straks oprette forbindelse til talekanalen og starte afspilningen.

Hvis (! Serverqueue) {

} Ellers {

Serverqueue.songs.push (sang);

Console.log (serverqueue.songs);

Return Message.Channel.Send (`$ {song.title} er blevet tilføjet til køen!`);

}

Næste kommer lidt kompliceret til nybegynderprogrammerer en kontraktsordning, der tilføjer en sang til en matrix og gør det samme hver gang du indtaster! Spil, kontrol af køen og vælger den rigtige handling. Vær opmærksom på de fremsatte bemærkninger, som giver dig mulighed for at håndtere alle subtiliteter.

// Oprettelse af en kontrakt for køen

Const queueconstruct = {

Textchannel: Message.Channel,

Voicechannel: Voicechannel,

Forbindelse: null,

Sange: [],

VOLUME: 5,

Spille: Sandt,

};

// Set kø med vores kontrakt

kø.set (message.guild.id, queueconstruct);

// Indsæt sammensætningen i vores array af sange

queueconstruct.songs.push (sang);

prøve {

// Her forsøger vi at deltage i Voice Chat og gemme forbindelsen i objektet

var forbindelse = afventer voicechannel.join ();

queueconstruct.connection = forbindelse;

// Ring til afspilningsfunktionen for at starte sangen

Play (message.guild, queueconstruct.songs [0]);

} Fange (fejl) {

// Vis en fejlmeddelelse, hvis bot ikke kan deltage i stemmeknappen

Console.log (Err);

kø.Delete (message.guild.Id);

Returnere besked.Channel.Send (fejl);

}

Med køen er alt klart, men stadig ikke afspilning af sange, fordi der ikke er nogen opgave til afspilningsfunktionen. For at gøre dette i koden er det nødvendigt at tilføje struktur

Funktionspil (Guild, Song) {

Const serverqueue = kø.get (guild.id);

Hvis (! Sang) {

Serverqueue.voicechannel.leave ();

kø.Delete (guild.Id);

Vend tilbage;

}

}

Afspilning begynder ved hjælp af funktionen Playstream () og det angivne link til sporet.

Const dispatcher = serverqueue.connection.Playsstream (YTDL (song.url))

.on ('ende', () => {

Console.log ('musik er overstået!');

// fjerner den færdige sang fra køen

serverqueue.songs.shift ();

// igen forårsager afspilningsfunktion med følgende sang

Spil (Guild, Serverqueue.songs [0]);

})

.on ('fejl', fejl => {

Console.Error (fejl);

});

dispatcher.setvolumelogarithmic (serverqueue.volume / 5);

Hvis du vil tilføje en sangspidsfunktion, f.eks. Når du beslutter dig for at afspille en afspilningsliste, skal du først tage sig af den relevante kommando, og tilsæt derefter et sådant fragment:

Funktionsspring (besked, serverqueue) {

hvis (! besked.member.voicechannel) returnere besked.Channel.Send ('Du skal være i en talekanal for at stoppe musik!');

Hvis (! Serverqueue) returnerer besked.Channel.Send ('Der er ingen sang, jeg kunne springe over!');

Serverqueue.connection.dispatcher.end ();

}

Ca. den samme ordning fungerer også stopfunktionen, men blokken med koden køber et lidt anderledes udseende:

Funktionsstop (besked, serverqueue) {

hvis (! besked.member.voicechannel) returnere besked.Channel.Send ('

Du skal være i talekanalen for at stoppe musik! ');

Serverqueue.songs = [];

Serverqueue.connection.dispatcher.end ();

}

Tænk, at de oplysninger, der præsenteres ovenfor er egnet udelukkende til de brugere, der allerede er bekendt med JavaScript eller kun beskæftiget med at studere og besluttede at skabe en musikalsk bot. Hvis du ikke ejer færdigheder i almindelighed og de angivne blokke med den kode, du ikke siger noget som helst, blot indsætte hele kildekoden i filen, erstatte de beskeder fra botten til russisk (de er i anførselstegn), og gem den skifter. Alle kildekode har denne form:

Udvendig af den fulde kildekode for at skabe en musikalsk bot i Discord

Const Discord = Kræver (discord.js ');

const {

Præfiks,

polet

} = Kræver ( './ config.json');

const YTDL = kraeve (YTDL-CORE ');

Const Client = Ny discord.client ();

Const Kø = Nyt kort ();

Client.ONCE ( 'Klar', () => {

Console.log ( 'Klar!');

});

Client.Once ( 'gentilslutning' () => {

Console.log ( 'gentilslutning!');

});

Client.ONCE ( 'DISCONNECT', () => {

Console.log ( 'Afbryd!');

});

Client.on ( 'Message', Async Message => {

hvis (message.author.bot) tilbagevenden;

hvis (Message.content.startSwith (Prefix)!) Return;

Const ServerQueue = Queue.Get (Message.Guild.ID);

hvis (Message.Content.startSwith ( `$ {prefix} play`)) {

EXECUTE (Message, ServerQueue);

Vend tilbage;

} Else if (message.content.startswith ( `$ {prefix} Skip`)) {

SKIP (Message, ServerQueue);

Vend tilbage;

} Else if (message.content.startSwith ( `$ {prefix} stop`)) {

Stop (Message, Serverqueue);

Vend tilbage;

} Else {

Message.Channel.send ( 'Du skal indtaste en gyldig kommando!')

}

});

ASYNC FUNCTION EXECUTE (MESSAGE, SERVERQUEUE) {

const args = message.content.split ( '');

Const VoiceChannel = Message.Member.VoiceChannel;

hvis Return Message.Channel.send ( 'Du er nødt til at være i en Voice Channel til at afspille musik!') (VoiceChannel!);

const Tilladelser = VoiceChannel.permissionSFOR (Message.Client.user);

Hvis (! Permissions.has ( 'Tilslut') ||! Permissions.has ( 'tale')) {

Retur Message.Channel.send ( 'I Need Tilladelser til Deltag og tale i Your Voice Channel!');

}

Const Songinfo = afvente ytdl.getinfo (args [1]);

Const Song = {

Titel: Songinfo.title,

URL: Songinfo.Video_URL,

};

Hvis (! Serverqueue) {

Const QueueContruct = {

TextChannel: Message.Channel,

VoiceChannel: VoiceChannel,

Tilslutning: NULL,

Sange: [],

VOLUME: 5,

Afspilning: Sandt nok,

};

queue.set (Message.Guild.ID, QueueContruct);

queuecontruct.songs.push (SONG);

prøve {

var forbindelse = afvente voicechannel.join ();

queuecontruct.connection = Forbindelse;

Play (Message.Guild, Queuecontruct.songs [0]);

} Catch (ERR) {

Console.log (ERR);

queue.delete (Message.Guild.ID);

Return Message.Channel.send (ERR);

}

} Else {

ServerQueue.Songs.push (Song);

Console.log (Serverqueue.songs);

Retur Message.Channel.send ( `$ {Song.title} er blevet føjet til køen`!);

}

}

FUNKTION SKIP (Message, Serverqueue) {

hvis (message.member.voiceChannel!) Return Message.Channel.send ( 'Du er nødt til at være i en talekanal til Stop The Music!');

hvis (ServerQueue!) Return Message.Channel.send ( 'Der er ingen sang, at jeg kunne Skip!');

ServerQueue.connection.dispatcher.end ();

}

FUNKTION STOP (Message, Serverqueue) {

hvis (message.member.voiceChannel!) Return Message.Channel.send ( 'Du er nødt til at være i en talekanal til Stop The Music!');

ServerQueue.Songs = [];

ServerQueue.connection.dispatcher.end ();

}

Funktion Play (guild, SONG) {

Const ServerQueue = queue.get (guild.id);

Hvis (! Sang) {

ServerQueue.VoiceChannel.Leave ();

queue.delete (guild.id);

Vend tilbage;

}

Const Dispatcher = ServerQueue.Connection.PlayStream (YTDL (Song.url))

.fra ( 'End', () => {

Console.log ( 'Music slut!');

serverqueue.songs.shift ();

Spille (Guild, Serverqueue.songs [0]);

})

.fra ( 'fejl', fejl => {

Console.error (fejl);

});

dispatcher.setvolumelogarithmic (serverqueue.volume / 5);

}

Client.login (Token);

Ved afslutning, er det bedre at genstarte bot, hvorefter du kan gå til din server, oprette forbindelse til talekanalen og indtast en kommando af samspillet, kontrol, hvordan man reagerer på den bot.

Kildetekst Check Team til at skabe en musikalsk bot i Discord

Hvis ovennævnte variant af bot ikke er egnet til dig, kan du finde kildekoderne på samme GitHub og kopiere dem til din computer. Princippet om registrering og lancering forbliver det samme, så hvis det er nødvendigt, skal du blot redigere den færdige kode, og fortsæt derefter med at teste botten.

Søg efter færdige løsninger til oprettelse af en musikalsk bot i Discord

I denne artikel har vi ikke påvirker udledningen af ​​en bot på hosting, distribuere det blandt andre brugere, hvilket skaber en avatar og brugen af ​​åbne steder, hvorfra det kan godkendes. Alt dette er separate processer, der kun skal være involveret, når du har honet din færdighed til at skabe bots og er klar til at distribuere projekter på netværket.

Læs mere