WhatIsAnOcttree/Ivy/Citadel: ChunkDataLoadEvent can still occasionally cause blocking data load

image

  1. Chunk loads, triggering ChunkDataLoadEvent
  2. Ivy ticks vines, correctly using the loaded chunk data from ChunkDataLoadEvent
  3. The vines attempt to grow, triggering BlockSpreadEvent
  4. Citadel listens to BlockSpreadEvent, and fails to use the data from ChunkDataLoadEvent because it isn't passed in any way.

Because of future completion ordering, a CompletableFuture can run its whenComplete function before CompletableFuture.getOrNull() will return not-null.

Frankly I have no clue how to fix this. Either way it's just slightly slowing down the server; There's no risk for data loss or corruption.

Assignee Loading
Time tracking Loading