【发布时间】:2020-10-03 16:50:04
【问题描述】:
所以我找到了一些代码来帮助我在某人开始流式传输时为其指定特定角色,并在他们停止流式传输时删除该角色。
client.on('presenceUpdate', (oldMember, newMember) => {
const guild = newMember.guild;
const streamingRole = guild.roles.find(role => role.id === 'streaming role');
if (newMember.user.bot || newMember.presence.clientStatus === 'mobile' || oldMember.presence.status !== newMember.presence.status) return;
const oldGame = oldMember.presence.game ? oldMember.presence.game.streaming: false;
const newGame = newMember.presence.game ? newMember.presence.game.streaming: false;
if (!oldGame && newGame) { // Started playing.
newMember.addRole(streamingRole)
.then(() => console.log(`${streamingRole.name} added to ${newMember.user.tag}.`))
.catch(console.error);
}
else if (oldGame && !newGame) { // Stopped playing.
newMember.removeRole(streamingRole)
.then(() => console.log(`${streamingRole.name} removed from ${newMember.user.tag}.`))
.catch(console.error);
}
});
在大多数情况下,此代码有效,但由于某种原因,有些人的角色没有改变。他们一开始在服务器中没有任何角色,并且机器人在列表中的位置比其他成员更高。
我还手动添加了该角色,一段时间后该角色被自动删除,即使该人仍在流式传输。
【问题讨论】:
-
我不明白第 3 行的这一部分是干什么用的:
oldMember.presence.status !== newMember.presence.status
标签: javascript node.js discord discord.js