bots - Discord.js 在文本频道中加入/离开语音频道通知
问题描述
我正在尝试创建一个机器人,当有人加入特定的语音通道(例如 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 是 712677731023716452 - 发送通知(我知道我需要添加通道消息编码)。
- VC1 ID 是 712677767333937284 - 触发加入
当我加入 VC1 时,我收到控制台消息“Left VC1”,当我离开/加入另一个时,我也收到相同的控制台消息。
解决方案
这应该工作
bot.on('voiceStateUpdate', (oldMember, newMember) => {
let newUserChannel = newMember.channelID;
let oldUserChannel = oldMember.channelID;
if(newUserChannel === "Channel id here") //don't remove ""
{
// User Joins a voice channel
console.log("Joined vc with id "+newUserChannel);
}
else{
// User leaves a voice channel
console.log("Left vc");
}
});