Monday, June 3, 2024
 Popular · Latest · Hot · Upcoming
178
rated 0 times [  185] [ 7]  / answers: 1 / hits: 114584  / 8 Years ago, wed, january 11, 2017, 12:00:00

How do you play an audio file from a Discord bot? Needs to play a local file, be in JS, and upon a certain message being sent it will join the user who typed the message, and will play the file to that channel.


More From » bots

 Answers
44

GitHub Project: LINK


In order to do this there are a few things you have to make sure of first.



  1. Have FFMPEG installed & the environment path set for it in Windows [link]

  2. Have Microsoft Visual Studio (VS) installed [link]

  3. Have Node.js installed.[link]

  4. Have Discord.js installed in VS.


From there the steps are quite simple. After making your project index.js you will start typing some code. Here are the steps:



  1. Add the Discord.js dependency to the project;


var Discord = require('discord.js');



  1. Create out client variable called bot;


var bot = new Discord.Client();
3. Create a Boolean variable to make sure that the system doesn't overload of requests;


var isReady = true;



  1. Next make the function to intercept the correct message;


bot.on('message', message =>{ENTER CODE HERE});



  1. Create an if statement to check if the message is correct & if the bot is ready;


if (isReady && message.content === 'MESSAGE'){ENTER CODE HERE}



  1. Set the bot to unready so that it cannot process events until it finishes;


isReady = false;



  1. Create a variable for the channel that the message-sender is currently in;


var voiceChannel = message.member.voice.channel;



  1. Join that channel and keep track of all errors;


voiceChannel.join().then(connection =>{ENTER CODE HERE}).catch(err => console.log(err));



  1. Create a refrence to and play the audio file;


const dispatcher = connection.play('./audiofile.mp3');



  1. Slot to wait until the audio file is done playing;


dispatcher.on("end", end => {ENTER CODE HERE});



  1. Leave channel after audio is done playing;


voiceChannel.leave();



  1. Login to the application;


bot.login('CLIENT TOKEN HERE');


After you are all finished with this, make sure to check for any un-closed brackets or parentheses. i made this because it took my hours until I finally found a good solution so I just wanted to share it with anybody who is out there looking for something like this.


[#59401] Saturday, January 7, 2017, 8 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
mickaylag

Total Points: 333
Total Questions: 108
Total Answers: 93

Location: Solomon Islands
Member since Fri, Oct 8, 2021
3 Years ago
;