diff --git a/pom.xml b/pom.xml index 50f3417..03f142d 100644 --- a/pom.xml +++ b/pom.xml @@ -20,8 +20,8 @@ 25 25 UTF-8 - 0.5.1 - 1.5.0 + 0.7.0 + 1.6.0 diff --git a/src/main/java/me/youhavetrouble/quickerstacker/QuickerStacker.java b/src/main/java/me/youhavetrouble/quickerstacker/QuickerStacker.java index e5e3afa..8ee9845 100644 --- a/src/main/java/me/youhavetrouble/quickerstacker/QuickerStacker.java +++ b/src/main/java/me/youhavetrouble/quickerstacker/QuickerStacker.java @@ -16,6 +16,8 @@ import com.hypixel.hytale.server.core.plugin.JavaPlugin; import com.hypixel.hytale.server.core.plugin.JavaPluginInit; 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.section.BlockSection; +import com.hypixel.hytale.server.core.universe.world.storage.ChunkStore; import com.hypixel.hytale.server.core.util.Config; import me.youhavetrouble.quickerstacker.config.QuickerStackerConfig; import me.youhavetrouble.quickerstacker.interaction.QuickStackInteraction; @@ -94,9 +96,14 @@ public class QuickerStacker extends JavaPlugin { Player player = ref.getStore().getComponent(ref, Player.getComponentType()); if (player == null) return false; PlayerRef playerRef = ref.getStore().getComponent(ref, PlayerRef.getComponentType()); - InteractionManager interactionManager = new InteractionManager(playerRef, new InteractionSimulationHandler()); - BlockType blockType = world.getBlockType(x, y, z); + Ref sectionRef = world.getChunkStore().getChunkSectionReferenceAtBlock(x, y, z); + if (sectionRef == null) return false; + BlockSection blockSection = sectionRef.getStore().getComponent(sectionRef, BlockSection.getComponentType()); + if (blockSection == null) return false; + int blockId = blockSection.get(x, y, z); + BlockType blockType = BlockType.getAssetMap().getAsset(blockId); if (blockType == null) return false; + InteractionManager interactionManager = new InteractionManager(playerRef, new InteractionSimulationHandler()); var event = new UseBlockEvent.Pre(InteractionType.Use, InteractionContext.forProxyEntity(interactionManager, ref, ref, ref.getStore()), new Vector3i(x, y, z), blockType); ref.getStore().invoke(ref, event); return !event.isCancelled(); diff --git a/src/main/java/me/youhavetrouble/quickerstacker/interaction/QuickStackToChestInteraction.java b/src/main/java/me/youhavetrouble/quickerstacker/interaction/QuickStackToChestInteraction.java index f383357..2c97f9b 100644 --- a/src/main/java/me/youhavetrouble/quickerstacker/interaction/QuickStackToChestInteraction.java +++ b/src/main/java/me/youhavetrouble/quickerstacker/interaction/QuickStackToChestInteraction.java @@ -3,7 +3,6 @@ package me.youhavetrouble.quickerstacker.interaction; import com.hypixel.hytale.codec.builder.BuilderCodec; import com.hypixel.hytale.component.CommandBuffer; import com.hypixel.hytale.component.Ref; -import com.hypixel.hytale.math.util.ChunkUtil; import com.hypixel.hytale.protocol.BlockPosition; import com.hypixel.hytale.protocol.InteractionType; import com.hypixel.hytale.protocol.packets.interface_.NotificationStyle; @@ -16,12 +15,12 @@ import com.hypixel.hytale.server.core.inventory.container.SimpleItemContainer; import com.hypixel.hytale.server.core.inventory.transaction.ItemStackTransaction; import com.hypixel.hytale.server.core.inventory.transaction.ListTransaction; import com.hypixel.hytale.server.core.inventory.transaction.MoveTransaction; +import com.hypixel.hytale.server.core.modules.block.BlockModule; import com.hypixel.hytale.server.core.modules.block.components.ItemContainerBlock; import com.hypixel.hytale.server.core.modules.interaction.interaction.CooldownHandler; import com.hypixel.hytale.server.core.modules.interaction.interaction.config.client.SimpleBlockInteraction; 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.storage.ChunkStore; import com.hypixel.hytale.server.core.universe.world.storage.EntityStore; import com.hypixel.hytale.server.core.util.NotificationUtil; @@ -52,9 +51,7 @@ public class QuickStackToChestInteraction extends SimpleBlockInteraction { 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; - Ref blockRef = chunk.getBlockComponentEntity(x, y, z); + Ref blockRef = BlockModule.getBlockEntity(world, x, y, z); if (blockRef == null) return; ItemContainerBlock containerBlock = blockRef.getStore().getComponent(blockRef, ItemContainerBlock.getComponentType()); if (containerBlock == null) return; diff --git a/src/main/java/me/youhavetrouble/quickerstacker/interaction/QuickStackToNearbyChestsInteraction.java b/src/main/java/me/youhavetrouble/quickerstacker/interaction/QuickStackToNearbyChestsInteraction.java index 7484022..5b93a66 100644 --- a/src/main/java/me/youhavetrouble/quickerstacker/interaction/QuickStackToNearbyChestsInteraction.java +++ b/src/main/java/me/youhavetrouble/quickerstacker/interaction/QuickStackToNearbyChestsInteraction.java @@ -4,7 +4,6 @@ import com.hypixel.hytale.codec.builder.BuilderCodec; import com.hypixel.hytale.component.CommandBuffer; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; -import com.hypixel.hytale.math.util.ChunkUtil; import com.hypixel.hytale.protocol.BlockPosition; import com.hypixel.hytale.protocol.InteractionType; import com.hypixel.hytale.protocol.packets.interface_.NotificationStyle; @@ -17,13 +16,13 @@ import com.hypixel.hytale.server.core.inventory.container.ItemContainer; import com.hypixel.hytale.server.core.inventory.transaction.ItemStackTransaction; import com.hypixel.hytale.server.core.inventory.transaction.ListTransaction; import com.hypixel.hytale.server.core.inventory.transaction.MoveTransaction; +import com.hypixel.hytale.server.core.modules.block.BlockModule; import com.hypixel.hytale.server.core.modules.block.components.ItemContainerBlock; import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent; import com.hypixel.hytale.server.core.modules.interaction.interaction.CooldownHandler; import com.hypixel.hytale.server.core.modules.interaction.interaction.config.client.SimpleBlockInteraction; 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.storage.ChunkStore; import com.hypixel.hytale.server.core.universe.world.storage.EntityStore; import com.hypixel.hytale.server.core.util.NotificationUtil; @@ -95,9 +94,7 @@ public class QuickStackToNearbyChestsInteraction extends SimpleBlockInteraction (int) (position.y + y), (int) (position.z + z)) ) continue; - WorldChunk chunk = world.getChunk(ChunkUtil.indexChunkFromBlock(position.x + x, position.z + z)); - if (chunk == null) continue; - Ref blockRef = chunk.getBlockComponentEntity((int) position.x + x, (int) position.y + y, (int) position.z + z); + Ref blockRef = BlockModule.getBlockEntity(world, (int) position.x + x, (int) position.y + y, (int) position.z + z); if (blockRef == null) continue; ItemContainerBlock containerBlock = blockRef.getStore().getComponent(blockRef, ItemContainerBlock.getComponentType()); if (containerBlock == null) continue; diff --git a/src/main/resources/Server/Item/Unarmed/Interactions/Empty.json b/src/main/resources/Server/Item/Unarmed/Interactions/Empty.json index 84c077d..c8be8dc 100644 --- a/src/main/resources/Server/Item/Unarmed/Interactions/Empty.json +++ b/src/main/resources/Server/Item/Unarmed/Interactions/Empty.json @@ -1,6 +1,5 @@ { "Interactions": { - "Wielding": "Double_Jump", "Primary": { "Settings": { "Adventure": { @@ -28,6 +27,7 @@ } ] }, + "Secondary": "Block_Secondary", "Use": { "Settings": { "Adventure": { @@ -91,6 +91,33 @@ } ] }, - "Secondary": "Block_Secondary" + "Ability3": { + "Settings": { + "Adventure": { + "Cooldown": { + "Id": "BlockInteraction", + "Cooldown": 0.35 + } + }, + "Creative": { + "Cooldown": { + "Id": "BlockInteraction_Creative", + "Cooldown": 0.35, + "ClickBypass": true + } + } + }, + "Interactions": [ + { + "Type": "Simple", + "Next": { + "Type": "UseBlock", + "Failed": { + "Type": "UseEntity" + } + } + } + ] + } } } diff --git a/src/main/resources/manifest.json b/src/main/resources/manifest.json index d747e1d..18cdc79 100644 --- a/src/main/resources/manifest.json +++ b/src/main/resources/manifest.json @@ -11,7 +11,7 @@ } ], "Website": "https://www.curseforge.com/hytale/mods/quickerstacker", - "ServerVersion": "=${hytale.version}", + "ServerVersion": ">=${hytale.version}", "Dependencies": {}, "OptionalDependencies": {}, "DisabledByDefault": false,