discord.js - Discord.js 支持频道
问题描述
我想创建一个 if 变量来检查用户是否加入了某个频道,如果他们加入了,那么我将继续执行我的程序。
到目前为止,我尝试过的是不同的事情,例如:
client.on('channel', async channel => {
if (channel.member.join(channel => channel.id === `672920107457970177`)) {
working.send("did it work??")
}
})
但我很确定我的整个脚本都是错误的;几周前我才开始使用 discord.js。
解决方案
您可以使用客户的voiceStateUpdate
事件。它将返回 2 个 GuildMember 值。旧的和更新的。
Client.on("voiceStateUpdate", (oldMember, newMember) => {
if (!oldMember.voiceChannel && newMember.voiceChannel) {
console.log("oldMember channel doesn't exist. newMember channel exist. User joined a voice channel.")
} else if (!newMember.voiceChannel) {
console.log("newMember voice channel doesn't exist. User left a voice channel.")
}
})
您需要进行这些检查,因为voiceStatusUpdate
只要语音状态更新(例如,defean、静音、频道移动等)就会触发。
要检查用户是否加入了某个频道,只需检查 ID:
Client.on("voiceStateUpdate", (oldMember, newMember) => {
if (!oldMember.voiceChannel && newMember.voiceChannel && newMember.voiceChannelID == "CHANNEL ID") {
console.log(`User joined ${newMember.voiceChannel.name}!`)
}
})
推荐阅读
- python - 使用 BeautifulSoup 和 Selenium 从动态网页中抓取网址的问题
- clang - LLVM 中调用的这种类型的参数是什么?
- android - ViewModel 阻止的片段返回导航
- architecture - Github Review 功能架构
- python - OpenCV 校准 Charuco 板cornerSubPix
- android - 如何在 react-native-alarm-notification 中设置重复警报,例如(星期一,星期二)
- javascript - React Native:如何将 reactjs 中的 loadscript 转换为 react native
- windows - 如何使用 pnputil 安装与 hwid 关联的驱动程序
- node.js - 构建具有特定节点版本的 docker ubuntu 机器
- azure - Powershell - Azure 存储帐户 - 获取上次身份验证时间/日期