discord.js v12检查用户是否正在流式传输



我使用的是discord.js v12,我想有一个PresenceUpdate方法,当用户流式传输时,它会说。我在这里找到了这个,但显然它不起作用。这个有更新版本吗?

client.on('presenceUpdate', (oldMember, newMember) => {
const channel = oldMember.guild.channels.find(x => x.name === "channel name");
if (!channel) return;
let oldStreamingStatus = oldMember.presence.game ? oldMember.presence.game.streaming : false;
let newStreamingStatus = newMember.presence.game ? newMember.presence.game.streaming : false;
if(oldStreamingStatus == newStreamingStatus){
return;
}
if(newStreamingStatus){
if (newMember.presence.game && newMember.presence.game.name === 'game name' || newMember.presence.game.details.match(/keywords in stream/gi)) {
channel.send(`${newMember.user}, is live URL: ${newMember.presence.game.url}`);
return; 
}
}
});
client.on("presenceUpdate", (oldPresence, newPresence) => {
if (!newPresence.activities) return false;
newPresence.activities.forEach(activity => {
if (activity.type == "STREAMING") {
console.log(`${newPresence.user.tag} is streaming at ${activity.url}.`);
};
});
});

https://discord.js.org/#/docs/main/stable/class/Presence

https://discord.js.org/#/docs/main/stable/class/Activity

https://discord.js.org/#/docs/main/stable/typedef/ActivityType

client.on("voiceStateUpdate", async(oldVoiceState, newVoiceState) => {
if(newVoiceState.streaming){
console.log("the user is streaming")
}
});

这对我有效。PresenceUpdate不适用于流媒体。

最新更新