Skip to content

Commit 4e3079b

Browse files
authored
Merge branch 'master' into develop
2 parents d492539 + 60cde53 commit 4e3079b

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package world.bentobox.bentobox.nms.v1_18_R1;
2+
3+
import org.bukkit.Bukkit;
4+
import org.bukkit.Material;
5+
import org.bukkit.block.data.BlockData;
6+
import org.bukkit.craftbukkit.v1_18_R1.CraftWorld;
7+
import org.bukkit.craftbukkit.v1_18_R1.block.data.CraftBlockData;
8+
9+
import net.minecraft.core.BlockPosition;
10+
import net.minecraft.world.level.World;
11+
import net.minecraft.world.level.block.state.IBlockData;
12+
import net.minecraft.world.level.chunk.Chunk;
13+
import world.bentobox.bentobox.nms.NMSAbstraction;
14+
15+
16+
public class NMSHandler implements NMSAbstraction {
17+
18+
private static final IBlockData AIR = ((CraftBlockData) Bukkit.createBlockData(Material.AIR)).getState();
19+
20+
@Override
21+
public void setBlockInNativeChunk(org.bukkit.Chunk chunk, int x, int y, int z, BlockData blockData, boolean applyPhysics) {
22+
CraftBlockData craft = (CraftBlockData) blockData;
23+
World nmsWorld = ((CraftWorld) chunk.getWorld()).getHandle();
24+
Chunk nmsChunk = nmsWorld.d(chunk.getX(), chunk.getZ());
25+
BlockPosition bp = new BlockPosition((chunk.getX() << 4) + x, y, (chunk.getZ() << 4) + z);
26+
// Setting the block to air before setting to another state prevents some console errors
27+
nmsChunk.a(bp, AIR, applyPhysics);
28+
nmsChunk.a(bp, craft.getState(), applyPhysics);
29+
}
30+
31+
}

0 commit comments

Comments
 (0)