[SPIGOT-2706] Support for Lock NBT Tag Created: 01/Oct/16 Updated: 11/Dec/17 Resolved: 21/Oct/16 |
|
Status: | Resolved |
Project: | Spigot |
Component/s: | None |
Affects Version/s: | None |
Fix Version/s: | None |
Type: | New Feature | Priority: | Minor |
Reporter: | Serge Humphrey | Assignee: | Unassigned |
Resolution: | Fixed | Votes: | 0 |
Labels: | None | ||
Environment: |
Bukkit |
Description |
Bukkit API is lacking support to access/change the "Lock" NBT Tag http://minecraft.gamepedia.com/Tutorials/Command_NBT_tags#Generic /blockdata ~ ~-1 ~ {Lock:"itemname"} |
Comments |
Comment by Senmori [ 20/Oct/16 ] |
I submitted a PR for this. Bukkit PR |
Comment by Serge Humphrey [ 01/Oct/16 ] |
Current NMS Code to do this is private String getLock(Block b) { net.minecraft.server.v1_10_R1.TileEntity tile = ((CraftWorld) b.getWorld()).getTileEntityAt(b.getX(), b.getY(), b.getZ()); if (tile == null || !(tile instanceof net.minecraft.server.v1_10_R1.TileEntityContainer)) return null; net.minecraft.server.v1_10_R1.TileEntityContainer c = (net.minecraft.server.v1_10_R1.TileEntityContainer) tile; return c.y_().b(); }private boolean setLock(Block b, String lock) { net.minecraft.server.v1_10_R1.TileEntity tile = ((CraftWorld) b.getWorld()).getTileEntityAt(b.getX(), b.getY(), b.getZ()); if (tile == null || !(tile instanceof net.minecraft.server.v1_10_R1.TileEntityContainer)) return false; net.minecraft.server.v1_10_R1.TileEntityContainer c = (net.minecraft.server.v1_10_R1.TileEntityContainer) tile; c.a(new net.minecraft.server.v1_10_R1.ChestLock(lock)); return true; } |