javascript - 当有人加入特定频道时发送消息 - Discord Bot
问题描述
我制作了一个 Discord 机器人,用于在有人加入特定频道时发送消息,但当用户将麦克风静音时它也会发送消息。怎么了?
您可以在下面找到我当前的代码:
client.on('voiceStateUpdate', (oldMember, newMember) => {
let newUserChannel = newMember.channelID;
let oldUserChannel = oldMember.channelID;
const channel2 = client.channels.cache.get('channelid here');
if(newUserChannel === "channelid here")
{
// User Joins a voice channel
channel2.send("message");
}
});
解决方案
您还应该检查频道是否发生了变化,因此请检查 与newMember.channelID
是否不同oldMember.channelID
:
client.on('voiceStateUpdate', (oldMember, newMember) => {
let newUserChannel = newMember.channelID;
let oldUserChannel = oldMember.channelID;
const channel2 = client.channels.cache.get('channelid here');
if (
newUserChannel !== oldUserChannel &&
newUserChannel === 'channelid here'
) {
// User Joins a voice channel
channel2.send('message');
}
});
推荐阅读
- javascript - 长度为 x 或长度为 y 的字母数字字符串的正则表达式是什么?
- azure - 如何使用 cosmos db azure 的日志分析为更高的 RU 找到负责任的查询
- spring - refresh_token 只工作一次
- sql-server - SQL Server 填充空行
- ruby-on-rails - 当我尝试 heroku db 迁移时,pg 连接不好
- pandas - 将 pandas 数据框中的多列转换为时间戳 - 四舍五入到最近的 15 分钟间隔
- json - Symfony 4 API 平台和 JWT:无法获取 JWT 令牌
- android - 我在 kotlin 警告中无法创建抽象类的实例?
- c# - float.TryParse 忽略小数点
- python - 子进程外壳没有通过 | 到我正在执行的 bash 脚本