From f7a2cfda51c436d1ab2337023ce3ec94821dae2b Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Sat, 17 Oct 2026 02:22:31 -0700 Subject: [PATCH 1/2] Ensure PaperweightAdapter.adapt doesn't return invalid blocks --- .../bukkit/adapter/impl/v1_21_11/PaperweightAdapter.java | 7 ++++--- .../impl/v1_21_11/PaperweightWorldNativeAccess.java | 7 +------ .../bukkit/adapter/impl/v1_21_4/PaperweightAdapter.java | 7 ++++--- .../impl/v1_21_4/PaperweightWorldNativeAccess.java | 7 +------ .../bukkit/adapter/impl/v1_21_5/PaperweightAdapter.java | 7 ++++--- .../impl/v1_21_5/PaperweightWorldNativeAccess.java | 7 +------ .../bukkit/adapter/impl/v1_21_6/PaperweightAdapter.java | 7 ++++--- .../impl/v1_21_6/PaperweightWorldNativeAccess.java | 7 +------ .../bukkit/adapter/impl/v1_21_9/PaperweightAdapter.java | 7 ++++--- .../impl/v1_21_9/PaperweightWorldNativeAccess.java | 7 +------ .../bukkit/adapter/impl/v26_1/PaperweightAdapter.java | 7 ++++--- .../adapter/impl/v26_1/PaperweightWorldNativeAccess.java | 8 +------- .../bukkit/adapter/impl/v26_2/PaperweightAdapter.java | 7 ++++--- .../adapter/impl/v26_2/PaperweightWorldNativeAccess.java | 8 +------- .../bukkit/adapter/impl/v26_3/PaperweightAdapter.java | 7 ++++--- .../adapter/impl/v26_3/PaperweightWorldNativeAccess.java | 8 +------- 16 files changed, 40 insertions(+), 75 deletions(-) diff --git a/worldedit-bukkit/adapters/adapter-1.21.11/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_11/PaperweightAdapter.java b/worldedit-bukkit/adapters/adapter-1.21.11/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_11/PaperweightAdapter.java index a4d204d205..f6be8b1b42 100644 --- a/worldedit-bukkit/adapters/adapter-1.21.11/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_11/PaperweightAdapter.java +++ b/worldedit-bukkit/adapters/adapter-1.21.11/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_11/PaperweightAdapter.java @@ -350,7 +350,9 @@ public BiomeType adapt(Biome biome) { public net.minecraft.world.level.block.state.BlockState adapt(BlockState blockState) { int internalId = BlockStateIdAccess.getBlockStateId(blockState); - return Block.stateById(internalId); + return BlockStateIdAccess.isValidInternalId(internalId) + ? Block.stateById(internalId) + : ((CraftBlockData) BukkitAdapter.adapt(blockState)).getState(); } @Override @@ -723,8 +725,7 @@ public boolean simulateItemUse(World world, BlockVector3 position, BaseItem item @Override public boolean canPlaceAt(World world, BlockVector3 position, BlockState blockState) { - int internalId = BlockStateIdAccess.getBlockStateId(blockState); - net.minecraft.world.level.block.state.BlockState blockData = Block.stateById(internalId); + net.minecraft.world.level.block.state.BlockState blockData = adapt(blockState); return blockData.canSurvive(((CraftWorld) world).getHandle(), new BlockPos(position.x(), position.y(), position.z())); } diff --git a/worldedit-bukkit/adapters/adapter-1.21.11/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_11/PaperweightWorldNativeAccess.java b/worldedit-bukkit/adapters/adapter-1.21.11/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_11/PaperweightWorldNativeAccess.java index e3b020c351..69ccf5312e 100644 --- a/worldedit-bukkit/adapters/adapter-1.21.11/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_11/PaperweightWorldNativeAccess.java +++ b/worldedit-bukkit/adapters/adapter-1.21.11/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_11/PaperweightWorldNativeAccess.java @@ -19,8 +19,6 @@ package com.sk89q.worldedit.bukkit.adapter.impl.v1_21_11; -import com.sk89q.worldedit.bukkit.BukkitAdapter; -import com.sk89q.worldedit.internal.block.BlockStateIdAccess; import com.sk89q.worldedit.internal.wna.WorldNativeAccess; import com.sk89q.worldedit.util.SideEffect; import com.sk89q.worldedit.util.SideEffectSet; @@ -71,10 +69,7 @@ public LevelChunk getChunk(int x, int z) { @Override public net.minecraft.world.level.block.state.BlockState toNative(BlockState state) { - int stateId = BlockStateIdAccess.getBlockStateId(state); - return BlockStateIdAccess.isValidInternalId(stateId) - ? Block.stateById(stateId) - : ((CraftBlockData) BukkitAdapter.adapt(state)).getState(); + return adapter.adapt(state); } @Override diff --git a/worldedit-bukkit/adapters/adapter-1.21.4/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_4/PaperweightAdapter.java b/worldedit-bukkit/adapters/adapter-1.21.4/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_4/PaperweightAdapter.java index 006b575af3..3581e900a9 100644 --- a/worldedit-bukkit/adapters/adapter-1.21.4/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_4/PaperweightAdapter.java +++ b/worldedit-bukkit/adapters/adapter-1.21.4/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_4/PaperweightAdapter.java @@ -345,7 +345,9 @@ public BiomeType adapt(Biome biome) { public net.minecraft.world.level.block.state.BlockState adapt(BlockState blockState) { int internalId = BlockStateIdAccess.getBlockStateId(blockState); - return Block.stateById(internalId); + return BlockStateIdAccess.isValidInternalId(internalId) + ? Block.stateById(internalId) + : ((CraftBlockData) BukkitAdapter.adapt(blockState)).getState(); } @Override @@ -704,8 +706,7 @@ public boolean simulateItemUse(World world, BlockVector3 position, BaseItem item @Override public boolean canPlaceAt(World world, BlockVector3 position, BlockState blockState) { - int internalId = BlockStateIdAccess.getBlockStateId(blockState); - net.minecraft.world.level.block.state.BlockState blockData = Block.stateById(internalId); + net.minecraft.world.level.block.state.BlockState blockData = adapt(blockState); return blockData.canSurvive(((CraftWorld) world).getHandle(), new BlockPos(position.x(), position.y(), position.z())); } diff --git a/worldedit-bukkit/adapters/adapter-1.21.4/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_4/PaperweightWorldNativeAccess.java b/worldedit-bukkit/adapters/adapter-1.21.4/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_4/PaperweightWorldNativeAccess.java index efdae85569..ea1618aa78 100644 --- a/worldedit-bukkit/adapters/adapter-1.21.4/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_4/PaperweightWorldNativeAccess.java +++ b/worldedit-bukkit/adapters/adapter-1.21.4/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_4/PaperweightWorldNativeAccess.java @@ -19,8 +19,6 @@ package com.sk89q.worldedit.bukkit.adapter.impl.v1_21_4; -import com.sk89q.worldedit.bukkit.BukkitAdapter; -import com.sk89q.worldedit.internal.block.BlockStateIdAccess; import com.sk89q.worldedit.internal.wna.WorldNativeAccess; import com.sk89q.worldedit.util.SideEffect; import com.sk89q.worldedit.util.SideEffectSet; @@ -71,10 +69,7 @@ public LevelChunk getChunk(int x, int z) { @Override public net.minecraft.world.level.block.state.BlockState toNative(BlockState state) { - int stateId = BlockStateIdAccess.getBlockStateId(state); - return BlockStateIdAccess.isValidInternalId(stateId) - ? Block.stateById(stateId) - : ((CraftBlockData) BukkitAdapter.adapt(state)).getState(); + return adapter.adapt(state); } @Override diff --git a/worldedit-bukkit/adapters/adapter-1.21.5/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_5/PaperweightAdapter.java b/worldedit-bukkit/adapters/adapter-1.21.5/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_5/PaperweightAdapter.java index 9a1c1bc839..ff3363f518 100644 --- a/worldedit-bukkit/adapters/adapter-1.21.5/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_5/PaperweightAdapter.java +++ b/worldedit-bukkit/adapters/adapter-1.21.5/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_5/PaperweightAdapter.java @@ -345,7 +345,9 @@ public BiomeType adapt(Biome biome) { public net.minecraft.world.level.block.state.BlockState adapt(BlockState blockState) { int internalId = BlockStateIdAccess.getBlockStateId(blockState); - return Block.stateById(internalId); + return BlockStateIdAccess.isValidInternalId(internalId) + ? Block.stateById(internalId) + : ((CraftBlockData) BukkitAdapter.adapt(blockState)).getState(); } @Override @@ -702,8 +704,7 @@ public boolean simulateItemUse(World world, BlockVector3 position, BaseItem item @Override public boolean canPlaceAt(World world, BlockVector3 position, BlockState blockState) { - int internalId = BlockStateIdAccess.getBlockStateId(blockState); - net.minecraft.world.level.block.state.BlockState blockData = Block.stateById(internalId); + net.minecraft.world.level.block.state.BlockState blockData = adapt(blockState); return blockData.canSurvive(((CraftWorld) world).getHandle(), new BlockPos(position.x(), position.y(), position.z())); } diff --git a/worldedit-bukkit/adapters/adapter-1.21.5/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_5/PaperweightWorldNativeAccess.java b/worldedit-bukkit/adapters/adapter-1.21.5/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_5/PaperweightWorldNativeAccess.java index b48b408e4a..eed5fc40ca 100644 --- a/worldedit-bukkit/adapters/adapter-1.21.5/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_5/PaperweightWorldNativeAccess.java +++ b/worldedit-bukkit/adapters/adapter-1.21.5/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_5/PaperweightWorldNativeAccess.java @@ -19,8 +19,6 @@ package com.sk89q.worldedit.bukkit.adapter.impl.v1_21_5; -import com.sk89q.worldedit.bukkit.BukkitAdapter; -import com.sk89q.worldedit.internal.block.BlockStateIdAccess; import com.sk89q.worldedit.internal.wna.WorldNativeAccess; import com.sk89q.worldedit.util.SideEffect; import com.sk89q.worldedit.util.SideEffectSet; @@ -71,10 +69,7 @@ public LevelChunk getChunk(int x, int z) { @Override public net.minecraft.world.level.block.state.BlockState toNative(BlockState state) { - int stateId = BlockStateIdAccess.getBlockStateId(state); - return BlockStateIdAccess.isValidInternalId(stateId) - ? Block.stateById(stateId) - : ((CraftBlockData) BukkitAdapter.adapt(state)).getState(); + return adapter.adapt(state); } @Override diff --git a/worldedit-bukkit/adapters/adapter-1.21.6/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_6/PaperweightAdapter.java b/worldedit-bukkit/adapters/adapter-1.21.6/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_6/PaperweightAdapter.java index 3d8aa7cd0d..d874a3271f 100644 --- a/worldedit-bukkit/adapters/adapter-1.21.6/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_6/PaperweightAdapter.java +++ b/worldedit-bukkit/adapters/adapter-1.21.6/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_6/PaperweightAdapter.java @@ -351,7 +351,9 @@ public BiomeType adapt(Biome biome) { public net.minecraft.world.level.block.state.BlockState adapt(BlockState blockState) { int internalId = BlockStateIdAccess.getBlockStateId(blockState); - return Block.stateById(internalId); + return BlockStateIdAccess.isValidInternalId(internalId) + ? Block.stateById(internalId) + : ((CraftBlockData) BukkitAdapter.adapt(blockState)).getState(); } @Override @@ -724,8 +726,7 @@ public boolean simulateItemUse(World world, BlockVector3 position, BaseItem item @Override public boolean canPlaceAt(World world, BlockVector3 position, BlockState blockState) { - int internalId = BlockStateIdAccess.getBlockStateId(blockState); - net.minecraft.world.level.block.state.BlockState blockData = Block.stateById(internalId); + net.minecraft.world.level.block.state.BlockState blockData = adapt(blockState); return blockData.canSurvive(((CraftWorld) world).getHandle(), new BlockPos(position.x(), position.y(), position.z())); } diff --git a/worldedit-bukkit/adapters/adapter-1.21.6/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_6/PaperweightWorldNativeAccess.java b/worldedit-bukkit/adapters/adapter-1.21.6/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_6/PaperweightWorldNativeAccess.java index 532c78b10a..190d04acdd 100644 --- a/worldedit-bukkit/adapters/adapter-1.21.6/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_6/PaperweightWorldNativeAccess.java +++ b/worldedit-bukkit/adapters/adapter-1.21.6/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_6/PaperweightWorldNativeAccess.java @@ -19,8 +19,6 @@ package com.sk89q.worldedit.bukkit.adapter.impl.v1_21_6; -import com.sk89q.worldedit.bukkit.BukkitAdapter; -import com.sk89q.worldedit.internal.block.BlockStateIdAccess; import com.sk89q.worldedit.internal.wna.WorldNativeAccess; import com.sk89q.worldedit.util.SideEffect; import com.sk89q.worldedit.util.SideEffectSet; @@ -71,10 +69,7 @@ public LevelChunk getChunk(int x, int z) { @Override public net.minecraft.world.level.block.state.BlockState toNative(BlockState state) { - int stateId = BlockStateIdAccess.getBlockStateId(state); - return BlockStateIdAccess.isValidInternalId(stateId) - ? Block.stateById(stateId) - : ((CraftBlockData) BukkitAdapter.adapt(state)).getState(); + return adapter.adapt(state); } @Override diff --git a/worldedit-bukkit/adapters/adapter-1.21.9/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_9/PaperweightAdapter.java b/worldedit-bukkit/adapters/adapter-1.21.9/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_9/PaperweightAdapter.java index 29d3fa76f4..611dddc42f 100644 --- a/worldedit-bukkit/adapters/adapter-1.21.9/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_9/PaperweightAdapter.java +++ b/worldedit-bukkit/adapters/adapter-1.21.9/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_9/PaperweightAdapter.java @@ -350,7 +350,9 @@ public BiomeType adapt(Biome biome) { public net.minecraft.world.level.block.state.BlockState adapt(BlockState blockState) { int internalId = BlockStateIdAccess.getBlockStateId(blockState); - return Block.stateById(internalId); + return BlockStateIdAccess.isValidInternalId(internalId) + ? Block.stateById(internalId) + : ((CraftBlockData) BukkitAdapter.adapt(blockState)).getState(); } @Override @@ -723,8 +725,7 @@ public boolean simulateItemUse(World world, BlockVector3 position, BaseItem item @Override public boolean canPlaceAt(World world, BlockVector3 position, BlockState blockState) { - int internalId = BlockStateIdAccess.getBlockStateId(blockState); - net.minecraft.world.level.block.state.BlockState blockData = Block.stateById(internalId); + net.minecraft.world.level.block.state.BlockState blockData = adapt(blockState); return blockData.canSurvive(((CraftWorld) world).getHandle(), new BlockPos(position.x(), position.y(), position.z())); } diff --git a/worldedit-bukkit/adapters/adapter-1.21.9/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_9/PaperweightWorldNativeAccess.java b/worldedit-bukkit/adapters/adapter-1.21.9/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_9/PaperweightWorldNativeAccess.java index e29c0b4318..85ff086263 100644 --- a/worldedit-bukkit/adapters/adapter-1.21.9/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_9/PaperweightWorldNativeAccess.java +++ b/worldedit-bukkit/adapters/adapter-1.21.9/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v1_21_9/PaperweightWorldNativeAccess.java @@ -19,8 +19,6 @@ package com.sk89q.worldedit.bukkit.adapter.impl.v1_21_9; -import com.sk89q.worldedit.bukkit.BukkitAdapter; -import com.sk89q.worldedit.internal.block.BlockStateIdAccess; import com.sk89q.worldedit.internal.wna.WorldNativeAccess; import com.sk89q.worldedit.util.SideEffect; import com.sk89q.worldedit.util.SideEffectSet; @@ -71,10 +69,7 @@ public LevelChunk getChunk(int x, int z) { @Override public net.minecraft.world.level.block.state.BlockState toNative(BlockState state) { - int stateId = BlockStateIdAccess.getBlockStateId(state); - return BlockStateIdAccess.isValidInternalId(stateId) - ? Block.stateById(stateId) - : ((CraftBlockData) BukkitAdapter.adapt(state)).getState(); + return adapter.adapt(state); } @Override diff --git a/worldedit-bukkit/adapters/adapter-26.1/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v26_1/PaperweightAdapter.java b/worldedit-bukkit/adapters/adapter-26.1/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v26_1/PaperweightAdapter.java index 0c48a5dbe5..4d4dd67bd1 100644 --- a/worldedit-bukkit/adapters/adapter-26.1/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v26_1/PaperweightAdapter.java +++ b/worldedit-bukkit/adapters/adapter-26.1/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v26_1/PaperweightAdapter.java @@ -362,7 +362,9 @@ public BiomeType adapt(Biome biome) { public net.minecraft.world.level.block.state.BlockState adapt(BlockState blockState) { int internalId = BlockStateIdAccess.getBlockStateId(blockState); - return Block.stateById(internalId); + return BlockStateIdAccess.isValidInternalId(internalId) + ? Block.stateById(internalId) + : ((CraftBlockData) BukkitAdapter.adapt(blockState)).getState(); } @Override @@ -741,8 +743,7 @@ public boolean simulateItemUse(World world, BlockVector3 position, BaseItem item @Override public boolean canPlaceAt(World world, BlockVector3 position, BlockState blockState) { - int internalId = BlockStateIdAccess.getBlockStateId(blockState); - net.minecraft.world.level.block.state.BlockState blockData = Block.stateById(internalId); + net.minecraft.world.level.block.state.BlockState blockData = adapt(blockState); return blockData.canSurvive(((CraftWorld) world).getHandle(), new BlockPos(position.x(), position.y(), position.z())); } diff --git a/worldedit-bukkit/adapters/adapter-26.1/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v26_1/PaperweightWorldNativeAccess.java b/worldedit-bukkit/adapters/adapter-26.1/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v26_1/PaperweightWorldNativeAccess.java index 2e857c2b45..244ccbb495 100644 --- a/worldedit-bukkit/adapters/adapter-26.1/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v26_1/PaperweightWorldNativeAccess.java +++ b/worldedit-bukkit/adapters/adapter-26.1/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v26_1/PaperweightWorldNativeAccess.java @@ -19,8 +19,6 @@ package com.sk89q.worldedit.bukkit.adapter.impl.v26_1; -import com.sk89q.worldedit.bukkit.BukkitAdapter; -import com.sk89q.worldedit.internal.block.BlockStateIdAccess; import com.sk89q.worldedit.internal.wna.WorldNativeAccess; import com.sk89q.worldedit.util.SideEffect; import com.sk89q.worldedit.util.SideEffectSet; @@ -34,7 +32,6 @@ import net.minecraft.world.level.chunk.LevelChunk; import net.minecraft.world.level.redstone.ExperimentalRedstoneUtils; import org.bukkit.craftbukkit.CraftWorld; -import org.bukkit.craftbukkit.block.data.CraftBlockData; import org.bukkit.event.block.BlockPhysicsEvent; import org.enginehub.linbus.tree.LinCompoundTag; @@ -71,10 +68,7 @@ public LevelChunk getChunk(int x, int z) { @Override public net.minecraft.world.level.block.state.BlockState toNative(BlockState state) { - int stateId = BlockStateIdAccess.getBlockStateId(state); - return BlockStateIdAccess.isValidInternalId(stateId) - ? Block.stateById(stateId) - : ((CraftBlockData) BukkitAdapter.adapt(state)).getState(); + return adapter.adapt(state); } @Override diff --git a/worldedit-bukkit/adapters/adapter-26.2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v26_2/PaperweightAdapter.java b/worldedit-bukkit/adapters/adapter-26.2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v26_2/PaperweightAdapter.java index bbe9951708..e007d857c1 100644 --- a/worldedit-bukkit/adapters/adapter-26.2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v26_2/PaperweightAdapter.java +++ b/worldedit-bukkit/adapters/adapter-26.2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v26_2/PaperweightAdapter.java @@ -363,7 +363,9 @@ public BiomeType adapt(Biome biome) { public net.minecraft.world.level.block.state.BlockState adapt(BlockState blockState) { int internalId = BlockStateIdAccess.getBlockStateId(blockState); - return Block.stateById(internalId); + return BlockStateIdAccess.isValidInternalId(internalId) + ? Block.stateById(internalId) + : ((CraftBlockData) BukkitAdapter.adapt(blockState)).getState(); } @Override @@ -746,8 +748,7 @@ public boolean simulateItemUse(World world, BlockVector3 position, BaseItem item @Override public boolean canPlaceAt(World world, BlockVector3 position, BlockState blockState) { - int internalId = BlockStateIdAccess.getBlockStateId(blockState); - net.minecraft.world.level.block.state.BlockState blockData = Block.stateById(internalId); + net.minecraft.world.level.block.state.BlockState blockData = adapt(blockState); return blockData.canSurvive(((CraftWorld) world).getHandle(), new BlockPos(position.x(), position.y(), position.z())); } diff --git a/worldedit-bukkit/adapters/adapter-26.2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v26_2/PaperweightWorldNativeAccess.java b/worldedit-bukkit/adapters/adapter-26.2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v26_2/PaperweightWorldNativeAccess.java index 77ff46e81d..b3a8bb6742 100644 --- a/worldedit-bukkit/adapters/adapter-26.2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v26_2/PaperweightWorldNativeAccess.java +++ b/worldedit-bukkit/adapters/adapter-26.2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v26_2/PaperweightWorldNativeAccess.java @@ -19,8 +19,6 @@ package com.sk89q.worldedit.bukkit.adapter.impl.v26_2; -import com.sk89q.worldedit.bukkit.BukkitAdapter; -import com.sk89q.worldedit.internal.block.BlockStateIdAccess; import com.sk89q.worldedit.internal.wna.WorldNativeAccess; import com.sk89q.worldedit.util.SideEffect; import com.sk89q.worldedit.util.SideEffectSet; @@ -34,7 +32,6 @@ import net.minecraft.world.level.chunk.LevelChunk; import net.minecraft.world.level.redstone.ExperimentalRedstoneUtils; import org.bukkit.craftbukkit.CraftWorld; -import org.bukkit.craftbukkit.block.data.CraftBlockData; import org.bukkit.event.block.BlockPhysicsEvent; import org.enginehub.linbus.tree.LinCompoundTag; @@ -71,10 +68,7 @@ public LevelChunk getChunk(int x, int z) { @Override public net.minecraft.world.level.block.state.BlockState toNative(BlockState state) { - int stateId = BlockStateIdAccess.getBlockStateId(state); - return BlockStateIdAccess.isValidInternalId(stateId) - ? Block.stateById(stateId) - : ((CraftBlockData) BukkitAdapter.adapt(state)).getState(); + return adapter.adapt(state); } @Override diff --git a/worldedit-bukkit/adapters/adapter-26.3/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v26_3/PaperweightAdapter.java b/worldedit-bukkit/adapters/adapter-26.3/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v26_3/PaperweightAdapter.java index c2508cb3f0..4d2a140100 100644 --- a/worldedit-bukkit/adapters/adapter-26.3/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v26_3/PaperweightAdapter.java +++ b/worldedit-bukkit/adapters/adapter-26.3/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v26_3/PaperweightAdapter.java @@ -373,7 +373,9 @@ public BiomeType adapt(Biome biome) { public net.minecraft.world.level.block.state.BlockState adapt(BlockState blockState) { int internalId = BlockStateIdAccess.getBlockStateId(blockState); - return Block.stateById(internalId); + return BlockStateIdAccess.isValidInternalId(internalId) + ? Block.stateById(internalId) + : ((CraftBlockData) BukkitAdapter.adapt(blockState)).getState(); } @Override @@ -766,8 +768,7 @@ public boolean simulateItemUse(World world, BlockVector3 position, BaseItem item @Override public boolean canPlaceAt(World world, BlockVector3 position, BlockState blockState) { - int internalId = BlockStateIdAccess.getBlockStateId(blockState); - net.minecraft.world.level.block.state.BlockState blockData = Block.stateById(internalId); + net.minecraft.world.level.block.state.BlockState blockData = adapt(blockState); return blockData.canSurvive(((CraftWorld) world).getHandle(), new BlockPos(position.x(), position.y(), position.z())); } diff --git a/worldedit-bukkit/adapters/adapter-26.3/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v26_3/PaperweightWorldNativeAccess.java b/worldedit-bukkit/adapters/adapter-26.3/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v26_3/PaperweightWorldNativeAccess.java index 26a00784ec..1b651d45c7 100644 --- a/worldedit-bukkit/adapters/adapter-26.3/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v26_3/PaperweightWorldNativeAccess.java +++ b/worldedit-bukkit/adapters/adapter-26.3/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/v26_3/PaperweightWorldNativeAccess.java @@ -19,8 +19,6 @@ package com.sk89q.worldedit.bukkit.adapter.impl.v26_3; -import com.sk89q.worldedit.bukkit.BukkitAdapter; -import com.sk89q.worldedit.internal.block.BlockStateIdAccess; import com.sk89q.worldedit.internal.wna.WorldNativeAccess; import com.sk89q.worldedit.util.SideEffect; import com.sk89q.worldedit.util.SideEffectSet; @@ -34,7 +32,6 @@ import net.minecraft.world.level.chunk.LevelChunk; import net.minecraft.world.level.redstone.ExperimentalRedstoneUtils; import org.bukkit.craftbukkit.CraftWorld; -import org.bukkit.craftbukkit.block.data.CraftBlockData; import org.bukkit.event.block.BlockPhysicsEvent; import org.enginehub.linbus.tree.LinCompoundTag; @@ -71,10 +68,7 @@ public LevelChunk getChunk(int x, int z) { @Override public net.minecraft.world.level.block.state.BlockState toNative(BlockState state) { - int stateId = BlockStateIdAccess.getBlockStateId(state); - return BlockStateIdAccess.isValidInternalId(stateId) - ? Block.stateById(stateId) - : ((CraftBlockData) BukkitAdapter.adapt(state)).getState(); + return adapter.adapt(state); } @Override From a8d92335fdaec0dcfe230bfcffca233441ba704f Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Sat, 17 Oct 2026 02:52:30 -0700 Subject: [PATCH 2/2] Empty API changes file --- .../accepted-core-public-api-changes.json | 23 ------------------- 1 file changed, 23 deletions(-) diff --git a/verification/src/changes/accepted-core-public-api-changes.json b/verification/src/changes/accepted-core-public-api-changes.json index fac2490581..2c63c08510 100644 --- a/verification/src/changes/accepted-core-public-api-changes.json +++ b/verification/src/changes/accepted-core-public-api-changes.json @@ -1,25 +1,2 @@ { - "Remove StringUtil.parseListInQuotes": [ - { - "type": "com.sk89q.util.StringUtil", - "member": "Method com.sk89q.util.StringUtil.parseListInQuotes(java.lang.String[],char,char,char)", - "changes": [ - "METHOD_REMOVED" - ] - }, - { - "type": "com.sk89q.util.StringUtil", - "member": "Method com.sk89q.util.StringUtil.parseListInQuotes(java.lang.String[],char,char,char,boolean)", - "changes": [ - "METHOD_REMOVED" - ] - }, - { - "type": "com.sk89q.util.StringUtil", - "member": "Method com.sk89q.util.StringUtil.parseListInQuotes(java.lang.String[],char,char[],char[],boolean)", - "changes": [ - "METHOD_REMOVED" - ] - } - ] }