2017-08-07 82 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)