【问题标题】:How do I make the old status show? (discord.js)如何使旧状态显示? (discord.js)
【发布时间】:2021-07-28 17:09:54
【问题描述】:

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

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

【问题讨论】:

    标签: if-statement discord.js status


    【解决方案1】:

    只需使用之前已经存储在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 澄清问题的评论更新答案

    【讨论】:

    • 抱歉不清楚。我想做的是只有当状态从离线变为在线时,才让频道名称说“从离线在线”。如果它例如。从空闲变为在线,我喜欢它只说“在线”,如果它从其他任何东西变为其他任何东西,我只想说新状态。感谢您的帮助!
    • @Carl 我已经修改了答案以(希望)提供您所要求的。如果状态从offline 更改为online,则状态将显示为“Online-was-Offline”,否则将仅显示新状态。
    • 谢谢!看起来不错。不过我还有一个问题。出于某种原因,当我添加它时,它会显示“SyntaxError: Unexpected token ','”。它指的是:}, 1250);。你碰巧知道为什么?
    • @Carl 您可能在某处错过了一个右大括号 (})。我已经测试了上面的代码(就像我输入的那样)并且它确实有效,所以我猜是复制和粘贴错误
    猜你喜欢
    • 2021-05-05
    • 2021-02-22
    • 2014-11-04
    • 2013-11-02
    • 1970-01-01
    • 1970-01-01
    • 2022-01-07
    • 1970-01-01
    • 2021-01-11
    相关资源
    最近更新 更多