Proper block type detection & chunk data access
Some checks failed
Verifying Everything Compiles / build (push) Has been cancelled

This commit is contained in:
2026-09-13 02:26:06 +02:00
parent 2b0e178704
commit 5feb2b851f
3 changed files with 12 additions and 4 deletions

View File

@@ -1,9 +1,13 @@
package dev.hytalemodding; package dev.hytalemodding;
import com.hypixel.hytale.server.core.universe.world.World;
import org.joml.Vector3i; import org.joml.Vector3i;
public class RitualSpawner { public class RitualSpawner {
public void blockChangeEvent(String blockId, Vector3i targetPosition) { public void blockChangeEvent(String itemId, Vector3i targetPosition, World world) {
RitualPlugin.LOGGER.atInfo().log("a block got placed with the id: %s", blockId); String blockId = world.getBlockType(targetPosition).getId();
RitualPlugin.LOGGER.atInfo().log(
"a block got placed or removed at the position: %d - %d - %d with the block id: %s and with the item id in hand: %s",
targetPosition.x, targetPosition.y, targetPosition.z, blockId, itemId);
} }
} }

View File

@@ -7,6 +7,7 @@ import com.hypixel.hytale.component.Store;
import com.hypixel.hytale.component.query.Query; import com.hypixel.hytale.component.query.Query;
import com.hypixel.hytale.component.system.EntityEventSystem; import com.hypixel.hytale.component.system.EntityEventSystem;
import com.hypixel.hytale.server.core.event.events.ecs.BreakBlockEvent; import com.hypixel.hytale.server.core.event.events.ecs.BreakBlockEvent;
import com.hypixel.hytale.server.core.universe.world.World;
import com.hypixel.hytale.server.core.universe.world.storage.EntityStore; import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
import dev.hytalemodding.RitualSpawner; import dev.hytalemodding.RitualSpawner;
import org.checkerframework.checker.nullness.compatqual.NonNullDecl; import org.checkerframework.checker.nullness.compatqual.NonNullDecl;
@@ -28,7 +29,8 @@ public class RitualBreakBlockEvent extends EntityEventSystem<EntityStore, BreakB
@NonNullDecl BreakBlockEvent breakBlockEvent) { @NonNullDecl BreakBlockEvent breakBlockEvent) {
String itemHolding = breakBlockEvent.getItemInHand().getItemId(); String itemHolding = breakBlockEvent.getItemInHand().getItemId();
Vector3i blockPosition = breakBlockEvent.getTargetBlock(); Vector3i blockPosition = breakBlockEvent.getTargetBlock();
ritualSpawner.blockChangeEvent(itemHolding, blockPosition); World world = store.getExternalData().getWorld();
ritualSpawner.blockChangeEvent(itemHolding, blockPosition, world);
} }
@NullableDecl @NullableDecl

View File

@@ -6,6 +6,7 @@ import com.hypixel.hytale.component.CommandBuffer;
import com.hypixel.hytale.component.Store; import com.hypixel.hytale.component.Store;
import com.hypixel.hytale.component.query.Query; import com.hypixel.hytale.component.query.Query;
import com.hypixel.hytale.server.core.event.events.ecs.PlaceBlockEvent; import com.hypixel.hytale.server.core.event.events.ecs.PlaceBlockEvent;
import com.hypixel.hytale.server.core.universe.world.World;
import dev.hytalemodding.RitualSpawner; import dev.hytalemodding.RitualSpawner;
import com.hypixel.hytale.component.system.EntityEventSystem; import com.hypixel.hytale.component.system.EntityEventSystem;
import com.hypixel.hytale.server.core.universe.world.storage.EntityStore; import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
@@ -28,7 +29,8 @@ public class RitualPlaceBlockEvent extends EntityEventSystem<EntityStore, PlaceB
@NonNullDecl PlaceBlockEvent placeBlockEvent) { @NonNullDecl PlaceBlockEvent placeBlockEvent) {
String blockId = placeBlockEvent.getItemInHand().getItemId(); String blockId = placeBlockEvent.getItemInHand().getItemId();
Vector3i targetPosition = placeBlockEvent.getTargetBlock(); Vector3i targetPosition = placeBlockEvent.getTargetBlock();
ritualSpawner.blockChangeEvent(blockId, targetPosition); World world = store.getExternalData().getWorld();
ritualSpawner.blockChangeEvent(blockId, targetPosition, world);
} }
@NullableDecl @NullableDecl