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,