2017-08-07 83 views
0

我正在学习Discord.js,我想从VoiceChannel播放歌曲后,使我的随机本地音乐僵尸自动断开连接。我试图做到这一点,但这不起作用。Discord.JS如何在歌曲后自动断开人声?

const Discord = require('discord.js'); 
const path = require('path'); 
const bot = new Discord.Client(); 
const ddiff = require('return-deep-diff'); 
const prefix = "<"; 
const fs = require("fs"); 

var musique = [ 
    "./musiques/test.wav", 
    "./musiques/test.wav", 
    "./musiques/test.wav", 
    "./musiques/test.wav", 
    "./musiques/test.wav", 
    "./musiques/test.wav", 
    "./musiques/1.mp3", 
    "./musiques/2.mp3", 
    "./musiques/3.wav" 
] 

var cover = [ 
    "./musiques/1.mp3", 
    "./musiques/2.mp3" 
] 

var impro = [ 
    "./musiques/3.wav" 
] 

var servers = {}; 
var guildid = {}; 

bot.commands = new Discord.Collection(); 

bot.on("error", (e) => console.error(e)); 
bot.on("warn", (e) => console.warn(e)); 
bot.on("debug", (e) => console.info(e)); 

bot.on('ready', function() { 
    console.log("no")}) 

bot.on('ready',() => { 
    bot.user.setGame("<help") 
    bot.user.setStatus("online") 
}), 

bot.on("message", function (message) { 
    if (message.author.equals(bot.user)) return; 
    if (!message.content.startsWith(prefix)) return; 
    if (message.content.startsWith(prefix)) { 
    message.delete(100) 
    } 

    var args = message.content.substring(prefix.length).split(" "); 


// Commandes 
    switch (args[0]) { 
    case "stop": 
     var server = servers[message.guild.id]; 

     if (!message.guild.voiceConnection) message.channel.send("blah") 

     if (message.guild.voiceConnection) message.guild.voiceConnection.disconnect(); 

     break; 

    case "random": 
     if (!message.member.voiceChannel) { 
     message.channel.send('blah') 
     } 
     if (message.member.voiceChannel) { 
     message.member.voiceChannel.join() 
     .then (connection => { 
     const stream = connection.playStream(musique[Math.floor(Math.random() * musique.length)]) 
     stream.once('end',() => bot.voiceConnections.get(guildid).disconnect()) 
     }) 
     } else { 
     return; 
     } 

     break; 
}}) 

bot.login("nono") 

请,我需要一些帮助。有人说我需要“让功能存储语音连接并检查它是否为空”,但我不知道该怎么做。

回答

0

检查,如果作者是在语音频道

if (!msg.member.voiceChannel) 

检查机器人是在语音频道!

if (!msg.guild.voiceConnection)