Create TileStateInventoryHolder (#11420)
Adds a missing interface to centralize getSnapshotInventory methods.
This commit is contained in:
		
					parent
					
						
							
								a3916fd4da
							
						
					
				
			
			
				commit
				
					
						5b9ea906ed
					
				
			
		
					 1 changed files with 226 additions and 0 deletions
				
			
		
							
								
								
									
										226
									
								
								patches/api/create-TileStateInventoryHolder.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										226
									
								
								patches/api/create-TileStateInventoryHolder.patch
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,226 @@
 | 
				
			||||||
 | 
					From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 | 
				
			||||||
 | 
					From: Jake Potrebic <jake.m.potrebic@gmail.com>
 | 
				
			||||||
 | 
					Date: Fri, 20 Sep 2024 21:40:23 -0700
 | 
				
			||||||
 | 
					Subject: [PATCH] create TileStateInventoryHolder
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					a missing interface to centralize getSnapshotInventory methods
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					diff --git a/src/main/java/io/papermc/paper/block/TileStateInventoryHolder.java b/src/main/java/io/papermc/paper/block/TileStateInventoryHolder.java
 | 
				
			||||||
 | 
					new file mode 100644
 | 
				
			||||||
 | 
					index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
 | 
				
			||||||
 | 
					--- /dev/null
 | 
				
			||||||
 | 
					+++ b/src/main/java/io/papermc/paper/block/TileStateInventoryHolder.java
 | 
				
			||||||
 | 
					@@ -0,0 +0,0 @@
 | 
				
			||||||
 | 
					+package io.papermc.paper.block;
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					+import org.bukkit.block.TileState;
 | 
				
			||||||
 | 
					+import org.bukkit.inventory.BlockInventoryHolder;
 | 
				
			||||||
 | 
					+import org.bukkit.inventory.Inventory;
 | 
				
			||||||
 | 
					+import org.checkerframework.checker.nullness.qual.NonNull;
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					+/**
 | 
				
			||||||
 | 
					+ * Represents a {@link TileState} block that has an inventory.
 | 
				
			||||||
 | 
					+ */
 | 
				
			||||||
 | 
					+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
 | 
				
			||||||
 | 
					+    @NonNull 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
 | 
				
			||||||
 | 
					+     */
 | 
				
			||||||
 | 
					+    @NonNull Inventory getSnapshotInventory();
 | 
				
			||||||
 | 
					+}
 | 
				
			||||||
 | 
					diff --git a/src/main/java/org/bukkit/block/ChiseledBookshelf.java b/src/main/java/org/bukkit/block/ChiseledBookshelf.java
 | 
				
			||||||
 | 
					index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 | 
				
			||||||
 | 
					--- a/src/main/java/org/bukkit/block/ChiseledBookshelf.java
 | 
				
			||||||
 | 
					+++ b/src/main/java/org/bukkit/block/ChiseledBookshelf.java
 | 
				
			||||||
 | 
					@@ -0,0 +0,0 @@ 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.
 | 
				
			||||||
 | 
					@@ -0,0 +0,0 @@ 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/src/main/java/org/bukkit/block/Container.java b/src/main/java/org/bukkit/block/Container.java
 | 
				
			||||||
 | 
					index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 | 
				
			||||||
 | 
					--- a/src/main/java/org/bukkit/block/Container.java
 | 
				
			||||||
 | 
					+++ b/src/main/java/org/bukkit/block/Container.java
 | 
				
			||||||
 | 
					@@ -0,0 +0,0 @@ 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/src/main/java/org/bukkit/block/DecoratedPot.java b/src/main/java/org/bukkit/block/DecoratedPot.java
 | 
				
			||||||
 | 
					index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 | 
				
			||||||
 | 
					--- a/src/main/java/org/bukkit/block/DecoratedPot.java
 | 
				
			||||||
 | 
					+++ b/src/main/java/org/bukkit/block/DecoratedPot.java
 | 
				
			||||||
 | 
					@@ -0,0 +0,0 @@ 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.
 | 
				
			||||||
 | 
					@@ -0,0 +0,0 @@ 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/src/main/java/org/bukkit/block/Jukebox.java b/src/main/java/org/bukkit/block/Jukebox.java
 | 
				
			||||||
 | 
					index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 | 
				
			||||||
 | 
					--- a/src/main/java/org/bukkit/block/Jukebox.java
 | 
				
			||||||
 | 
					+++ b/src/main/java/org/bukkit/block/Jukebox.java
 | 
				
			||||||
 | 
					@@ -0,0 +0,0 @@ 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.
 | 
				
			||||||
 | 
					@@ -0,0 +0,0 @@ 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/src/main/java/org/bukkit/block/Lectern.java b/src/main/java/org/bukkit/block/Lectern.java
 | 
				
			||||||
 | 
					index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 | 
				
			||||||
 | 
					--- a/src/main/java/org/bukkit/block/Lectern.java
 | 
				
			||||||
 | 
					+++ b/src/main/java/org/bukkit/block/Lectern.java
 | 
				
			||||||
 | 
					@@ -0,0 +0,0 @@ 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.
 | 
				
			||||||
 | 
					@@ -0,0 +0,0 @@ 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
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue