From 30bd847ac03a18578383435651fe8e2c7ab3acff Mon Sep 17 00:00:00 2001 From: steve <50219120+steveb05@users.noreply.github.com> Date: Tue, 19 Aug 2025 16:26:48 +0200 Subject: [PATCH] fix: use registry for cat variants --- .../entitylib/meta/mobs/tameable/CatMeta.java | 50 +++++++++++++------ 1 file changed, 36 insertions(+), 14 deletions(-) diff --git a/api/src/main/java/me/tofaa/entitylib/meta/mobs/tameable/CatMeta.java b/api/src/main/java/me/tofaa/entitylib/meta/mobs/tameable/CatMeta.java index 5dae395..3251583 100644 --- a/api/src/main/java/me/tofaa/entitylib/meta/mobs/tameable/CatMeta.java +++ b/api/src/main/java/me/tofaa/entitylib/meta/mobs/tameable/CatMeta.java @@ -1,5 +1,7 @@ package me.tofaa.entitylib.meta.mobs.tameable; +import com.github.retrooper.packetevents.protocol.entity.cat.CatVariant; +import com.github.retrooper.packetevents.protocol.entity.cat.CatVariants; import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes; import me.tofaa.entitylib.extras.DyeColor; import me.tofaa.entitylib.meta.Metadata; @@ -20,11 +22,12 @@ public class CatMeta extends TameableMeta { @NotNull public CatMeta.Variant getVariant() { - return super.metadata.getIndex(OFFSET, Variant.BLACK); + final CatVariant catVariant = super.metadata.getIndex(OFFSET, CatVariants.BLACK); + return Variant.fromCatVariant(catVariant); } public void setVariant(@NotNull CatMeta.Variant value) { - super.metadata.setIndex(OFFSET, EntityDataTypes.CAT_VARIANT, value.ordinal()); + super.metadata.setIndex(OFFSET, EntityDataTypes.TYPED_CAT_VARIANT, value.getCatVariant()); } public boolean isLying() { @@ -51,21 +54,40 @@ public class CatMeta extends TameableMeta { super.metadata.setIndex(offset(OFFSET, 3), EntityDataTypes.INT, value.ordinal()); } - public enum Variant { - TABBY, - BLACK, - RED, - SIAMESE, - BRITISH_SHORTHAIR, - CALICO, - PERSIAN, - RAGDOLL, - WHITE, - JELLIE, - ALL_BLACK; + ALL_BLACK(CatVariants.ALL_BLACK), + BLACK(CatVariants.BLACK), + BRITISH_SHORTHAIR(CatVariants.BRITISH_SHORTHAIR), + CALICO(CatVariants.CALICO), + JELLIE(CatVariants.JELLIE), + PERSIAN(CatVariants.PERSIAN), + RAGDOLL(CatVariants.RAGDOLL), + RED(CatVariants.RED), + SIAMESE(CatVariants.SIAMESE), + TABBY(CatVariants.TABBY), + WHITE(CatVariants.WHITE); + + private final CatVariant catVariant; + + Variant(final CatVariant catVariant) { + this.catVariant = catVariant; + } private static final Variant[] VALUES = values(); + + public CatVariant getCatVariant() { + return catVariant; + } + + @NotNull + public static Variant fromCatVariant(@NotNull final CatVariant catVariant) { + for (final Variant variant : VALUES) { + if (variant.getCatVariant().equals(catVariant)) { + return variant; + } + } + return BLACK; + } } }