discord.js - 机器人先加入语音,然后执行命令,然后离开语音
问题描述
我希望我的机器人先加入语音频道,然后运行命令并发送消息,然后再次离开语音频道,但我失败了。我还很新,我正在等待您的建议作为资源。
我的代码:
client.on("message", function (message) {
if (message.content === "hello"){
if (message.member.voice.channel) {
const connection = DiscordMessage.member.voice.channel.join();
const channel01 = client.channels.cache.find(channel => channel.id === "838137321169223701");
channel01.send("hi")
}
}
});
解决方案
查看您的代码后,我注意到您缺少让您的机器人加入语音聊天的实际功能。你所做的只是简单地调用一个“const”变量,尽管从未执行过它。如果您希望您的机器人在发送响应后立即离开,那将使您的机器人加入呼叫的时间不到一秒钟,尽管您可以用它来替换当前代码。
client.on("message", function (message) {
if (message.content === "hello"){
if (message.member.voice.channel) {
const VoiceChannel = message.member.voice.channel
const channel01 = client.channels.cache.find(channel => channel.id === "849139242478206976");
VoiceChannel.join()
channel01.send("hi").then(setTimeout(function(){
VoiceChannel.leave()
}, 2000));
}
}
});
这将使您的机器人加入语音聊天,并在 2 秒后离开,正如您从超时功能中看到的那样。如果您不希望有任何超时,您可以简单地将 .then 之后的值替换为:
.then(VoiceChannel.leave());
我希望它有帮助!
推荐阅读
- ios - NS_SWIFT_NAME 不使用“。” (点)在基本名称中
- integer - 如何使用 int fint (double) 将双精度值转换为整数,而不会在 Uppaal 中出现“服务器连接丢失”
- algorithm - 在 O(log n) 时间内到 GetMean 的数据结构
- python - 如何在Python中分割AFTER下划线
- macos - 如何修复 QEMU 上无法启动的设备?
- angular - 没有 zone.js 的 Angular 材质组件
- symfony - 如何从 twig Symfony 5.2 覆盖 form_errors()?
- javascript - 从正则表达式替换中删除最后一个符号
- mysql - prisma PANIC:无法在创建中找出 ID
- php - 单选按钮不通过 ajax 发送值