275173e538
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: 0c5d8709 SPIGOT-7400: Downgrade maven-resolver due to issues resolving certain depends 255c4fdb SPIGOT-7380: Add PlayerInteractEvent#getClickedPosition and ChiseledBookshelf#getSlot CraftBukkit Changes: b6b514b7e SPIGOT-7400: Downgrade maven-resolver due to issues resolving certain depends fcff84de9 SPIGOT-7399: Revert null check in CraftMetaItem#safelyAdd 44a4b5649 SPIGOT-7380: Add PlayerInteractEvent#getClickedPosition and ChiseledBookshelf#getSlot 676969d01 SPIGOT-7389: Handle setting null items in ChiseledBookshelf Inventory
57 Zeilen
2.4 KiB
Diff
57 Zeilen
2.4 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: dfsek <dfsek@protonmail.com>
|
|
Date: Sat, 19 Jun 2021 20:15:59 -0700
|
|
Subject: [PATCH] Add more LimitedRegion API
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java b/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java
|
|
index bc606693566419c143d19284b110961602c2810b..23ffe4b8a19286543e12bf7408879e6d1305a78f 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java
|
|
@@ -249,4 +249,45 @@ public class CraftLimitedRegion extends CraftRegionAccessor implements LimitedRe
|
|
public void addEntityToWorld(net.minecraft.world.entity.Entity entity, CreatureSpawnEvent.SpawnReason reason) {
|
|
this.entities.add(entity);
|
|
}
|
|
+
|
|
+ // Paper start
|
|
+ @Override
|
|
+ public void setBlockState(int x, int y, int z, BlockState state) {
|
|
+ BlockPos pos = new BlockPos(x, y, z);
|
|
+ if (!state.getBlockData().matches(getHandle().getBlockState(pos).createCraftBlockData())) {
|
|
+ throw new IllegalArgumentException("BlockData does not match! Expected " + state.getBlockData().getAsString(false) + ", got " + getHandle().getBlockState(pos).createCraftBlockData().getAsString(false));
|
|
+ }
|
|
+ getHandle().getBlockEntity(pos).load(((org.bukkit.craftbukkit.block.CraftBlockEntityState<?>) state).getSnapshotNBT());
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void scheduleBlockUpdate(int x, int y, int z) {
|
|
+ BlockPos position = new BlockPos(x, y, z);
|
|
+ getHandle().scheduleTick(position, getHandle().getBlockState(position).getBlock(), 0);
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void scheduleFluidUpdate(int x, int y, int z) {
|
|
+ BlockPos position = new BlockPos(x, y, z);
|
|
+ getHandle().scheduleTick(position, getHandle().getFluidState(position).getType(), 0);
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public World getWorld() {
|
|
+ // reading/writing the returned Minecraft world causes a deadlock.
|
|
+ // By implementing this, and covering it in warnings, we're assuming people won't be stupid, and
|
|
+ // if they are stupid, they'll figure it out pretty fast.
|
|
+ return getHandle().getMinecraftWorld().getWorld();
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public int getCenterChunkX() {
|
|
+ return centerChunkX;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public int getCenterChunkZ() {
|
|
+ return centerChunkZ;
|
|
+ }
|
|
+ // Paper end
|
|
}
|