13
0
geforkt von Mirrors/Paper

create TileStateInventoryHolder

a missing interface to centralize getSnapshotInventory methods
Dieser Commit ist enthalten in:
Jake Potrebic 2024-09-20 21:40:23 -07:00
Ursprung cd6fb23fab
Commit 4fb38d1c36
6 geänderte Dateien mit 52 neuen und 70 gelöschten Zeilen

Datei anzeigen

@ -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();
}

Datei anzeigen

@ -8,7 +8,7 @@ import org.jetbrains.annotations.NotNull;
/** /**
* Represents a captured state of a chiseled bookshelf. * 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. * Gets the last interacted inventory slot.
@ -24,18 +24,12 @@ public interface ChiseledBookshelf extends TileState, BlockInventoryHolder {
*/ */
void setLastInteractedSlot(int lastInteractedSlot); void setLastInteractedSlot(int lastInteractedSlot);
/** // Paper - move docs to TileStateInventoryHolder
* @return inventory
* @see Container#getInventory()
*/
@NotNull @NotNull
@Override @Override
ChiseledBookshelfInventory getInventory(); ChiseledBookshelfInventory getInventory();
/** @Override // Paper - move docs to TileStateInventoryHolder
* @return snapshot inventory
* @see Container#getSnapshotInventory()
*/
@NotNull @NotNull
ChiseledBookshelfInventory getSnapshotInventory(); ChiseledBookshelfInventory getSnapshotInventory();

Datei anzeigen

@ -8,33 +8,7 @@ import org.jetbrains.annotations.NotNull;
/** /**
* Represents a captured state of a container block. * 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
/** // Paper - moved to TileStateInventoryHolder
* 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();
} }

Datei anzeigen

@ -12,7 +12,7 @@ import org.jetbrains.annotations.Nullable;
/** /**
* Represents a captured state of a decorated pot. * 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. * Set the sherd on the provided side.
@ -55,18 +55,12 @@ public interface DecoratedPot extends TileState, BlockInventoryHolder , org.bukk
@NotNull @NotNull
public List<Material> getShards(); public List<Material> getShards();
/** // Paper - move docs to TileStateInventoryHolder
* @return inventory
* @see Container#getInventory()
*/
@NotNull @NotNull
@Override @Override
public DecoratedPotInventory getInventory(); public DecoratedPotInventory getInventory();
/** @Override // Paper - move docs to TileStateInventoryHolder
* @return snapshot inventory
* @see Container#getSnapshotInventory()
*/
@NotNull @NotNull
public DecoratedPotInventory getSnapshotInventory(); public DecoratedPotInventory getSnapshotInventory();

Datei anzeigen

@ -10,7 +10,7 @@ import org.jetbrains.annotations.Nullable;
/** /**
* Represents a captured state of a jukebox. * 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. * Gets the record inserted into the jukebox.
@ -85,18 +85,12 @@ public interface Jukebox extends TileState, BlockInventoryHolder {
*/ */
public boolean eject(); public boolean eject();
/** // Paper - move docs to TileStateInventoryHolder
* @return inventory
* @see Container#getInventory()
*/
@NotNull @NotNull
@Override @Override
JukeboxInventory getInventory(); JukeboxInventory getInventory();
/** @Override // Paper - move docs to TileStateInventoryHolder
* @return snapshot inventory
* @see Container#getSnapshotInventory()
*/
@NotNull @NotNull
JukeboxInventory getSnapshotInventory(); JukeboxInventory getSnapshotInventory();
} }

Datei anzeigen

@ -7,7 +7,7 @@ import org.jetbrains.annotations.NotNull;
/** /**
* Represents a captured state of a lectern. * 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. * Get the current lectern page.
@ -26,18 +26,5 @@ public interface Lectern extends TileState, BlockInventoryHolder {
*/ */
void setPage(int page); void setPage(int page);
/** // Paper - moved to TileStateInventoryHolder
* @return inventory
* @see Container#getInventory()
*/
@NotNull
@Override
Inventory getInventory();
/**
* @return snapshot inventory
* @see Container#getSnapshotInventory()
*/
@NotNull
Inventory getSnapshotInventory();
} }