When quitting the server the instance is cleared and then the event is called. This causes the instance to be null in the event.
@Override
default @NotNull Instance getInstance() {
final Instance instance = getEntity().getInstance();
assert instance != null : "EntityInstanceEvent is only supported on events where the entity's instance is non-null!";
return instance;
}
When quitting the server the instance is cleared and then the event is called. This causes the instance to be null in the event.
Order of method calls: Entity#remove(boolean)
Then Player#remove(boolean) (second part, after returning from Entity#remove(boolean))
Fix might be moving this snippet before the following, though I am unsure of possible side effects: