mirror of
https://github.com/PaperMC/Paper.git
synced 2025-05-19 05:30:23 -07:00
Infer block entity data in brigadier blockstate argument (#12197)
This commit is contained in:
parent
c9411bfb83
commit
1acf3b3837
@ -86,6 +86,7 @@ import org.bukkit.block.structure.Mirror;
|
|||||||
import org.bukkit.block.structure.StructureRotation;
|
import org.bukkit.block.structure.StructureRotation;
|
||||||
import org.bukkit.craftbukkit.CraftHeightMap;
|
import org.bukkit.craftbukkit.CraftHeightMap;
|
||||||
import org.bukkit.craftbukkit.CraftRegistry;
|
import org.bukkit.craftbukkit.CraftRegistry;
|
||||||
|
import org.bukkit.craftbukkit.block.CraftBlockEntityState;
|
||||||
import org.bukkit.craftbukkit.block.CraftBlockStates;
|
import org.bukkit.craftbukkit.block.CraftBlockStates;
|
||||||
import org.bukkit.craftbukkit.inventory.CraftItemStack;
|
import org.bukkit.craftbukkit.inventory.CraftItemStack;
|
||||||
import org.bukkit.craftbukkit.scoreboard.CraftCriteria;
|
import org.bukkit.craftbukkit.scoreboard.CraftCriteria;
|
||||||
@ -172,7 +173,11 @@ public class VanillaArgumentProviderImpl implements VanillaArgumentProvider {
|
|||||||
@Override
|
@Override
|
||||||
public ArgumentType<BlockState> blockState() {
|
public ArgumentType<BlockState> blockState() {
|
||||||
return this.wrap(BlockStateArgument.block(PaperCommands.INSTANCE.getBuildContext()), (result) -> {
|
return this.wrap(BlockStateArgument.block(PaperCommands.INSTANCE.getBuildContext()), (result) -> {
|
||||||
return CraftBlockStates.getBlockState(CraftRegistry.getMinecraftRegistry(), BlockPos.ZERO, result.getState(), result.tag);
|
final BlockState snapshot = CraftBlockStates.getBlockState(CraftRegistry.getMinecraftRegistry(), BlockPos.ZERO, result.getState(), null);
|
||||||
|
if (result.tag != null && snapshot instanceof final CraftBlockEntityState<?> blockEntitySnapshot) {
|
||||||
|
blockEntitySnapshot.loadData(result.tag);
|
||||||
|
}
|
||||||
|
return snapshot;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user