mirror of
https://github.com/songoda/FabledSkyBlock.git
synced 2024-09-18 18:00:58 +02:00
Fix fast block placing not existing on older versions
This commit is contained in:
parent
1c0af0765e
commit
164c7ae911
@ -527,10 +527,11 @@ public final class BlockUtil {
|
|||||||
return nearbyBlocks;
|
return nearbyBlocks;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static Class<?> IBlockDataClass = NMSUtil.getNMSClass("IBlockData");
|
||||||
|
private static Class<?> blocksClass = NMSUtil.getNMSClass("Blocks");
|
||||||
|
|
||||||
private static void setBlockFast(World world, int x, int y, int z, Material material, byte data) {
|
private static void setBlockFast(World world, int x, int y, int z, Material material, byte data) {
|
||||||
try {
|
try {
|
||||||
Class<?> IBlockDataClass = NMSUtil.getNMSClass("IBlockData");
|
|
||||||
|
|
||||||
Object worldHandle = world.getClass().getMethod("getHandle").invoke(world);
|
Object worldHandle = world.getClass().getMethod("getHandle").invoke(world);
|
||||||
Object chunk = worldHandle.getClass().getMethod("getChunkAt", int.class, int.class).invoke(worldHandle,
|
Object chunk = worldHandle.getClass().getMethod("getChunkAt", int.class, int.class).invoke(worldHandle,
|
||||||
x >> 4, z >> 4);
|
x >> 4, z >> 4);
|
||||||
@ -538,7 +539,7 @@ public final class BlockUtil {
|
|||||||
.newInstance(x & 0xF, y, z & 0xF);
|
.newInstance(x & 0xF, y, z & 0xF);
|
||||||
|
|
||||||
if (NMSUtil.getVersionNumber() > 12) {
|
if (NMSUtil.getVersionNumber() > 12) {
|
||||||
Object block = NMSUtil.getNMSClass("Blocks").getField(material.name()).get(null);
|
Object block = blocksClass.getField(material.name()).get(null);
|
||||||
Object IBlockData = block.getClass().getMethod("getBlockData").invoke(block);
|
Object IBlockData = block.getClass().getMethod("getBlockData").invoke(block);
|
||||||
worldHandle.getClass().getMethod("setTypeAndData", blockPosition.getClass(), IBlockDataClass, int.class)
|
worldHandle.getClass().getMethod("setTypeAndData", blockPosition.getClass(), IBlockDataClass, int.class)
|
||||||
.invoke(worldHandle, blockPosition, IBlockData, 2);
|
.invoke(worldHandle, blockPosition, IBlockData, 2);
|
||||||
@ -559,7 +560,9 @@ public final class BlockUtil {
|
|||||||
IBlockData);
|
IBlockData);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
Block block = world.getBlockAt(x, y, z);
|
||||||
|
block.getState().setRawData(data);
|
||||||
|
block.setType(material);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user