javascript - 如何获取特定用户是否在线?

标签 javascript node.js discord.js

我有一些代码应该在用户切换到在线时发送用户的当前状态,但问题是它发送了两次消息而且我无法检查更改状态的用户是谁.我只想检查更改状态的用户是否是具有特定 ID 的人,以及他们的状态是否更改为“在线”

bot.on('presenceUpdate', (oldMember, newMember) => {
 console.log(newMember.presence.status + ' ' + oldMember.presence.status);
 if (newMember.presence.status == 'online') {
  if (!(oldMember == newMember)) {
   bot.channels
    .get('622437397891907586')
    .send(newMember.presence.status.toString());
  }
 }
});

最佳答案

client.on("presenceUpdate", (oldGuildMember, newGuildMember) => {
    if (oldGuildMember.id !== "YOURID") return false; // Checking if the GuildMember is a specific user.

    if (oldGuildMember.presence.status !== newGuildMember.presence.status) { // Checking if the Presence is the same.
        if (newGuildMember.presence.status == "online") { // Checking if the GuildMember is online.
            const Channel = client.channels.get("CHANNELID");
            if (!Channel) return console.error("Invalid channel.");
            if (newGuildMember.guild.id !== Channel.guild.id) return false; // Making sure the Message gets sent once.

            Channel.send(`${newGuildMember.user.tag} is now online!`);
        };
    };
});

关于javascript - 如何获取特定用户是否在线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63860390/

相关文章:

sql-server - 如何使用 Node.JS 防止 SQL 注入(inject)?

javascript - 你如何确定他选择了一个?

javascript - 将鼠标悬停在图标上时按钮文本模糊

javascript - ajax成功访问类函数

node.js - Nodejs : websocket routing based on URL without port proxying

javascript - 使用 node.js 的 mailchimp-api 插件将用户添加到 mailchimp 邮件列表

javascript - Polymer app-header-layout 强制更新

javascript - 设计 JQuery/Ajax 站点向后兼容非 JavaScript 浏览器

javascript - Discord.js 机器人在 channel 中发送 10 条消息后发送消息

javascript - 如何判断视频是否受版权保护? YouTube API v3