首页 > 解决方案 > Discord Bot 不加入语音频道 (JS)

问题描述

我正在用 node.js 制作一个简单的不和谐机器人。我让它运行并响应,但我无法将它召唤到语音频道这是我正在使用的代码

switch (args[0]) {
    case "play":
      function play(connection, message) {
        var server = servers[message.guild.id];

        server.dispatcher = connection.playStream(
          ytdl(server.queue[0], { filter: "audioonly" })
        );
        server.queue.shift();

        server.dispatcher.on("end", function() {
          if (server.queue[0]) {
            play(connection, message);
          } else {
            connection.disconnect();
          }
        });
      }

      if (!args[1]) {
        message.channel.send("Give me a link to play");
        return;
      }
      if (!message.member.voiceChannel) {
        message.channel.send("Join a voice channel to play music!");
        return;
      }
      if (!servers[message.guild.id])
        servers[message.guild.id] = {
          queue: []
        };

      var server = servers[message.guild.id];

      server.queue.push(args[1]);

      if (!message.guild.voiceConnection)
        message.member.voiceChannel.join().then(connection => {
          message.reply("Here I am!");
        });

      break;
  }
});

它总是转到“加入语音频道”消息,即使我在语音频道中。

标签: javascriptnode.jsbotsdiscord

解决方案


当我深入研究文档时,我注意到代码应该是

message.member.voice.channel.join()

并不是

message.member.voiceChannel.join()

推荐阅读