Class InventoryTranslator
java.lang.Object
org.geysermc.geyser.translator.inventory.InventoryTranslator
- Direct Known Subclasses:
BaseInventoryTranslator,PlayerInventoryTranslator
-
Nested Class Summary
Nested Classes -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected static org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.response.ItemStackResponseacceptRequest(org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.ItemStackRequest request, List<org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.response.ItemStackResponseContainer> containerEntries)abstract intbedrockSlotToJava(org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.ItemStackRequestSlotData slotInfoData)booleancheckNetId(GeyserSession session, Inventory inventory, org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.ItemStackRequestSlotData slotInfoData)abstract voidcloseInventory(GeyserSession session, Inventory inventory)abstract InventorycreateInventory(String name, int windowId, com.github.steveice10.mc.protocol.data.game.inventory.ContainerType containerType, PlayerInventory playerInventory)protected voiddumpStackRequestDetails(GeyserSession session, Inventory inventory, org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.ItemStackRequestSlotData source, org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.ItemStackRequestSlotData destination)Print out the contents of an ItemStackRequest, should the net ID check fail.intUsed for crafting-related transactions.abstract SlotTypegetSlotType(int javaSlot)static @Nullable InventoryTranslatorinventoryTranslator(@Nullable com.github.steveice10.mc.protocol.data.game.inventory.ContainerType type)Gets theInventoryTranslatorfor the givenContainerType.protected static booleanisCursor(org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.ItemStackRequestSlotData slotInfoData)abstract intjavaSlotToBedrock(int javaSlot)abstract BedrockContainerSlotjavaSlotToBedrockContainer(int javaSlot)protected List<org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.response.ItemStackResponseContainer>makeContainerEntries(GeyserSession session, Inventory inventory, it.unimi.dsi.fastutil.ints.IntSet affectedSlots)abstract voidopenInventory(GeyserSession session, Inventory inventory)abstract booleanprepareInventory(GeyserSession session, Inventory inventory)protected static org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.response.ItemStackResponserejectRequest(org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.ItemStackRequest request)Reject an incorrect ItemStackRequest.protected static org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.response.ItemStackResponserejectRequest(org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.ItemStackRequest request, boolean throwError)Reject an incorrect ItemStackRequest.protected booleanshouldHandleRequestFirst(org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.action.ItemStackRequestAction action, Inventory inventory)Should be overrided if this request matches a certain criteria and shouldn't be treated normally.protected booleanshouldRejectItemPlace(GeyserSession session, Inventory inventory, org.cloudburstmc.protocol.bedrock.data.inventory.ContainerSlotType bedrockSourceContainer, int javaSourceSlot, org.cloudburstmc.protocol.bedrock.data.inventory.ContainerSlotType bedrockDestinationContainer, int javaDestinationSlot)Should be overwritten in cases where specific inventories should reject an item being in a specific spot.org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.response.ItemStackResponsetranslateAutoCraftingRequest(GeyserSession session, Inventory inventory, org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.ItemStackRequest request)org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.response.ItemStackResponsetranslateCraftingRequest(GeyserSession session, Inventory inventory, org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.ItemStackRequest request)protected org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.response.ItemStackResponsetranslateCreativeRequest(GeyserSession session, Inventory inventory, org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.ItemStackRequest request)Handled inPlayerInventoryTranslatororg.cloudburstmc.protocol.bedrock.data.inventory.itemstack.response.ItemStackResponsetranslateRequest(GeyserSession session, Inventory inventory, org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.ItemStackRequest request)voidtranslateRequests(GeyserSession session, Inventory inventory, List<org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.ItemStackRequest> requests)protected org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.response.ItemStackResponsetranslateSpecialRequest(GeyserSession session, Inventory inventory, org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.ItemStackRequest request)IfshouldHandleRequestFirst(ItemStackRequestAction, Inventory)returns true, this will be calledabstract voidupdateInventory(GeyserSession session, Inventory inventory)abstract voidupdateProperty(GeyserSession session, Inventory inventory, int key, int value)abstract voidupdateSlot(GeyserSession session, Inventory inventory, int slot)
-
Field Details
-
PLAYER_INVENTORY_TRANSLATOR
-
PLAYER_INVENTORY_SIZE
public static final int PLAYER_INVENTORY_SIZE- See Also:
- Constant Field Values
-
PLAYER_INVENTORY_OFFSET
public static final int PLAYER_INVENTORY_OFFSET- See Also:
- Constant Field Values
-
size
public final int size
-
-
Constructor Details
-
InventoryTranslator
public InventoryTranslator(int size)
-
-
Method Details
-
prepareInventory
-
openInventory
-
closeInventory
-
updateProperty
public abstract void updateProperty(GeyserSession session, Inventory inventory, int key, int value) -
updateInventory
-
updateSlot
-
bedrockSlotToJava
public abstract int bedrockSlotToJava(org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.ItemStackRequestSlotData slotInfoData) -
javaSlotToBedrock
public abstract int javaSlotToBedrock(int javaSlot) -
javaSlotToBedrockContainer
-
getSlotType
-
createInventory
public abstract Inventory createInventory(String name, int windowId, com.github.steveice10.mc.protocol.data.game.inventory.ContainerType containerType, PlayerInventory playerInventory) -
getGridSize
public int getGridSize()Used for crafting-related transactions. Will override in PlayerInventoryTranslator and CraftingInventoryTranslator. -
shouldRejectItemPlace
protected boolean shouldRejectItemPlace(GeyserSession session, Inventory inventory, org.cloudburstmc.protocol.bedrock.data.inventory.ContainerSlotType bedrockSourceContainer, int javaSourceSlot, org.cloudburstmc.protocol.bedrock.data.inventory.ContainerSlotType bedrockDestinationContainer, int javaDestinationSlot)Should be overwritten in cases where specific inventories should reject an item being in a specific spot. For examples, looms use this to reject items that are dyes in Bedrock but not in Java. The source/destination slot will be -1 if the cursor is the slot- Returns:
- true if this transfer should be rejected
-
shouldHandleRequestFirst
protected boolean shouldHandleRequestFirst(org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.action.ItemStackRequestAction action, Inventory inventory)Should be overrided if this request matches a certain criteria and shouldn't be treated normally. E.G. anvil renaming or enchanting -
translateSpecialRequest
protected org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.response.ItemStackResponse translateSpecialRequest(GeyserSession session, Inventory inventory, org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.ItemStackRequest request)IfshouldHandleRequestFirst(ItemStackRequestAction, Inventory)returns true, this will be called -
translateRequests
public final void translateRequests(GeyserSession session, Inventory inventory, List<org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.ItemStackRequest> requests) -
translateRequest
public org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.response.ItemStackResponse translateRequest(GeyserSession session, Inventory inventory, org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.ItemStackRequest request) -
translateCraftingRequest
public org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.response.ItemStackResponse translateCraftingRequest(GeyserSession session, Inventory inventory, org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.ItemStackRequest request) -
translateAutoCraftingRequest
public org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.response.ItemStackResponse translateAutoCraftingRequest(GeyserSession session, Inventory inventory, org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.ItemStackRequest request) -
translateCreativeRequest
protected org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.response.ItemStackResponse translateCreativeRequest(GeyserSession session, Inventory inventory, org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.ItemStackRequest request)Handled inPlayerInventoryTranslator -
acceptRequest
protected static org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.response.ItemStackResponse acceptRequest(org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.ItemStackRequest request, List<org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.response.ItemStackResponseContainer> containerEntries) -
rejectRequest
protected static org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.response.ItemStackResponse rejectRequest(org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.ItemStackRequest request)Reject an incorrect ItemStackRequest. -
rejectRequest
protected static org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.response.ItemStackResponse rejectRequest(org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.ItemStackRequest request, boolean throwError)Reject an incorrect ItemStackRequest.- Parameters:
throwError- whether this request was truly erroneous (true), or known as an outcome and should not be treated as bad (false).
-
dumpStackRequestDetails
protected void dumpStackRequestDetails(GeyserSession session, Inventory inventory, org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.ItemStackRequestSlotData source, org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.ItemStackRequestSlotData destination)Print out the contents of an ItemStackRequest, should the net ID check fail. -
checkNetId
public boolean checkNetId(GeyserSession session, Inventory inventory, org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.ItemStackRequestSlotData slotInfoData) -
makeContainerEntries
protected final List<org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.response.ItemStackResponseContainer> makeContainerEntries(GeyserSession session, Inventory inventory, it.unimi.dsi.fastutil.ints.IntSet affectedSlots) -
isCursor
protected static boolean isCursor(org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.ItemStackRequestSlotData slotInfoData) -
inventoryTranslator
public static @Nullable InventoryTranslator inventoryTranslator(@Nullable com.github.steveice10.mc.protocol.data.game.inventory.ContainerType type)Gets theInventoryTranslatorfor the givenContainerType. ReturnsPLAYER_INVENTORY_TRANSLATORif type is null.- Parameters:
type- the type- Returns:
- the InventoryType for the given ContainerType.
-