Skip to content

Commit 30bd847

Browse files
committed
fix: use registry for cat variants
1 parent d4c3b1e commit 30bd847

1 file changed

Lines changed: 36 additions & 14 deletions

File tree

  • api/src/main/java/me/tofaa/entitylib/meta/mobs/tameable

api/src/main/java/me/tofaa/entitylib/meta/mobs/tameable/CatMeta.java

Lines changed: 36 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package 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;
35
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
46
import me.tofaa.entitylib.extras.DyeColor;
57
import 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

Comments
 (0)