Files
RitualMod/src/main/java/dev/hytalemodding/events/RitualBreakBlockEvent.java
T

46 lines
1.9 KiB
Java
Raw Normal View History

2026-09-13 01:37:07 +02:00
package dev.hytalemodding.events;
import com.hypixel.hytale.component.Archetype;
import com.hypixel.hytale.component.ArchetypeChunk;
import com.hypixel.hytale.component.CommandBuffer;
import com.hypixel.hytale.component.Store;
import com.hypixel.hytale.component.query.Query;
import com.hypixel.hytale.component.system.EntityEventSystem;
import com.hypixel.hytale.server.core.event.events.ecs.BreakBlockEvent;
import com.hypixel.hytale.server.core.inventory.ItemStack;
import com.hypixel.hytale.server.core.universe.world.World;
2026-09-13 01:37:07 +02:00
import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
import dev.hytalemodding.RitualSpawner;
import org.checkerframework.checker.nullness.compatqual.NonNullDecl;
import org.checkerframework.checker.nullness.compatqual.NullableDecl;
import org.joml.Vector3i;
public class RitualBreakBlockEvent extends EntityEventSystem<EntityStore, BreakBlockEvent> {
private final RitualSpawner ritualSpawner;
public RitualBreakBlockEvent(RitualSpawner ritualSpawner) {
super(BreakBlockEvent.class);
this.ritualSpawner = ritualSpawner;
}
@Override
public void handle(int index,
@NonNullDecl ArchetypeChunk<EntityStore> archetypeChunk,
@NonNullDecl Store<EntityStore> store,
@NonNullDecl CommandBuffer<EntityStore> commandBuffer,
@NonNullDecl BreakBlockEvent breakBlockEvent) {
ItemStack itemHolding = breakBlockEvent.getItemInHand();
String itemId = "Empty";
if(itemHolding != null) {
itemId = itemHolding.getItemId();
}
2026-09-13 01:37:07 +02:00
Vector3i blockPosition = breakBlockEvent.getTargetBlock();
World world = store.getExternalData().getWorld();
ritualSpawner.blockChangeEvent(itemId, blockPosition, world);
2026-09-13 01:37:07 +02:00
}
@NullableDecl
@Override
public Query<EntityStore> getQuery() {
return Archetype.empty();
}
}