node.js - 状态活动中的 discord.js 自动角色
问题描述
我正在为我的服务器编写一个机器人,我希望机器人读取所有成员的状态,如果他们有虚荣链接,则给他们一个特定的角色。我从头开始编写此代码,但似乎无法正常工作。这是代码:
client.on('presenceUpdate', async (oldPresence, newPresence) => {
const role = newPresence.guild.roles.cache.get("844047538797281310");
const member = newPresence.member
if (member.user.presence.activities[0]?state.includes( ".gg/moonxile" || "discord.gg/moonxile" )) {
return newPresence.member.roles.add(role)
} else {
if(member.roles.cache.has(role.id)) {
newPresence.member.roles.remove(role)
}
}
})
我对编码有点陌生,我无法说出我哪里出错了
解决方案
起初.includes js 方法不支持其中的条件 而 member.user.presence.activities 是活动数组,状态是它的属性,所以代码应该看起来像
client.on('presenceUpdate', async (oldPresence, newPresence) => {
const role = newPresence.guild.roles.cache.get("844047538797281310");
const member = newPresence.member
const activities = member.user.presence.activities[0];
if (activities && (activities.state.includes( ".gg/moonxile" ) || activities.state.includes("discord.gg/moonxile" ))) {
return newPresence.member.roles.add(role)
} else {
if(member.roles.cache.get(role.id)) {
newPresence.member.roles.remove(role)
}
}
})
推荐阅读
- ionic-framework - 如何计算所选项目的数量并在标签中显示
- batch-file - 如果通过 bat 脚本调用的 build.xml 失败,我们能否让 jenkins 构建失败
- r - 在 R 中创建新的 DT 列会出错
- c - why print 'hello' three times in my centos?
- excel - 如何从Excel文件中提取组信息
- image-processing - 什么是像素级 softmax 损失?
- environment-variables - Observable.timer(0,10000) 取消订阅后仍然在生产构建中的其他组件上被调用
- python - 如何更改 3D 图中的刺线宽?
- javascript - THREE.JS - 用于碰撞检测的 OBJ+MTL 上的 Raycaster 性能 (FirstPersonControls.js)
- mysql - MySQL 如何让 GRANT 为角色工作?他们只为用户工作