Class InventoryTranslator
java.lang.Object
org.geysermc.geyser.translator.inventory.InventoryTranslator
- Direct Known Subclasses:
BaseInventoryTranslator,PlayerInventoryTranslator
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intstatic final intstatic final InventoryTranslatorfinal int -
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, org.geysermc.mcprotocollib.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 org.geysermc.mcprotocollib.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 final 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) final 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:
-
PLAYER_INVENTORY_OFFSET
public static final int PLAYER_INVENTORY_OFFSET- See Also:
-
size
public final int size
-
-
Constructor Details
-
InventoryTranslator
public InventoryTranslator(int size)
-
-
Method Details
-
prepareInventory
-
openInventory
-
closeInventory
-
updateProperty
-
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, org.geysermc.mcprotocollib.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 org.geysermc.mcprotocollib.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.
-