Class AbstractBlockInventoryTranslator<Type extends Container>
java.lang.Object
org.geysermc.geyser.translator.inventory.InventoryTranslator<Type>
org.geysermc.geyser.translator.inventory.BaseInventoryTranslator<Type>
org.geysermc.geyser.translator.inventory.AbstractBlockInventoryTranslator<Type>
- Direct Known Subclasses:
AbstractFurnaceInventoryTranslator,AnvilInventoryTranslator,BeaconInventoryTranslator,BrewingInventoryTranslator,CartographyInventoryTranslator,CrafterInventoryTranslator,CraftingInventoryTranslator,EnchantingInventoryTranslator,Generic3X3InventoryTranslator,GrindstoneInventoryTranslator,HopperInventoryTranslator,LecternInventoryTranslator,LoomInventoryTranslator,OldSmithingTableTranslator,ShulkerInventoryTranslator,SmithingInventoryTranslator,StonecutterInventoryTranslator
public abstract class AbstractBlockInventoryTranslator<Type extends Container>
extends BaseInventoryTranslator<Type>
Provided as a base for any inventory that requires a block for opening it
-
Nested Class Summary
Nested classes/interfaces inherited from class org.geysermc.geyser.translator.inventory.InventoryTranslator
InventoryTranslator.CraftState -
Field Summary
Fields inherited from class org.geysermc.geyser.translator.inventory.InventoryTranslator
PLAYER_INVENTORY_OFFSET, PLAYER_INVENTORY_SIZE, PLAYER_INVENTORY_TRANSLATOR, size -
Constructor Summary
ConstructorsConstructorDescriptionAbstractBlockInventoryTranslator(int size, InventoryHolder holder, InventoryUpdater updater) AbstractBlockInventoryTranslator(int size, Block javaBlock, org.cloudburstmc.protocol.bedrock.data.inventory.ContainerType containerType, InventoryUpdater updater, Block... additionalValidBlocks) AbstractBlockInventoryTranslator(int size, BlockState javaBlockState, org.cloudburstmc.protocol.bedrock.data.inventory.ContainerType containerType, InventoryUpdater updater, Block... additionalValidBlocks) -
Method Summary
Modifier and TypeMethodDescriptionbooleancanReuseInventory(GeyserSession session, @NonNull Inventory newInventory, @NonNull Inventory previous) Whether a new inventory should be prepared - or if we can re-use the previous one.abstract @Nullable org.cloudburstmc.protocol.bedrock.data.inventory.ContainerTypecloseContainerType(Type container) voidcloseInventory(GeyserSession session, Type container, boolean force) Closes the inventory, and if necessary, cleans up the prepared inventory.voidopenInventory(GeyserSession session, Type container) Opens the previously prepared inventory.booleanprepareInventory(GeyserSession session, Type container) Prepares the inventory before opening it.booleanrequiresOpeningDelay(GeyserSession session, Type container) voidupdateInventory(GeyserSession session, Type container) Updates the inventory by re-sending items for all slots of the inventory.voidupdateSlot(GeyserSession session, Type container, int slot) Updates a specific slot by re-sending the item.Methods inherited from class org.geysermc.geyser.translator.inventory.BaseInventoryTranslator
bedrockSlotToJava, createInventory, getSlotType, javaSlotToBedrock, javaSlotToBedrockContainer, updatePropertyMethods inherited from class org.geysermc.geyser.translator.inventory.InventoryTranslator
acceptRequest, checkNetId, dumpStackRequestDetails, getGridSize, inventoryTranslator, isCursor, makeContainerEntries, rejectRequest, rejectRequest, shouldHandleRequestFirst, shouldRejectItemPlace, translateAutoCraftingRequest, translateCraftingRequest, translateCreativeRequest, translateRequest, translateRequests, translateSpecialRequest
-
Constructor Details
-
AbstractBlockInventoryTranslator
public AbstractBlockInventoryTranslator(int size, Block javaBlock, org.cloudburstmc.protocol.bedrock.data.inventory.ContainerType containerType, InventoryUpdater updater, Block... additionalValidBlocks) - Parameters:
javaBlock- a Java block that is used as a temporary block
-
AbstractBlockInventoryTranslator
public AbstractBlockInventoryTranslator(int size, BlockState javaBlockState, org.cloudburstmc.protocol.bedrock.data.inventory.ContainerType containerType, InventoryUpdater updater, Block... additionalValidBlocks) - Parameters:
size- the amount of slots that the inventory adds alongside the base inventory slotsjavaBlockState- a Java block state that is used as a temporary blockcontainerType- the container type of this inventoryupdater- updateradditionalValidBlocks- any other blocks that can safely use this inventory without a fake block
-
AbstractBlockInventoryTranslator
- Parameters:
size- the amount of slots that the inventory adds alongside the base inventory slotsholder- the custom block holderupdater- updater
-
-
Method Details
-
requiresOpeningDelay
- Overrides:
requiresOpeningDelayin classInventoryTranslator<Type extends Container>
-
canReuseInventory
public boolean canReuseInventory(GeyserSession session, @NonNull Inventory newInventory, @NonNull Inventory previous) Description copied from class:InventoryTranslatorWhether a new inventory should be prepared - or if we can re-use the previous one.- Overrides:
canReuseInventoryin classInventoryTranslator<Type extends Container>
-
prepareInventory
Description copied from class:InventoryTranslatorPrepares the inventory before opening it. Bedrock requires the inventory to "exist" before opening it - that can be either a real block (e.g. chest), or an entity (e.g. horse)- Specified by:
prepareInventoryin classInventoryTranslator<Type extends Container>- Returns:
- whether the inventory was successfully prepared
-
openInventory
Description copied from class:InventoryTranslatorOpens the previously prepared inventory.- Specified by:
openInventoryin classInventoryTranslator<Type extends Container>
-
closeInventory
Description copied from class:InventoryTranslatorCloses the inventory, and if necessary, cleans up the prepared inventory.- Specified by:
closeInventoryin classInventoryTranslator<Type extends Container>
-
updateInventory
Description copied from class:InventoryTranslatorUpdates the inventory by re-sending items for all slots of the inventory.- Specified by:
updateInventoryin classInventoryTranslator<Type extends Container>
-
updateSlot
Description copied from class:InventoryTranslatorUpdates a specific slot by re-sending the item.- Specified by:
updateSlotin classInventoryTranslator<Type extends Container>
-
closeContainerType
public abstract @Nullable org.cloudburstmc.protocol.bedrock.data.inventory.ContainerType closeContainerType(Type container)
-