繁体   English   中英

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

[英]discord.js v12 check if user is streaming

我正在使用 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 不适用于流式传输。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM