java - 状态更新 Discord 机器人

标签 java discord-jda

这是我更新状态的代码:

String[] status = new String[] {"Version: 1.5.0", "https://discord.gg/arWEM2h", "Love Backxtar", "You want me!", "Type: ~help", "User Counter: %members"};
    int next = 60;

    public void onSecond() {

        if(next%5 == 0) {

            if(!hasStarted) {
                hasStarted = true;
                StatChannelCommand.onStartUp();
            }

            Random rand = new Random();
            int i = rand.nextInt(status.length);

            shardMan.getShards().forEach(jda -> {
                String text = status[i].replaceAll("%members", "" + jda.getUsers().size());

                jda.getPresence().setActivity(Activity.playing(text));
            });

            StatChannelCommand.checkStats();

            if(next == 0) {
            next = 60;

            }
        }
        else {
            next--;
        }
    }

但是String每秒都在运行。我以为每5秒一次。我做了 60 秒 % 5。这段代码有什么问题?

最佳答案

当您第一次进入方法onSecond()时,条件next%5 == 0将为true。变量 next 将不会被更新,因为这只发生在 else 部分。因此,下次运行该方法时 next 仍将是 60

关于java - 状态更新 Discord 机器人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59013324/

相关文章:

discord - 使用相同的 token 同时运行单独的程序

java - 如何使用服务帐户凭据将文件上传到 Google Team Drive 中的文件夹?

java - 如何测量已经是.class文件的java程序的运行时间

java - 我如何检查Java中一个句子中有多少个辅音和元音?

java - Discord 机器人中的命令问题

java - Minecraft 插件 NoClassDefFoundError

java - 尝试添加 react 时遇到 onGuildMessageReceived() 问题

java - 有意义的容器元素示例

java - 是否可以将值作为 xml 属性或元素来处理?