aboutsummaryrefslogtreecommitdiffhomepage
path: root/paper-api
diff options
context:
space:
mode:
authorJake Potrebic <[email protected]>2024-09-20 21:40:23 -0700
committerJake Potrebic <[email protected]>2024-09-20 21:40:23 -0700
commit4fb38d1c363b0218cbde051585c4744b5ed4ca47 (patch)
tree3d2fc44e9acb3f0b1ecd891f0f3a51d58fbe44bc /paper-api
parentcd6fb23fab3c2be73f889d15cc959514dc09535c (diff)
downloadPaper-4fb38d1c363b0218cbde051585c4744b5ed4ca47.tar.gz
Paper-4fb38d1c363b0218cbde051585c4744b5ed4ca47.zip
create TileStateInventoryHolder
a missing interface to centralize getSnapshotInventory methods
Diffstat (limited to 'paper-api')
-rw-r--r--paper-api/src/main/java/io/papermc/paper/block/TileStateInventoryHolder.java39
-rw-r--r--paper-api/src/main/java/org/bukkit/block/ChiseledBookshelf.java12
-rw-r--r--paper-api/src/main/java/org/bukkit/block/Container.java30
-rw-r--r--paper-api/src/main/java/org/bukkit/block/DecoratedPot.java12
-rw-r--r--paper-api/src/main/java/org/bukkit/block/Jukebox.java12
-rw-r--r--paper-api/src/main/java/org/bukkit/block/Lectern.java17
6 files changed, 52 insertions, 70 deletions
diff --git a/paper-api/src/main/java/io/papermc/paper/block/TileStateInventoryHolder.java b/paper-api/src/main/java/io/papermc/paper/block/TileStateInventoryHolder.java
new file mode 100644
index 0000000000..59868ac528
--- /dev/null
+++ b/paper-api/src/main/java/io/papermc/paper/block/TileStateInventoryHolder.java
@@ -0,0 +1,39 @@
+package io.papermc.paper.block;
+
+import org.bukkit.block.TileState;
+import org.bukkit.inventory.BlockInventoryHolder;
+import org.bukkit.inventory.Inventory;
+import org.jspecify.annotations.NullMarked;
+
+/**
+ * Represents a {@link TileState} block that has an inventory.
+ */
+@NullMarked
+public interface TileStateInventoryHolder extends TileState, BlockInventoryHolder {
+
+ /**
+ * Gets the inventory of the block represented by this block state.
+ * <p>
+ * If the block was changed to a different type in the meantime, the
+ * returned inventory might no longer be valid.
+ * <p>
+ * If this block state is not placed this will return the captured inventory
+ * snapshot instead.
+ *
+ * @return the inventory
+ */
+ @Override
+ Inventory getInventory();
+
+ /**
+ * Gets the captured inventory snapshot of this container.
+ * <p>
+ * The returned inventory is not linked to any block. Any modifications to
+ * the returned inventory will not be applied to the block represented by
+ * this block state up until {@link #update(boolean, boolean)} has been
+ * called.
+ *
+ * @return the captured inventory snapshot
+ */
+ Inventory getSnapshotInventory();
+}
diff --git a/paper-api/src/main/java/org/bukkit/block/ChiseledBookshelf.java b/paper-api/src/main/java/org/bukkit/block/ChiseledBookshelf.java
index 1cc5c2021c..92f41d00dc 100644
--- a/paper-api/src/main/java/org/bukkit/block/ChiseledBookshelf.java
+++ b/paper-api/src/main/java/org/bukkit/block/ChiseledBookshelf.java
@@ -8,7 +8,7 @@ import org.jetbrains.annotations.NotNull;
/**
* Represents a captured state of a chiseled bookshelf.
*/
-public interface ChiseledBookshelf extends TileState, BlockInventoryHolder {
+public interface ChiseledBookshelf extends io.papermc.paper.block.TileStateInventoryHolder { // Paper - TileStateInventoryHolder
/**
* Gets the last interacted inventory slot.
@@ -24,18 +24,12 @@ public interface ChiseledBookshelf extends TileState, BlockInventoryHolder {
*/
void setLastInteractedSlot(int lastInteractedSlot);
- /**
- * @return inventory
- * @see Container#getInventory()
- */
+ // Paper - move docs to TileStateInventoryHolder
@NotNull
@Override
ChiseledBookshelfInventory getInventory();
- /**
- * @return snapshot inventory
- * @see Container#getSnapshotInventory()
- */
+ @Override // Paper - move docs to TileStateInventoryHolder
@NotNull
ChiseledBookshelfInventory getSnapshotInventory();
diff --git a/paper-api/src/main/java/org/bukkit/block/Container.java b/paper-api/src/main/java/org/bukkit/block/Container.java
index a67ee0cb0c..8dbe4eec3d 100644
--- a/paper-api/src/main/java/org/bukkit/block/Container.java
+++ b/paper-api/src/main/java/org/bukkit/block/Container.java
@@ -8,33 +8,7 @@ import org.jetbrains.annotations.NotNull;
/**
* Represents a captured state of a container block.
*/
-public interface Container extends io.papermc.paper.block.LockableTileState, BlockInventoryHolder { // Paper
+public interface Container extends io.papermc.paper.block.LockableTileState, io.papermc.paper.block.TileStateInventoryHolder { // Paper
- /**
- * Gets the inventory of the block represented by this block state.
- * <p>
- * If the block was changed to a different type in the meantime, the
- * returned inventory might no longer be valid.
- * <p>
- * If this block state is not placed this will return the captured inventory
- * snapshot instead.
- *
- * @return the inventory
- */
- @NotNull
- @Override
- Inventory getInventory();
-
- /**
- * Gets the captured inventory snapshot of this container.
- * <p>
- * The returned inventory is not linked to any block. Any modifications to
- * the returned inventory will not be applied to the block represented by
- * this block state up until {@link #update(boolean, boolean)} has been
- * called.
- *
- * @return the captured inventory snapshot
- */
- @NotNull
- Inventory getSnapshotInventory();
+ // Paper - moved to TileStateInventoryHolder
}
diff --git a/paper-api/src/main/java/org/bukkit/block/DecoratedPot.java b/paper-api/src/main/java/org/bukkit/block/DecoratedPot.java
index 8c0e946ead..14f432aa75 100644
--- a/paper-api/src/main/java/org/bukkit/block/DecoratedPot.java
+++ b/paper-api/src/main/java/org/bukkit/block/DecoratedPot.java
@@ -12,7 +12,7 @@ import org.jetbrains.annotations.Nullable;
/**
* Represents a captured state of a decorated pot.
*/
-public interface DecoratedPot extends TileState, BlockInventoryHolder , org.bukkit.loot.Lootable { // Paper - expose loot table
+public interface DecoratedPot extends io.papermc.paper.block.TileStateInventoryHolder, org.bukkit.loot.Lootable { // Paper - expose loot table & TileStateInventoryHolder
/**
* Set the sherd on the provided side.
@@ -55,18 +55,12 @@ public interface DecoratedPot extends TileState, BlockInventoryHolder , org.bukk
@NotNull
public List<Material> getShards();
- /**
- * @return inventory
- * @see Container#getInventory()
- */
+ // Paper - move docs to TileStateInventoryHolder
@NotNull
@Override
public DecoratedPotInventory getInventory();
- /**
- * @return snapshot inventory
- * @see Container#getSnapshotInventory()
- */
+ @Override // Paper - move docs to TileStateInventoryHolder
@NotNull
public DecoratedPotInventory getSnapshotInventory();
diff --git a/paper-api/src/main/java/org/bukkit/block/Jukebox.java b/paper-api/src/main/java/org/bukkit/block/Jukebox.java
index fa76b2a4a4..60426881e4 100644
--- a/paper-api/src/main/java/org/bukkit/block/Jukebox.java
+++ b/paper-api/src/main/java/org/bukkit/block/Jukebox.java
@@ -10,7 +10,7 @@ import org.jetbrains.annotations.Nullable;
/**
* Represents a captured state of a jukebox.
*/
-public interface Jukebox extends TileState, BlockInventoryHolder {
+public interface Jukebox extends io.papermc.paper.block.TileStateInventoryHolder { // Paper - TileStateInventoryHolder
/**
* Gets the record inserted into the jukebox.
@@ -85,18 +85,12 @@ public interface Jukebox extends TileState, BlockInventoryHolder {
*/
public boolean eject();
- /**
- * @return inventory
- * @see Container#getInventory()
- */
+ // Paper - move docs to TileStateInventoryHolder
@NotNull
@Override
JukeboxInventory getInventory();
- /**
- * @return snapshot inventory
- * @see Container#getSnapshotInventory()
- */
+ @Override // Paper - move docs to TileStateInventoryHolder
@NotNull
JukeboxInventory getSnapshotInventory();
}
diff --git a/paper-api/src/main/java/org/bukkit/block/Lectern.java b/paper-api/src/main/java/org/bukkit/block/Lectern.java
index f835ddf0a2..541f2f683a 100644
--- a/paper-api/src/main/java/org/bukkit/block/Lectern.java
+++ b/paper-api/src/main/java/org/bukkit/block/Lectern.java
@@ -7,7 +7,7 @@ import org.jetbrains.annotations.NotNull;
/**
* Represents a captured state of a lectern.
*/
-public interface Lectern extends TileState, BlockInventoryHolder {
+public interface Lectern extends io.papermc.paper.block.TileStateInventoryHolder { // Paper - TileStateInventoryHolder
/**
* Get the current lectern page.
@@ -26,18 +26,5 @@ public interface Lectern extends TileState, BlockInventoryHolder {
*/
void setPage(int page);
- /**
- * @return inventory
- * @see Container#getInventory()
- */
- @NotNull
- @Override
- Inventory getInventory();
-
- /**
- * @return snapshot inventory
- * @see Container#getSnapshotInventory()
- */
- @NotNull
- Inventory getSnapshotInventory();
+ // Paper - moved to TileStateInventoryHolder
}