Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -20,11 +22,12 @@ public CatMeta(int entityId, Metadata metadata) {

@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() {
Expand All @@ -51,21 +54,40 @@ public void setCollarColor(@NotNull DyeColor value) {
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;
}
}

}
Original file line number Diff line number Diff line change
@@ -1,19 +1,31 @@
package me.tofaa.entitylib.meta.mobs.tameable;

import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
import com.github.retrooper.packetevents.protocol.entity.wolfvariant.WolfVariant;
import com.github.retrooper.packetevents.protocol.entity.wolfvariant.WolfVariants;
import me.tofaa.entitylib.extras.DyeColor;
import me.tofaa.entitylib.meta.Metadata;
import me.tofaa.entitylib.meta.types.TameableMeta;
import org.jetbrains.annotations.NotNull;

public class WolfMeta extends TameableMeta {

public static final byte OFFSET = TameableMeta.MAX_OFFSET;
public static final byte MAX_OFFSET = OFFSET + 3;
public static final byte MAX_OFFSET = OFFSET + 5;

public WolfMeta(int entityId, Metadata metadata) {
super(entityId, metadata);
}

@NotNull
public WolfVariant getVariant() {
return super.metadata.getIndex(offset(OFFSET, 3), WolfVariants.PALE);
}

public void setVariant(@NotNull WolfVariant value) {
super.metadata.setIndex(offset(OFFSET, 3), EntityDataTypes.TYPED_WOLF_VARIANT, value);
}

public boolean isBegging() {
return super.metadata.getIndex(OFFSET, false);
}
Expand Down
Loading