【发布时间】:2019-01-03 18:06:02
【问题描述】:
我最近一直在制作我的第一个不和谐机器人,我终于可以使用下面的代码通过机器人播放音频。但是,如果与机器人在同一频道中的人再次使用相同的命令,机器人将停止播放其音频并离开频道。 此外,我将如何使机器人在完成播放音频之前无法切换频道。 (注意:机器人从包含 mp3 文件的 url 播放音频,而不是使用 YouTube 插件,因为我只希望它为一些私人服务器播放特定的东西) 代码如下:
client.on('message', (message) => {
if (message.content == '!play EXAMPLE') {
var channel = message.member.voiceChannel;
if (!channel)
message.channel.sendMessage ('You need to be in a voice channel to use this command.');
if (!channel)
return console.error("The channel does not exist!");
channel.join().then(connection => {
const dispatcher = connection.playArbitraryInput("URL TO AUDIO FILE");
dispatcher.on("end", end => {
channel.leave();
});
});
}
});
非常感谢任何帮助。
【问题讨论】:
-
你真的应该正确地格式化你的代码。这很难阅读,一旦格式正确,您可能会发现自己的错误。
-
格式化,感谢 jtate。
-
检查客户是否已经加入
channel -
我 认为 发生了什么......我无法验证它...是机器人正在重新加入频道(所以这里什么都没有发生)然后“重新创建”调度程序并覆盖旧调度程序...触发
dispatcher.on("end") -
我在 Reddit 上看了看,他们说使用 guild.voiceConnection 来检测机器人是否已经在频道中,这将用作决定机器人是否会运行命令与否;我唯一想不通的是在哪里或如何将它放入现有代码中
标签: javascript node.js bots discord discord.js