diff --git a/src/main/java/me/tofaa/entitylib/MetaConverterRegistry.java b/src/main/java/me/tofaa/entitylib/MetaConverterRegistry.java index ce6d4be..5ac8839 100644 --- a/src/main/java/me/tofaa/entitylib/MetaConverterRegistry.java +++ b/src/main/java/me/tofaa/entitylib/MetaConverterRegistry.java @@ -45,6 +45,7 @@ final class MetaConverterRegistry { private final Map> metaClasses = new HashMap<>(); MetaConverterRegistry() { + put(SNIFFER, SnifferMeta.class, SnifferMeta::new); put(INTERACTION, InteractionMeta.class, InteractionMeta::new); put(BLOCK_DISPLAY, BlockDisplayMeta.class, BlockDisplayMeta::new); put(ITEM_DISPLAY, ItemDisplayMeta.class, ItemDisplayMeta::new); diff --git a/src/main/java/me/tofaa/entitylib/meta/mobs/SnifferMeta.java b/src/main/java/me/tofaa/entitylib/meta/mobs/SnifferMeta.java new file mode 100644 index 0000000..2d0c571 --- /dev/null +++ b/src/main/java/me/tofaa/entitylib/meta/mobs/SnifferMeta.java @@ -0,0 +1,33 @@ +package me.tofaa.entitylib.meta.mobs; + +import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes; +import com.github.retrooper.packetevents.protocol.entity.sniffer.SnifferState; +import me.tofaa.entitylib.meta.Metadata; +import me.tofaa.entitylib.meta.types.AgeableMeta; + +public class SnifferMeta extends AgeableMeta { + + public static final byte OFFSET = AgeableMeta.MAX_OFFSET; + public static final byte MAX_OFFSET = OFFSET + 1; + + public SnifferMeta(int entityId, Metadata metadata) { + super(entityId, metadata); + } + + public SnifferState getState() { + return metadata.getIndex(OFFSET, SnifferState.IDLING); + } + + public void setState(SnifferState state) { + super.metadata.setIndex(OFFSET, EntityDataTypes.SNIFFER_STATE, state); + } + + public int getDropSeedAtTick() { + return metadata.getIndex(offset(OFFSET, 1), 0); + } + + public void setDropSeedAtTick(int tick) { + super.metadata.setIndex(offset(OFFSET, 1), EntityDataTypes.INT, tick); + } + +}