如何显示旧状态? (discord.js)

How do I make the old status show? (discord.js)

这是到目前为止我得到的代码。我希望频道名称是例如。如果我从离线切换到在线,则会出现“在线 - 离线”。我只希望从离线到在线时名称是这样的。如果有任何其他状态变化,例如:空闲到在线,我希望它只说出新的状态名称。我该怎么做?

setInterval(async () => {

        user = client.users.cache.get(config.user);
        updated = client.users.cache.get(config.user).presence.status;

        if(updated != status) {
            status = updated;


            if(updated == 'online') {
                channel.setName('Online');
            }
            if(updated == 'offline') {
                channel.setName('Offline');
            }
            if(updated == 'idle') {
                channel.setName('Idle');
            }
            if(updated == 'dnd') {
                channel.setName('DND');
            }

            message.edit(embed);
            
            
        } else {
            return
        }
    }, 1250);

只需使用已存储在 status 中的先前状态值:

setInterval(async () => {
    user = client.users.cache.get(config.user);
    updated = client.users.cache.get(config.user).presence.status;

    if(updated != status) {
        if(updated == 'online') {
            if (status == 'offline') {
                channel.setName('Online-was-Offline');
            } else {
                channel.setName('Online');
            }
        } else if(updated == 'offline') {
            channel.setName('Offline');
        } else if(updated == 'idle') {
            channel.setName('Idle');
        } else if(updated == 'dnd') {
            channel.setName('DND');
        }

        status = updated;
        message.edit(embed);
    } else {
        return
    }
}, 1250);

关于更改的一些说明:

  • status = updated; 需要移动到 之后 if 语句才能工作。
  • 代码未经测试,但演示了实现此目的的简单方法。
  • 根据 OP 澄清问题的评论更新了答案