Open Pringlers opened 2 years ago
Looks like it's because DefaultShardManager's constructor does not initialize this.shards
when shardsTotal is not explicitly set. Then I access this.shardCache
, which is initialized when shardsTotal is set, by DefaultShardManagerBuilder#build(boolean): ShardManager
> DefaultShardManager#login()
> DefaultShardManager#buildInstance(int)
.
Though, looks like the method registers event listeners to the running shards, so it might not be intended usage
Is there a reason you call build(false)
?
You could add event listeners in the builder and then build it.
ShardManager shardManager = DefaultShardManagerBuilder.create(token)
.addEventListeners(new Clazz())
.build();
I wanted to pass ShardManager to init something, and login when the other things are ready. Yes, I can pass builder around, but I'm reporting so it can be documented or fixed (if it should work)
General Troubleshooting
Bug Report
NullPointerException is thrown when adding event listener via
ShardManager#addEventListener
Expected Behavior
Adds event listener as usual
Code Example or Reproduction Steps
Note: ShardManager should not be logged in yet
Code for JDABuilder or DefaultShardManagerBuilder Used
Exception or Error