From ae8477dbb95040a021edf23bd94761c25b6413b2 Mon Sep 17 00:00:00 2001 From: YouHaveTrouble Date: Fri, 23 Jan 2026 18:44:01 +0100 Subject: [PATCH] migrate to use the component way of getting the item container state component --- .../QuickStackToChestInteraction.java | 19 ++++++++++++++----- .../QuickStackToNearbyChestsInteraction.java | 12 +++++++++--- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/src/main/java/me/youhavetrouble/quickerstacker/interaction/QuickStackToChestInteraction.java b/src/main/java/me/youhavetrouble/quickerstacker/interaction/QuickStackToChestInteraction.java index 183090c..9236120 100644 --- a/src/main/java/me/youhavetrouble/quickerstacker/interaction/QuickStackToChestInteraction.java +++ b/src/main/java/me/youhavetrouble/quickerstacker/interaction/QuickStackToChestInteraction.java @@ -2,13 +2,13 @@ package me.youhavetrouble.quickerstacker.interaction; import com.hypixel.hytale.codec.builder.BuilderCodec; import com.hypixel.hytale.component.CommandBuffer; +import com.hypixel.hytale.component.ComponentType; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.math.util.ChunkUtil; import com.hypixel.hytale.math.vector.Vector3i; import com.hypixel.hytale.protocol.BlockPosition; import com.hypixel.hytale.protocol.InteractionType; import com.hypixel.hytale.protocol.packets.interface_.NotificationStyle; -import com.hypixel.hytale.server.core.asset.type.blocktype.config.BlockType; import com.hypixel.hytale.server.core.entity.InteractionContext; import com.hypixel.hytale.server.core.entity.entities.Player; import com.hypixel.hytale.server.core.inventory.Inventory; @@ -21,7 +21,9 @@ import com.hypixel.hytale.server.core.modules.interaction.interaction.config.cli import com.hypixel.hytale.server.core.universe.PlayerRef; import com.hypixel.hytale.server.core.universe.world.World; import com.hypixel.hytale.server.core.universe.world.chunk.WorldChunk; +import com.hypixel.hytale.server.core.universe.world.meta.BlockStateModule; import com.hypixel.hytale.server.core.universe.world.meta.state.ItemContainerState; +import com.hypixel.hytale.server.core.universe.world.storage.ChunkStore; import com.hypixel.hytale.server.core.universe.world.storage.EntityStore; import com.hypixel.hytale.server.core.util.NotificationUtil; import me.youhavetrouble.quickerstacker.QuickerStacker; @@ -41,11 +43,18 @@ public class QuickStackToChestInteraction extends SimpleBlockInteraction { if (player == null) return; BlockPosition targetBlockPosition = interactionContext.getTargetBlock(); if (targetBlockPosition == null) return; - if (!QuickerStacker.canInteractWithBlock(ref, world, targetBlockPosition.x, targetBlockPosition.y, targetBlockPosition.z)) return; - WorldChunk chunk = world.getChunk(ChunkUtil.indexChunkFromBlock(targetBlockPosition.x, targetBlockPosition.z)); + int x = targetBlockPosition.x; + int y = targetBlockPosition.y; + int z = targetBlockPosition.z; + if (!QuickerStacker.canInteractWithBlock(ref, world, x, y, z)) return; + WorldChunk chunk = world.getChunk(ChunkUtil.indexChunkFromBlock(x, z)); if (chunk == null) return; - var blockState = chunk.getState(targetBlockPosition.x, targetBlockPosition.y, targetBlockPosition.z); - if (!(blockState instanceof ItemContainerState containerState)) return; + Ref blockRef = chunk.getBlockComponentEntity(x, y, z); + if (blockRef == null) return; + ComponentType stashComponentType = BlockStateModule.get().getComponentType(ItemContainerState.class); + if (stashComponentType == null) return; + ItemContainerState containerState = blockRef.getStore().getComponent(blockRef, stashComponentType); + if (containerState == null) return; Inventory playerInventory = player.getInventory(); if (playerInventory == null) return; ListTransaction> transaction = playerInventory.getCombinedHotbarFirst().quickStackTo(containerState.getItemContainer()); diff --git a/src/main/java/me/youhavetrouble/quickerstacker/interaction/QuickStackToNearbyChestsInteraction.java b/src/main/java/me/youhavetrouble/quickerstacker/interaction/QuickStackToNearbyChestsInteraction.java index b59f9a7..0d141bd 100644 --- a/src/main/java/me/youhavetrouble/quickerstacker/interaction/QuickStackToNearbyChestsInteraction.java +++ b/src/main/java/me/youhavetrouble/quickerstacker/interaction/QuickStackToNearbyChestsInteraction.java @@ -2,6 +2,7 @@ package me.youhavetrouble.quickerstacker.interaction; import com.hypixel.hytale.codec.builder.BuilderCodec; import com.hypixel.hytale.component.CommandBuffer; +import com.hypixel.hytale.component.ComponentType; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.math.util.ChunkUtil; @@ -24,7 +25,9 @@ import com.hypixel.hytale.server.core.modules.interaction.interaction.config.cli import com.hypixel.hytale.server.core.universe.PlayerRef; import com.hypixel.hytale.server.core.universe.world.World; import com.hypixel.hytale.server.core.universe.world.chunk.WorldChunk; +import com.hypixel.hytale.server.core.universe.world.meta.BlockStateModule; import com.hypixel.hytale.server.core.universe.world.meta.state.ItemContainerState; +import com.hypixel.hytale.server.core.universe.world.storage.ChunkStore; import com.hypixel.hytale.server.core.universe.world.storage.EntityStore; import com.hypixel.hytale.server.core.util.NotificationUtil; import me.youhavetrouble.quickerstacker.QuickerStacker; @@ -85,6 +88,8 @@ public class QuickStackToNearbyChestsInteraction extends SimpleBlockInteraction TransformComponent transformComponent = store.getComponent(ref, TransformComponent.getComponentType()); if (transformComponent == null) return foundContainers; Vector3d position = transformComponent.getPosition(); + ComponentType stashComponentType = BlockStateModule.get().getComponentType(ItemContainerState.class); + if (stashComponentType == null) return foundContainers; for (int x = -range; x <= range; x++) { for (int y = -range; y < range; y++) { for (int z = -range; z <= range; z++) { @@ -97,13 +102,14 @@ public class QuickStackToNearbyChestsInteraction extends SimpleBlockInteraction ) continue; WorldChunk chunk = world.getChunk(ChunkUtil.indexChunkFromBlock(position.getX() + x, position.getZ() + z)); if (chunk == null) continue; - var blockState = chunk.getState((int) position.getX() + x, (int) position.getY() + y, (int) position.getZ() + z); - if (!(blockState instanceof ItemContainerState containerState)) continue; + Ref blockRef = chunk.getBlockComponentEntity((int) position.getX() + x, (int) position.getY() + y, (int) position.getZ() + z); + if (blockRef == null) continue; + ItemContainerState containerState = blockRef.getStore().getComponent(blockRef, stashComponentType); + if (containerState == null) continue; foundContainers.add(containerState); } } } - return foundContainers; } }