【问题标题】:builder.build().getShardManager() returns null (JDA Discord Bot) | how do I call the shardmanager?builder.build().getShardManager() 返回 null (JDA Discord Bot) |我如何调用 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."));

【问题讨论】:

    标签: java null sharding discord-jda


    【解决方案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
    猜你喜欢
    • 2021-10-15
    • 2023-01-05
    • 2021-10-14
    • 2020-11-15
    • 2020-05-11
    • 2020-09-27
    • 2021-07-06
    • 2023-01-12
    • 2021-12-20
    相关资源
    最近更新 更多