summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThinkofdeath <thinkofdeath@spigotmc.org>2015-03-24 15:36:33 +0000
committerThinkofdeath <thinkofdeath@spigotmc.org>2015-03-24 16:03:15 +0000
commitfc9b07810a28a0bdaf5541bf1b7bb2107d90323d (patch)
tree937440393f55592cd73374c50476e6de19eb77eb
parent1f0b2e88fe5a69e151ad5a9beb34562c7bd3c468 (diff)
downloadbukkit-fc9b07810a28a0bdaf5541bf1b7bb2107d90323d.tar
bukkit-fc9b07810a28a0bdaf5541bf1b7bb2107d90323d.tar.gz
bukkit-fc9b07810a28a0bdaf5541bf1b7bb2107d90323d.tar.lz
bukkit-fc9b07810a28a0bdaf5541bf1b7bb2107d90323d.tar.xz
bukkit-fc9b07810a28a0bdaf5541bf1b7bb2107d90323d.zip
Add BlockStateMeta which allows creating and editting 1.8's blockEntityTag
-rw-r--r--src/main/java/org/bukkit/block/BlockState.java11
-rw-r--r--src/main/java/org/bukkit/inventory/meta/BlockStateMeta.java35
2 files changed, 46 insertions, 0 deletions
diff --git a/src/main/java/org/bukkit/block/BlockState.java b/src/main/java/org/bukkit/block/BlockState.java
index 96bf1d0d..866a73d9 100644
--- a/src/main/java/org/bukkit/block/BlockState.java
+++ b/src/main/java/org/bukkit/block/BlockState.java
@@ -192,4 +192,15 @@ public interface BlockState extends Metadatable {
*/
@Deprecated
public void setRawData(byte data);
+
+ /**
+ * Returns whether this state is placed in the world.
+ *
+ * Some methods will not work if the blockState isn't
+ * placed in the world.
+ *
+ * @return whether the state is placed in the world
+ * or 'virtual' (e.g. on an itemstack)
+ */
+ boolean isPlaced();
}
diff --git a/src/main/java/org/bukkit/inventory/meta/BlockStateMeta.java b/src/main/java/org/bukkit/inventory/meta/BlockStateMeta.java
new file mode 100644
index 00000000..4c2a7467
--- /dev/null
+++ b/src/main/java/org/bukkit/inventory/meta/BlockStateMeta.java
@@ -0,0 +1,35 @@
+
+package org.bukkit.inventory.meta;
+
+import org.bukkit.block.BlockState;
+
+public interface BlockStateMeta extends ItemMeta {
+
+ /**
+ * Returns whether the item has a block state currently
+ * attached to it.
+ *
+ * @return whether a block state is already attached
+ */
+ boolean hasBlockState();
+
+ /**
+ * Returns the currently attached block state for this
+ * item or creates a new one if one doesn't exist.
+ *
+ * The state is a copy, it must be set back (or to another
+ * item) with {@link #setBlockState(org.bukkit.block.BlockState)}
+ *
+ * @return the attached state or a new state
+ */
+ BlockState getBlockState();
+
+ /**
+ * Attaches a copy of the passed block state to the item.
+ *
+ * @param blockState the block state to attach to the block.
+ * @throws IllegalArgumentException if the blockState is null
+ * or invalid for this item.
+ */
+ void setBlockState(BlockState blockState);
+}