Neste artigo, vamos falar em criar manualmente um bot para tocar música em discórdia. Você pode simplesmente copiar o código inteiro enviado e editá-lo para si mesmo se você possui habilidades de JavaScript. O bot foi criado por nós, mas em algumas etapas, o usuário ainda pode enfrentar problemas diferentes, então aconselhamos que você leia atentamente não apenas nossas instruções, mas também aparecendo nos códigos de erro de tela se houver tal.
Se acontecer que este material é muito complicado para você ou não adequado por outras razões, use bots livres prontos para reproduzir música. O artigo no link abaixo você encontrará informações detalhadas sobre isso e você pode implementar a tarefa.
Consulte Mais informação:
Adicionando um bot musical ao servidor na discórdia
Tocar música através do bot em discórdia
Etapa 1: Criando um novo aplicativo
Cada bot para o descarte deve ser registrado no portal oficial para desenvolvedores. Para que você tenha acesso a todas as configurações necessárias associadas às permissões e ao comportamento geral do bot, você pode copiar o link para sua autorização no servidor pessoal e usar o token exclusivo, que é necessário para o desenvolvimento de comandos.
Vá para o site oficial do Portal do Desenvolvedor de Discórdia
- Use o link acima para abrir a página principal do Portal para desenvolvedores, efetue login na conta pessoal de discórdia e clique no "novo aplicativo" para criar um novo aplicativo.
- Digite seu nome, dada a singularidade, porque se houver muitos bots com o mesmo nome, não será possível criá-lo - um aviso de renomeamento é notificado.
- Após a conclusão, abra o menu no site e selecione "Bot" category.
- Em frente à string "Build-A-Bot", clique no "Adicionar bot".
- Confirme a adição do bot para o aplicativo selecionado.
- Através de um menu familiar, vá para «OAuth2».
- Esta seção é responsável pelos parâmetros gerais do BOT e sua autorização. No bloco "escopos", marque o parágrafo "bot".
- Na lista de permissões, certifique-se de ativar a conexão com canais de voz e a capacidade de falar, pois é necessário para a música de radiodifusão.
- O bot deve ser capaz de ler e enviar mensagens, por isso não se esqueça de habilitar essas opções na seção com permissões de bate-papo de texto. Claro, você pode fornecer todas as permissões de uma vez, mas essa abordagem é incrível, especialmente nos casos em que você faz um bot para um usuário em massa.
- Assim que a configuração de permissão estiver concluída, copie o link para a primeira autorização do bot no servidor, porque adicioná-lo até que apareça.
- Siga este link e selecione o servidor de teste onde você deseja verificar o bot.
- Confirme a captura e aguarde informações sobre a autorização de sucesso.
Agora você tem um bot com um token exclusivo, e o bot já foi adicionado ao servidor, mas enquanto no modo offline. Para iniciá-lo, ele terá que executar mais algumas ações no computador local, pois, enquanto não descarregamos o Boting Boting for offline.
Etapa 2: ações preparatórias
As ações preparatórias incluem a criação dos diretórios e arquivos necessários, a instalação de ferramentas e dependências para eles. Não há nada complicado nisso, você só precisa fazer cada ação, seguindo cuidadosamente os erros em qualquer estágio.
- Crie uma pasta com o nome do bot. Você pode escolher qualquer lugar, mas a pasta Home do usuário é mais adequada para isso.
- Crie dois arquivos: "Config.json" e "index.js". Na primeira instalação, a configuração geral do bot - seu prefixo e token exclusivo, e no segundo - todo o código do programa com comandos e tarefas comuns desta ferramenta.
- Para o trabalho do bot precisará do nó.js. Esta ferramenta é projetada para iniciar scripts no computador local. Siga o link abaixo e baixe o instalador do Windows.
Baixe o Node.js do site oficial
- Espere baixar o executável do arquivo executável, execute-o e passe o procedimento de instalação simples, seguindo as instruções exibidas na tela.
- Depois disso, abra a "linha de comando" conveniente para você, por exemplo, digitando cmd no utilitário "Executar" (ele inicia a combinação Win + R Keys).
- Instale o módulo para trabalhar com a API da discórdia, que é chamada "discord.js". Para fazer isso, na janela do console que abre, insira o NPM Install Discord.js FFMPEG-Binários Opsscript YTDL-Core --Save e pressione Enter - então você adiciona imediatamente todas as dependências necessárias.
- Aguarde as notificações na tela em uma instalação bem-sucedida, sem fechar a janela do console atual. Se aparecerem erros, aprenda seu código e use o mecanismo de pesquisa para encontrar uma decisão de trabalho sobre os fóruns ou o site oficial.
Como resultado, a pasta Home do usuário deve aparecer arquivos associados ao componente Node.js e adicionado após o módulo. Reinicie o computador para que o bot não tenha dificuldade de inicialização, então vá para o próximo passo.
Etapa 3: Editando Arquivo de Configuração do Bot
Você já sabe que no arquivo de configuração do Bot criado haverá todo um par de linhas do código responsável pelo prefixo usado (símbolo antes de inserir o comando no servidor) e um token exclusivo que define o aplicativo na API. Para cumprir todas as ações adicionais, recomendamos o download de um programa com suporte de sintaxe JS ou qualquer editor de texto avançado se isso não foi feito anteriormente. O artigo no link abaixo você será capaz de se familiarizar com as soluções adequadas disponíveis.
Leia mais: Selecionando o ambiente de desenvolvimento para programação
Assim que for instalado no computador e pronto para funcionar, você pode começar com segurança para editar o arquivo de configuração, inserindo dados do usuário lá.
- Execute o arquivo Config.js por meio de um editor de texto ou ambiente de desenvolvimento, insira o código abaixo.
{
"Prefixo": "!",
"Token": "seu-toke"
}
Altere o prefixo em citações duplas para o desejado ou deixe uma marca de exclamação. Um exemplo de um comando usando este sinal é assim:!
- Vá para o seu bot no Portal de Desenvolvimento, encontre um token exclusivo e copie-o.
- Insira a inspeção do seu toke, sem excluir citações duplas.
- Salve as alterações e feche este arquivo. By the way, você pode executar a mesma ação através de um "notebook" padrão.
Nessas ações com o arquivo de configuração são concluídas, não há mais necessidade de prescrever uma única linha de código. Feche-o, sem esquecer de salvar as edições feitas e prossiga para escrever mais o bot para tocar música.
Passo 4: Bot inicial de avaliação
Primeiro, precisamos ter certeza de que o bot é geralmente em execução no servidor e vai para o modo online, será necessário escrever sua parte principal do código para index.js e, em seguida, use o Node.js para iniciar.
- Através do ambiente de desenvolvimento ou no editor de texto selecionado, abra o arquivo mencionado para edição.
- Insira o bloco de código responsável pela instalação da dependência e indica os módulos usados:
Const Discord = requer ('discord.js');
const {
Prefixo,
símbolo
} = Requer ('./ config.json');
const ytdl = requer ('ytdl-core');
- Com a ajuda dos tokens especificados anteriormente, crie um cliente e login, que é realizado, inserindo apenas duas linhas simples:
Cliente const = new discord.client ();
Client.login (token);
- Ele permanece apenas para especificar as últimas linhas básicas para ouvir o bot.
Client.Once ('pronto', () => {
Console.log ('pronto!');
});
Cliente.Once ('reconexando', () => {
Console.log ('reconectando!');
});
Client.Once ('Desconectar', () => {
Console.log ('desconectar!');
});
- Expanda o menu "Arquivo" e salve as alterações feitas.
- Execute o console novamente de uma maneira conveniente.
- Digite o comando nó index.js para iniciar o script bot.
- Se seus arquivos não estiverem localizados no diretório inicial do usuário, após o nó terá que especificar um completo, deixe-os.
- O lançamento bem-sucedido do bot é indicado pela inscrição aparecida "pronta!".
- Abra a discórdia e certifique-se de que o bot fosse ao status de "online".
Passo 5: Escrever o codificador principal do bot musical
O processo mais complexo permaneceu - escrevendo o código básico para o bot musical. Há uma lista de tarefas que deve executar: ler mensagens e comandos de processamento, definição de um nome de música ou seu endereço, conectando ao canal de voz e reprodução. Permissões em todo esse bot é, então você só precisa especificar ações usando funções JavaScript, que são executadas no mesmo arquivo "index.js".
Adicione um recurso simples para ler mensagens:
Cliente.on ('mensagem', assync message => {
}
Consiste em apenas duas linhas, mas permitirá que o bot fique uma consulta personalizada e processada corretamente. Pode-se dizer que esta é uma das equipes mais importantes para os bots de qualquer tipo. Certifique-se de adicionar mensagens ignorando de outros bots inserindo
se (message.author.bot) retorne;
Isso evita conflitos ao usar vários bots no servidor simultaneamente. Em seguida, será necessário verificar o prefixo para que o bot aceitasse a equipe ou voltasse.
if (! message.content.startswith (prefixo)) retorne;
Verificar comandos iniciados é realizado usando os operadores simples, e o design no nosso caso se parece com isso:
Const serverQueue = Queue.Get (Message.guild.id);
if (message.content.startswith (`$ {prefix} play`)) {
Executar (mensagem, serverqueue);
Retornar;
} Else se (mensagem.content.startswith (`$ {prefix} skip`)) {
Skip (mensagem, serverqueue);
Retornar;
} Else se (message.content.startswith (`$ {prefix} parar`)) {
Parar (mensagem, serverqueue);
Retornar;
} OUTRO {
Message.channel.send ('você deve usar o comando existente!')
}
Por favor, note que a função Enviar ('') envia a mensagem para o usuário, se ele inserir de repente o comando não funcionamento. Esta mensagem você pode editar, alterar a inscrição nas citações.
Agora o bot aprendeu a assumir comandos, mas até que possa interagir com eles, já que as ações não são especificadas. Primeiro adicione o comando Play, que é responsável pela reprodução. Para isso, uma matriz é necessária com o seguinte formulário:
Const Queue = novo mapa ();
Ele envia todos os comandos na fila e faz as músicas apenas quando o anterior terminar. Em seguida, será necessário criar uma função que irá verificar se o usuário conectou ao canal de voz e se o bot é as permissões correspondentes.
Função Assíncrona Execute (mensagem, serverqueue) {
const args = message.content.split ('');
Const VoiceChannel = mensagem.Member.VoiceChannel;
if (! voicechannel) retornar mensagem.channel.send ('para ouvir música, você precisa estar no canal de voz!');
Permissões const = VoiceChannel.PermissionsPor (Message.client.user);
If (! Permissions.HAS ('Connect') ||! Permissões.HAS ('Speak')) {
Return Message.channel.Send ('Preciso permissão para participar e falar seu canal de voz!');
}
}
Próxima ação - Conectando a biblioteca YTDL, já que este bot lerá o nome da música no link do YouTube, após o qual ele é jogado no servidor. Ele será necessário para inserir um pequeno pedaço de inserção de código.
Const smostinfo = aguardo ytdl.getinfo (args [1]);
Const sing = {
Título: SongInfo.Title,
URL: Songinfo.video_url,
};
O próximo bloco de código permitirá que você entenda se houver músicas na fila ou você pode se conectar imediatamente ao canal de voz e iniciar a reprodução.
If (! Serverqueue) {
} OUTRO {
Serverqueue.songs.push (canção);
Console.log (serverqueue.songs);
Return Message.channel.Send (`$ {Song.title} foi adicionado à fila!`);
}
Em seguida, vem um pouco complicado para os programadores novatos Um esquema de contrato que adiciona uma música a uma matriz e faz o mesmo toda vez que você entrar! Jogue, verificando a fila e escolhendo a ação certa. Preste atenção aos comentários apresentados, o que permite lidar com todas as sutilezas.
// criando um contrato para a fila
Const Queuecontruct = {
TextChannel: Message.channel,
VoiceChannel: VoiceChannel,
Conexão: nulo,
Músicas: [],
VOLUME: 5,
Jogando: Verdadeiro,
};
// Definir fila com o nosso contrato
file.set (mensagem.guild.id, Queuecontrio);
// Insira a composição em nossa matriz de músicas
Queuecontruct.Songs.push (canção);
Experimente {
// Aqui estamos tentando entrar no bate-papo de voz e salvar a conexão no objeto
Var conexão = aguardam voicechannel.join ();
Queuecontruct.Connection = conexão;
// chamando a função de reprodução para iniciar a música
Reproduzir (Message.guild, Queuecontruct.Songs [0]);
} Pegar (err) {
// Exibe uma mensagem de erro se o bot não puder ingressar no chat de voz
Console.log (err);
Fila.Delete (Message.guild.id);
Retorno Message.channel.send (err);
}
Com a fila, tudo é claro, mas ainda não reproduz músicas, porque não há atribuição para a função de jogo. Para fazer isso no código, é necessário adicionar estrutura
Play de função (guilda, música) {
Const ServerQueue = Queue.Get (Guild.Id);
If (! Canção) {
ServerQueue.VoiceChannel.Leave ();
fila.delete (guild.id);
Retornar;
}
}
Jogar começa usando a função Playstream () e o link especificado para a faixa.
Const Dispatcher = ServerQueue.Connection.Playstream (YTDL (Song.url))
.on ('fim', () => {
Console.log ('música acabou!');
// remove a música acabada da fila
serverqueue.songs.shift ();
// novamente causa função de reprodução com a seguinte música
Play (Guild, ServerQueue.Songs [0]);
})
.on ('erro', erro => {
Console.Error (erro);
});
Dispatcher.SetvolumeloGarithmic (ServerQueue.Volume / 5);
Se você quiser adicionar uma função de ignição, por exemplo, quando decidir reproduzir uma lista de reprodução, primeiro cuide do comando apropriado e adicione esse fragmento:
Função Skip (Mensagem, ServerQueue) {
if (! message.member.voicechannel) retornar mensagem.channel.send ('você deve estar em um canal de voz para parar a música!');
If (! Serverqueue) retornar mensagem.channel.send ('Não há música que eu poderia pular!');
Serverqueue.connection.dispatcher.end ();
}
Aproximadamente o mesmo esquema também funciona a função de parada, mas o bloco com o código adquire uma aparência ligeiramente diferente:
Parada de função (mensagem, serverqueue) {
if (! Message.Member.VoiceChannel) Return Message.channel.Send ('
Você deve estar no canal de voz para parar de música! ');
Serverqueue.songs = [];
Serverqueue.connection.dispatcher.end ();
}
Considere que as informações apresentadas acima são adequadas exclusivamente para os usuários que já estão familiarizados com a linguagem JavaScript ou só estão envolvidas em estudar e decidir criar um bot musical. Se você não possui habilidades em geral e os blocos especificados com o código, você não disser nada, simplesmente insira todo o código de origem no arquivo, substitua as mensagens do bot em russo (eles estão em citações) e salvar o alterar. Todo o código fonte tem esse tipo:
Const Discord = requer ('discord.js');
const {
Prefixo,
símbolo
} = Requer ('./ config.json');
const ytdl = requer ('ytdl-core');
Cliente const = new discord.client ();
Const Queue = novo mapa ();
Client.Once ('pronto', () => {
Console.log ('pronto!');
});
Cliente.Once ('reconexando', () => {
Console.log ('reconectando!');
});
Client.Once ('Desconectar', () => {
Console.log ('desconectar!');
});
Cliente.on ('mensagem', assync message => {
se (message.author.bot) retorne;
if (! message.content.startswith (prefixo)) retorne;
Const serverQueue = Queue.Get (Message.guild.id);
if (message.content.startswith (`$ {prefix} play`)) {
Executar (mensagem, serverqueue);
Retornar;
} Else se (mensagem.content.startswith (`$ {prefix} skip`)) {
Skip (mensagem, serverqueue);
Retornar;
} Else se (message.content.startswith (`$ {prefix} parar`)) {
Parar (mensagem, serverqueue);
Retornar;
} OUTRO {
Message.channel.send ('você precisa digitar um comando válido!')
}
});
Função Assíncrona Execute (mensagem, serverqueue) {
const args = message.content.split ('');
Const VoiceChannel = mensagem.Member.VoiceChannel;
if (! VoiceChannel) retornar mensagem.channel.send ('você precisa estar em um canal de voz para tocar música!');
Permissões const = VoiceChannel.PermissionsPor (Message.client.user);
If (! Permissions.HAS ('Connect') ||! Permissões.HAS ('Speak')) {
Return Message.channel.Send ('Eu preciso das permissões para participar e falar no seu canal de voz!');
}
Const smostinfo = aguardo ytdl.getinfo (args [1]);
Const sing = {
Título: SongInfo.Title,
URL: Songinfo.video_url,
};
If (! Serverqueue) {
Const Queuecontruct = {
TextChannel: Message.channel,
VoiceChannel: VoiceChannel,
Conexão: nulo,
Músicas: [],
VOLUME: 5,
Jogando: Verdadeiro,
};
file.set (mensagem.guild.id, Queuecontrio);
Queuecontruct.Songs.push (canção);
Experimente {
Var conexão = aguardam voicechannel.join ();
Queuecontruct.Connection = conexão;
Reproduzir (Message.guild, Queuecontruct.Songs [0]);
} Pegar (err) {
Console.log (err);
Fila.Delete (Message.guild.id);
Retorno Message.channel.send (err);
}
} OUTRO {
Serverqueue.songs.push (canção);
Console.log (serverqueue.songs);
Return Message.channel.Send (`$ {Song.title} foi adicionado à fila!`);
}
}
Função Skip (Mensagem, ServerQueue) {
if (! message.member.voicechannel) Return Message.channel.Send ('Você tem que estar em um canal de voz para parar a música!');
if (! serverqueue) retornar mensagem.channel.send ('Não há música que eu poderia pular!');
Serverqueue.connection.dispatcher.end ();
}
Parada de função (mensagem, serverqueue) {
if (! message.member.voicechannel) Return Message.channel.Send ('Você tem que estar em um canal de voz para parar a música!');
Serverqueue.songs = [];
Serverqueue.connection.dispatcher.end ();
}
Play de função (guilda, música) {
Const ServerQueue = Queue.Get (Guild.Id);
If (! Canção) {
ServerQueue.VoiceChannel.Leave ();
fila.delete (guild.id);
Retornar;
}
Const Dispatcher = ServerQueue.Connection.Playstream (YTDL (Song.url))
.on ('fim', () => {
Console.log ("música terminou!");
serverqueue.songs.shift ();
Play (Guild, ServerQueue.Songs [0]);
})
.on ('erro', erro => {
Console.Error (erro);
});
Dispatcher.SetvolumeloGarithmic (ServerQueue.Volume / 5);
}
Client.login (token);
Após a conclusão, é melhor reiniciar o bot, após o qual você pode ir ao seu servidor, conectar-se ao canal de voz e inserir qualquer comando da interação, verificando como reagir ao bot.
Se a variante acima do bot não for adequada para você, você poderá encontrar os códigos de origem no mesmo github e copiá-los para o seu computador. O princípio do registro e do lançamento permanece o mesmo, por isso, se necessário, basta editar o código acabado e, em seguida, proceder a testar o bot.
Neste artigo, não afetamos a descarga de um bot de hospedagem, distribuí-lo entre outros usuários, criando um avatar e o uso de sites abertos, de onde ele pode ser autorizado. Tudo isso é processos separados que devem ser engajados somente quando você tiver atenuado sua habilidade para criar bots e estiver pronto para distribuir projetos na rede.