【发布时间】:2020-09-07 03:04:56
【问题描述】:
我正在尝试创建一个机器人,当有人加入特定语音通道(例如 VC1)时,它将向特定文本通道(例如 vc-text)发送消息。
这是 bot.js 代码:
const Discord = require('discord.js');
const {token} = require('./auth.json');
const bot = new Discord.Client();
bot.login(token);
bot.once('ready', () =>{
console.log(`Bot ready, logged in as ${bot.user.tag}!`);
})
bot.on('voiceStateUpdate', (oldMember, newMember) => {
let newUserChannel = newMember.voiceChannelID
let oldUserChannel = oldMember.voiceChannelID
if(newUserChannel === 712677767333937284) {
// User Joins a voice channel
console.log("Joined VC1")
} else if(newUserChannel !== 712677767333937284){
// User leaves a voice channel
console.log("Left VC1")
}
})
一些ID:
- 文本通道 ID 为 712677731023716452 - 发送通知到(I 知道我需要添加频道消息编码)。
- VC1 ID 是 712677767333937284 - 触发加入
当我加入 VC1 时,我会收到控制台消息“Left VC1”,而当我离开/加入另一个时,我也会收到相同的控制台消息。
【问题讨论】:
-
查看标记示例,编写此代码的人会检查
oldUserChannel === undefined && newUserChannel !== undefined以检查用户是否已加入频道。这与你所拥有的不同...... -
是的,很抱歉,使用原始示例和一些更改似乎都不起作用。
-
我认为您应该使用未定义的方法,因为这样您就可以将它用于多个语音通道而不是单个通道。
-
你使用的是什么版本的 discord.js?
-
我需要它用于特定的语音频道,以便在成员加入时排队。我正在运行最新的 12.2.0 版。
标签: bots discord discord.js