11package me .tofaa .entitylib .meta .mobs .tameable ;
22
3+ import com .github .retrooper .packetevents .protocol .entity .cat .CatVariant ;
4+ import com .github .retrooper .packetevents .protocol .entity .cat .CatVariants ;
35import com .github .retrooper .packetevents .protocol .entity .data .EntityDataTypes ;
46import me .tofaa .entitylib .extras .DyeColor ;
57import me .tofaa .entitylib .meta .Metadata ;
@@ -20,11 +22,12 @@ public CatMeta(int entityId, Metadata metadata) {
2022
2123 @ NotNull
2224 public CatMeta .Variant getVariant () {
23- return super .metadata .getIndex (OFFSET , Variant .BLACK );
25+ final CatVariant catVariant = super .metadata .getIndex (OFFSET , CatVariants .BLACK );
26+ return Variant .fromCatVariant (catVariant );
2427 }
2528
2629 public void setVariant (@ NotNull CatMeta .Variant value ) {
27- super .metadata .setIndex (OFFSET , EntityDataTypes .CAT_VARIANT , value .ordinal ());
30+ super .metadata .setIndex (OFFSET , EntityDataTypes .TYPED_CAT_VARIANT , value .getCatVariant ());
2831 }
2932
3033 public boolean isLying () {
@@ -51,21 +54,40 @@ public void setCollarColor(@NotNull DyeColor value) {
5154 super .metadata .setIndex (offset (OFFSET , 3 ), EntityDataTypes .INT , value .ordinal ());
5255 }
5356
54-
5557 public enum Variant {
56- TABBY ,
57- BLACK ,
58- RED ,
59- SIAMESE ,
60- BRITISH_SHORTHAIR ,
61- CALICO ,
62- PERSIAN ,
63- RAGDOLL ,
64- WHITE ,
65- JELLIE ,
66- ALL_BLACK ;
58+ ALL_BLACK (CatVariants .ALL_BLACK ),
59+ BLACK (CatVariants .BLACK ),
60+ BRITISH_SHORTHAIR (CatVariants .BRITISH_SHORTHAIR ),
61+ CALICO (CatVariants .CALICO ),
62+ JELLIE (CatVariants .JELLIE ),
63+ PERSIAN (CatVariants .PERSIAN ),
64+ RAGDOLL (CatVariants .RAGDOLL ),
65+ RED (CatVariants .RED ),
66+ SIAMESE (CatVariants .SIAMESE ),
67+ TABBY (CatVariants .TABBY ),
68+ WHITE (CatVariants .WHITE );
69+
70+ private final CatVariant catVariant ;
71+
72+ Variant (final CatVariant catVariant ) {
73+ this .catVariant = catVariant ;
74+ }
6775
6876 private static final Variant [] VALUES = values ();
77+
78+ public CatVariant getCatVariant () {
79+ return catVariant ;
80+ }
81+
82+ @ NotNull
83+ public static Variant fromCatVariant (@ NotNull final CatVariant catVariant ) {
84+ for (final Variant variant : VALUES ) {
85+ if (variant .getCatVariant ().equals (catVariant )) {
86+ return variant ;
87+ }
88+ }
89+ return BLACK ;
90+ }
6991 }
7092
7193}
0 commit comments