Discord.js 在文本频道中加入/离开语音频道通知

Posted

技术标签:

【中文标题】Discord.js 在文本频道中加入/离开语音频道通知【英文标题】:Discord.js join/leave voice channel notification in text channel 【发布时间】: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”,而当我离开/加入另一个时,我也会收到相同的控制台消息。

我从https://www.reddit.com/r/discordapp/comments/6p85uf/discordjs_any_way_to_detect_when_someone_enter_a/获得了机器人示例

【问题讨论】:

查看标记示例,编写此代码的人会检查 oldUserChannel === undefined && newUserChannel !== undefined 以检查用户是否已加入频道。这与你所拥有的不同...... 是的,很抱歉,使用原始示例和一些更改似乎都不起作用。 我认为您应该使用未定义的方法,因为这样您就可以将它用于多个语音通道而不是单个通道。 你使用的是什么版本的 discord.js? 我需要它用于特定的语音频道,以便在成员加入时排队。我正在运行最新的 12.2.0 版。 【参考方案1】:

这应该可以工作

    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");
       
    );

【讨论】:

以上是关于Discord.js 在文本频道中加入/离开语音频道通知的主要内容,如果未能解决你的问题,请参考以下文章

Discord Bot 使用 Discord.js 在 X 秒后离开 VC

Discord 机器人不离开语音频道

Discord.js - 如何在文本频道中发送垃圾邮件?

从服务器中删除所有频道(语音和文本) - discord.js

机器人没有创建频道 - Discord.js

Discord Bot 不播放音频 discord.js v13