【发布时间】:2021-05-05 19:52:14
【问题描述】:
我正在使用 JDA api 为我的服务器编写一个私有 Discord Bot。我的机器人随机切换他的状态,其中一个随机事件是:“在线玩 x”
而且我想知道目前有多少人在线,无论他们是什么角色,但它不起作用。首先它显示 1 现在显示 2,它们就像在线 10-20。 Bot 有自己的 Bot 角色,我将其他所有角色都分配给了他,因为我认为这样可以解决问题,但事实并非如此。
String[] status = new String[] {"Baba Bot", "Bester Bot", "Coolster Bot", "%members online!"};
int next = 5;
public void onSecond() {
if(next <= 0) {
Random rnd = new Random();
int i = rnd.nextInt(status.length);
shardMan.getShards().forEach(jda -> {
String text = status[i].replaceAll("%members", "" + jda.getUsers().size());
jda.getPresence().setActivity(Activity.playing(text));
});
next = 5;
} else {
next--;
}
}
这就是我的代码。除了 jda.getUsers 之外,一切都很完美。我认为这可能是因为它只寻找担任主要角色的人,但我有 1 个可能是它,但现在我不断有 2 个。机器人列在我的 BOT 角色中,他们是其他 2 个机器人,但是用我的机器人 3。所以这也没有多大意义。或者如果它比我没有解决它的解决方案更重要。我在谷歌上搜索了很多关于这个和文档的信息,但找不到解决方案。
如果有人可以帮助我,那就太好了^^
LG 索伦
【问题讨论】: