Fix exception thrown when plants fake grow at max world height.

This commit is contained in:
t00thpick1 2021-01-02 11:18:32 -05:00
parent 0fa1d822d4
commit e0d85f842b
2 changed files with 10 additions and 4 deletions

View File

@ -253,12 +253,18 @@ public class BlockListener implements Listener {
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onBlockGrow(BlockGrowEvent event) public void onBlockGrow(BlockGrowEvent event)
{ {
Block block = event.getBlock();
World world = block.getWorld();
/* WORLD BLACKLIST CHECK */ /* WORLD BLACKLIST CHECK */
if(WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld())) if(WorldBlacklist.isWorldBlacklisted(world))
return; return;
BlockState blockState = event.getBlock().getState(); // Minecraft is dumb, the events still throw when a plant "grows" higher than the max block height. Even though no new block is created
mcMMO.getPlaceStore().setFalse(blockState); if (block.getY() >= world.getMaxHeight())
return;
mcMMO.getPlaceStore().setFalse(block);
} }
/** /**

View File

@ -82,7 +82,7 @@ public class BitSetChunkStore implements ChunkStore, Serializable {
private int coordToIndex(int x, int y, int z) { private int coordToIndex(int x, int y, int z) {
if (x < 0 || x >= 16 || y < 0 || y >= worldHeight || z < 0 || z >= 16) if (x < 0 || x >= 16 || y < 0 || y >= worldHeight || z < 0 || z >= 16)
throw new IndexOutOfBoundsException(); throw new IndexOutOfBoundsException(String.format("x: %d y: %d z: %d World Height: %d", x, y, z, worldHeight));
return (z * 16 + x) + (256 * y); return (z * 16 + x) + (256 * y);
} }