mirror of
				https://github.com/musix-org/musix-oss
				synced 2025-11-04 09:49:32 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			49 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
module.exports = async function (video, message, voiceChannel, client, playlist = false) {
 | 
						|
    const Discord = require('discord.js');
 | 
						|
    let song = {
 | 
						|
        id: video.id,
 | 
						|
        title: Discord.Util.escapeMarkdown(video.title),
 | 
						|
        url: `https://www.youtube.com/watch?v=${video.id}`,
 | 
						|
        author: message.author
 | 
						|
    }
 | 
						|
    const serverQueue = client.queue.get(message.guild.id);
 | 
						|
    if (client.global.db.guilds[message.guild.id].defaultVolume === undefined) {
 | 
						|
        client.global.db.guilds[message.guild.id] = {
 | 
						|
            prefix: client.global.db.guilds[message.guild.id].prefix,
 | 
						|
            defaultVolume: 5,
 | 
						|
        };
 | 
						|
        return message.channel.send(':x: `Error:` the default volume is undefined for this server. Please try again after a while.');
 | 
						|
    }
 | 
						|
    if (!serverQueue) {
 | 
						|
        const construct = {
 | 
						|
            textChannel: message.channel,
 | 
						|
            voiceChannel: voiceChannel,
 | 
						|
            connection: null,
 | 
						|
            songs: [],
 | 
						|
            volume: client.global.db.guilds[message.guild.id].defaultVolume,
 | 
						|
            playing: false,
 | 
						|
            paused: false,
 | 
						|
            looping: false,
 | 
						|
            votes: 0,
 | 
						|
            voters: [],
 | 
						|
            votesNeeded: null
 | 
						|
        };
 | 
						|
        construct.songs.push(song);
 | 
						|
        client.queue.set(message.guild.id, construct);
 | 
						|
        try {
 | 
						|
            var connection = await voiceChannel.join();
 | 
						|
            construct.connection = connection;
 | 
						|
            client.funcs.play(message.guild, construct.songs[0], client, message, 0, true);
 | 
						|
        } catch (error) {
 | 
						|
            client.queue.delete(message.guild.id);
 | 
						|
            client.channels.get(client.config.debug_channel).send("Error with connecting to voice channel: " + error);
 | 
						|
            return message.channel.send(`:x: An error occured: ${error}`);
 | 
						|
        }
 | 
						|
    } else {
 | 
						|
        serverQueue.songs.push(song);
 | 
						|
        if (playlist) return undefined;
 | 
						|
        return message.channel.send(`:white_check_mark: **${song.title}** has been added to the queue!`);
 | 
						|
    }
 | 
						|
    return undefined;
 | 
						|
}
 |