Make bukkit work

This commit is contained in:
Zoë Gidiere 2023-09-30 10:49:28 -06:00
parent 23f47de10a
commit 8e0d64dccd
2 changed files with 22 additions and 2 deletions

View File

@ -0,0 +1,12 @@
package com.dfsek.terra.bukkit.util;
import org.bukkit.Material;
import org.bukkit.block.data.BlockData;
public class BukkitUtils {
public static boolean isLiquid(BlockData blockState) {
Material material = blockState.getMaterial();
return material == Material.WATER || material == Material.LAVA;
}
}

View File

@ -1,6 +1,9 @@
package com.dfsek.terra.bukkit.world; package com.dfsek.terra.bukkit.world;
import com.dfsek.terra.bukkit.util.BukkitUtils;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.block.data.BlockData;
import org.bukkit.generator.LimitedRegion; import org.bukkit.generator.LimitedRegion;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -47,9 +50,14 @@ public class BukkitProtoWorld implements ProtoWorld {
@Override @Override
public void setBlockState(int x, int y, int z, BlockState data, boolean physics) { public void setBlockState(int x, int y, int z, BlockState data, boolean physics) {
access(x, y, z, () -> { access(x, y, z, () -> {
delegate.setBlockData(x, y, z, BukkitAdapter.adapt(data)); BlockData bukkitData = BukkitAdapter.adapt(data);
delegate.setBlockData(x, y, z, bukkitData);
if(physics) { if(physics) {
delegate.scheduleBlockUpdate(x, y, z); if (BukkitUtils.isLiquid(bukkitData)) {
delegate.scheduleFluidUpdate(x, y, z);
} else {
delegate.scheduleBlockUpdate(x, y, z);
}
} }
}); });
} }