If statement 如何制作旧的状态显示?(discord.js)

If statement 如何制作旧的状态显示?(discord.js),if-statement,discord.js,status,If Statement,Discord.js,Status,这就是我目前掌握的密码。如果我从脱机切换到联机,我希望频道名称为“Online was Offline”。我只希望当它从脱机更改为联机时,名称是这种方式。如果有任何其他状态的变化,例如:空闲到在线,我希望它只说新的状态名称。我该怎么做 setInterval(async () => { user = client.users.cache.get(config.user); updated = client.users.cache.get(config.us

这就是我目前掌握的密码。如果我从脱机切换到联机,我希望频道名称为“Online was Offline”。我只希望当它从脱机更改为联机时,名称是这种方式。如果有任何其他状态的变化,例如:空闲到在线,我希望它只说新的状态名称。我该怎么做

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);

只需使用先前存储在
状态中的状态值即可:

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);
有关更改的一些注意事项:

  • 状态=已更新需要移动到
    if
    语句之后才能工作
  • 代码未经测试,但演示了实现这一点的简单方法
  • 回答更新了OP澄清问题的评论

很抱歉不清楚。我希望它只在状态从脱机变为联机时才使频道名称显示“从脱机变为联机”。如果它从空闲变为在线,我只希望它说“在线”,如果它从任何其他变为任何其他,我只希望它说新的状态。谢谢你的帮助@卡尔:我已经修改了答案,希望能提供你所要求的。如果状态已从
脱机
更改为
联机
,则状态将显示为“
联机已脱机
”,否则将仅显示新状态。谢谢!看起来不错。不过我还有一个问题。出于某种原因,当我添加这个时,它说,“SyntaxError:Unexpected token',”。它引用到:
,1250)。你知道为什么吗?@Carl你可能在什么地方错过了一个结束的大括号(
}
)。我已经测试了上面的代码(例如,我把它放进去了),它确实有效,所以我猜是一个复制粘贴错误