builder.build().getShardManager() 返回 null (JDA Discord Bot) |我如何调用 shardmanager?

Posted

技术标签:

【中文标题】builder.build().getShardManager() 返回 null (JDA Discord Bot) |我如何调用 shardmanager?【英文标题】:builder.build().getShardManager() returns null (JDA Discord Bot) | how do I call the shardmanager? 【发布时间】:2021-07-04 13:43:53 【问题描述】:

我是 JDA discord bot 的新手,遇到了 builder.build().getShardManager() 方法的问题。 在我的代码中的某些时候,我需要 shardManager 但我不知道如何获得它。 我发现 getShardManager() 可以在 JDA 对象 上调用(这里:JDABuilder.build()) 但它只返回一个空引用。 (主类在第 4 行崩溃,出现 nullpointerexception) (没有 shardmanager 机器人可以工作)

如何正确获取shardmanager

主要代码

this.builder = JDABuilder.createDefault(TOKEN);
builder.addEventListeners(new CommandHandler());
shardManager = this.builder.build().getShardManager();
shardManager.setActivity(Activity.playing("Do smth."));

【问题讨论】:

【参考方案1】:

您应该使用JDA 对象而不是ShardManager。

试试这样的:

this.builder = JDABuilder.createDefault(TOKEN);
builder.addEventListeners(new CommandHandler());
JDA jda = this.builder.build();
jda.getPresence().setActivity(Activity.playing("Hello World!"));

您也可以在构建 Bot 之前设置Activity

this.builder = JDABuilder.createDefault(TOKEN);
builder.addEventListeners(new CommandHandler());
builder.setActivity(Activity.playing("Hello World!"));
JDA jda = this.builder.build();

【讨论】:

啊,我明白了,谢谢。好像他们把以前在 shardManager 上的方法放在了 JDA 上。 不,您只是没有构建分片管理器。自述文件解释了这个here

以上是关于builder.build().getShardManager() 返回 null (JDA Discord Bot) |我如何调用 shardmanager?的主要内容,如果未能解决你的问题,请参考以下文章

Facebook按钮我正在使用firebaseUI多重登录,除了Facebook Builder().build()外,所有按钮都在生成,如何使该按钮膨胀?

The error may exist in com/bjpowernode/dao/StudentDao.xml ### Cause: org.apache.ibatis.builder.Build

在 Autofac 中,如何更改调用 Build 后注册的实例?

谷歌地图 LatLngBounds 偏移

android okhttp怎么添加请求头

高德地图 所有点在中间Android