more metas to add
This commit is contained in:
parent
fdc47c5368
commit
0d709013e2
16 changed files with 513 additions and 4 deletions
|
@ -4,6 +4,13 @@ import com.github.retrooper.packetevents.protocol.entity.type.EntityType;
|
||||||
import me.tofaa.entitylib.meta.EntityMeta;
|
import me.tofaa.entitylib.meta.EntityMeta;
|
||||||
import me.tofaa.entitylib.meta.Metadata;
|
import me.tofaa.entitylib.meta.Metadata;
|
||||||
import me.tofaa.entitylib.meta.mobs.*;
|
import me.tofaa.entitylib.meta.mobs.*;
|
||||||
|
import me.tofaa.entitylib.meta.mobs.DonkeyMeta;
|
||||||
|
import me.tofaa.entitylib.meta.mobs.cuboid.MagmaCubeMeta;
|
||||||
|
import me.tofaa.entitylib.meta.mobs.cuboid.SlimeMeta;
|
||||||
|
import me.tofaa.entitylib.meta.mobs.horse.*;
|
||||||
|
import me.tofaa.entitylib.meta.mobs.tameable.CatMeta;
|
||||||
|
import me.tofaa.entitylib.meta.mobs.tameable.ParrotMeta;
|
||||||
|
import me.tofaa.entitylib.meta.mobs.tameable.WolfMeta;
|
||||||
import me.tofaa.entitylib.meta.projectile.SmallFireballMeta;
|
import me.tofaa.entitylib.meta.projectile.SmallFireballMeta;
|
||||||
import me.tofaa.entitylib.meta.projectile.ThrownEggMeta;
|
import me.tofaa.entitylib.meta.projectile.ThrownEggMeta;
|
||||||
import me.tofaa.entitylib.meta.projectile.ThrownExpBottleMeta;
|
import me.tofaa.entitylib.meta.projectile.ThrownExpBottleMeta;
|
||||||
|
@ -44,6 +51,17 @@ final class MetaConverterRegistry {
|
||||||
put(FROG, FrogMeta::new);
|
put(FROG, FrogMeta::new);
|
||||||
put(GOAT, GoatMeta::new);
|
put(GOAT, GoatMeta::new);
|
||||||
put(HOGLIN, HoglinMeta::new);
|
put(HOGLIN, HoglinMeta::new);
|
||||||
|
put(CAT, CatMeta::new);
|
||||||
|
put(PARROT, ParrotMeta::new);
|
||||||
|
put(WOLF, WolfMeta::new);
|
||||||
|
put(DONKEY, DonkeyMeta::new);
|
||||||
|
put(HORSE, HorseMeta::new);
|
||||||
|
put(LLAMA, LlamaMeta::new);
|
||||||
|
put(MULE, MuleMeta::new);
|
||||||
|
put(SKELETON_HORSE, SkeletonHorseMeta::new);
|
||||||
|
put(ZOMBIE_HORSE, ZombieHorseMeta::new);
|
||||||
|
put(SLIME, SlimeMeta::new);
|
||||||
|
put(MAGMA_CUBE, MagmaCubeMeta::new);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void put(EntityType entityType, BiFunction<Integer, Metadata, EntityMeta> function) {
|
private void put(EntityType entityType, BiFunction<Integer, Metadata, EntityMeta> function) {
|
||||||
|
|
25
src/main/java/me/tofaa/entitylib/meta/mobs/GhastMeta.java
Normal file
25
src/main/java/me/tofaa/entitylib/meta/mobs/GhastMeta.java
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
package me.tofaa.entitylib.meta.mobs;
|
||||||
|
|
||||||
|
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
|
||||||
|
import me.tofaa.entitylib.meta.Metadata;
|
||||||
|
import me.tofaa.entitylib.meta.types.MobMeta;
|
||||||
|
|
||||||
|
public class GhastMeta extends MobMeta {
|
||||||
|
|
||||||
|
public static final byte OFFSET = MobMeta.MAX_OFFSET;
|
||||||
|
public static final byte MAX_OFFSET = OFFSET + 1;
|
||||||
|
|
||||||
|
public GhastMeta(int entityId, Metadata metadata) {
|
||||||
|
super(entityId, metadata);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public boolean isAttacking() {
|
||||||
|
return super.metadata.getIndex(OFFSET, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAttacking(boolean value) {
|
||||||
|
super.metadata.setIndex(OFFSET, EntityDataTypes.BOOLEAN, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
24
src/main/java/me/tofaa/entitylib/meta/mobs/PhantomMeta.java
Normal file
24
src/main/java/me/tofaa/entitylib/meta/mobs/PhantomMeta.java
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
package me.tofaa.entitylib.meta.mobs;
|
||||||
|
|
||||||
|
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
|
||||||
|
import me.tofaa.entitylib.meta.Metadata;
|
||||||
|
import me.tofaa.entitylib.meta.types.MobMeta;
|
||||||
|
|
||||||
|
public class PhantomMeta extends MobMeta {
|
||||||
|
|
||||||
|
public static final byte OFFSET = MobMeta.MAX_OFFSET;
|
||||||
|
public static final byte MAX_OFFSET = OFFSET + 1;
|
||||||
|
|
||||||
|
public PhantomMeta(int entityId, Metadata metadata) {
|
||||||
|
super(entityId, metadata);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getSize() {
|
||||||
|
return super.metadata.getIndex(OFFSET, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSize(int value) {
|
||||||
|
super.metadata.setIndex(OFFSET, EntityDataTypes.INT, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
package me.tofaa.entitylib.meta.mobs.cuboid;
|
||||||
|
|
||||||
|
import me.tofaa.entitylib.meta.Metadata;
|
||||||
|
|
||||||
|
public class MagmaCubeMeta extends SlimeMeta {
|
||||||
|
|
||||||
|
public static final byte OFFSET = SlimeMeta.MAX_OFFSET;
|
||||||
|
public static final byte MAX_OFFSET = OFFSET + 0;
|
||||||
|
|
||||||
|
public MagmaCubeMeta(int entityId, Metadata metadata) {
|
||||||
|
super(entityId, metadata);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
package me.tofaa.entitylib.meta.mobs.cuboid;
|
||||||
|
|
||||||
|
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
|
||||||
|
import me.tofaa.entitylib.meta.Metadata;
|
||||||
|
import me.tofaa.entitylib.meta.types.MobMeta;
|
||||||
|
|
||||||
|
public class SlimeMeta extends MobMeta {
|
||||||
|
public static final byte OFFSET = MobMeta.MAX_OFFSET;
|
||||||
|
public static final byte MAX_OFFSET = OFFSET + 1;
|
||||||
|
|
||||||
|
public SlimeMeta(int entityId, Metadata metadata) {
|
||||||
|
super(entityId, metadata);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getSize() {
|
||||||
|
return super.metadata.getIndex(OFFSET, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSize(int value) {
|
||||||
|
super.metadata.setIndex(OFFSET, EntityDataTypes.INT, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,82 @@
|
||||||
|
package me.tofaa.entitylib.meta.mobs.horse;
|
||||||
|
|
||||||
|
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
|
||||||
|
import me.tofaa.entitylib.meta.Metadata;
|
||||||
|
import me.tofaa.entitylib.meta.types.MobMeta;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public abstract class BaseHorseMeta extends MobMeta {
|
||||||
|
|
||||||
|
public static final byte OFFSET = MobMeta.MAX_OFFSET;
|
||||||
|
public static final byte MAX_OFFSET = OFFSET + 2;
|
||||||
|
|
||||||
|
private final static byte TAMED_BIT = 0x02;
|
||||||
|
private final static byte SADDLED_BIT = 0x04;
|
||||||
|
private final static byte HAS_BRED_BIT = 0x08;
|
||||||
|
private final static byte EATING_BIT = 0x10;
|
||||||
|
private final static byte REARING_BIT = 0x20;
|
||||||
|
private final static byte MOUTH_OPEN_BIT = 0x40;
|
||||||
|
|
||||||
|
protected BaseHorseMeta(int entityId, Metadata metadata) {
|
||||||
|
super(entityId, metadata);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isTamed() {
|
||||||
|
return getMaskBit(OFFSET, TAMED_BIT);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTamed(boolean value) {
|
||||||
|
setMaskBit(OFFSET, TAMED_BIT, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isSaddled() {
|
||||||
|
return getMaskBit(OFFSET, SADDLED_BIT);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSaddled(boolean value) {
|
||||||
|
setMaskBit(OFFSET, SADDLED_BIT, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isHasBred() {
|
||||||
|
return getMaskBit(OFFSET, HAS_BRED_BIT);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHasBred(boolean value) {
|
||||||
|
setMaskBit(OFFSET, HAS_BRED_BIT, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isEating() {
|
||||||
|
return getMaskBit(OFFSET, EATING_BIT);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEating(boolean value) {
|
||||||
|
setMaskBit(OFFSET, EATING_BIT, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isRearing() {
|
||||||
|
return getMaskBit(OFFSET, REARING_BIT);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRearing(boolean value) {
|
||||||
|
setMaskBit(OFFSET, REARING_BIT, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isMouthOpen() {
|
||||||
|
return getMaskBit(OFFSET, MOUTH_OPEN_BIT);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMouthOpen(boolean value) {
|
||||||
|
setMaskBit(OFFSET, MOUTH_OPEN_BIT, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Optional<UUID> getOwner() {
|
||||||
|
return super.metadata.getIndex(offset(OFFSET, 1), Optional.empty());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOwner(UUID value) {
|
||||||
|
super.metadata.setIndex(offset(OFFSET, 1), EntityDataTypes.OPTIONAL_UUID, Optional.of(value));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
package me.tofaa.entitylib.meta.mobs.horse;
|
||||||
|
|
||||||
|
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
|
||||||
|
import me.tofaa.entitylib.meta.Metadata;
|
||||||
|
|
||||||
|
public class ChestedHorseMeta extends BaseHorseMeta {
|
||||||
|
|
||||||
|
public static final byte OFFSET = BaseHorseMeta.MAX_OFFSET;
|
||||||
|
public static final byte MAX_OFFSET = OFFSET + 1;
|
||||||
|
|
||||||
|
public ChestedHorseMeta(int entityId, Metadata metadata) {
|
||||||
|
super(entityId, metadata);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isHasChest() {
|
||||||
|
return super.metadata.getIndex(OFFSET, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHasChest(boolean value) {
|
||||||
|
super.metadata.setIndex(OFFSET, EntityDataTypes.BOOLEAN, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
package me.tofaa.entitylib.meta.mobs.horse;
|
||||||
|
|
||||||
|
import me.tofaa.entitylib.meta.Metadata;
|
||||||
|
import me.tofaa.entitylib.meta.types.MobMeta;
|
||||||
|
|
||||||
|
public class DonkeyMeta extends ChestedHorseMeta{
|
||||||
|
|
||||||
|
public static final byte OFFSET = MobMeta.MAX_OFFSET;
|
||||||
|
public static final byte MAX_OFFSET = OFFSET + 0;
|
||||||
|
|
||||||
|
public DonkeyMeta(int entityId, Metadata metadata) {
|
||||||
|
super(entityId, metadata);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,87 @@
|
||||||
|
package me.tofaa.entitylib.meta.mobs.horse;
|
||||||
|
|
||||||
|
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
|
||||||
|
import me.tofaa.entitylib.meta.Metadata;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
public class HorseMeta extends BaseHorseMeta {
|
||||||
|
|
||||||
|
public static final byte OFFSET = BaseHorseMeta.MAX_OFFSET;
|
||||||
|
public static final byte MAX_OFFSET = OFFSET + 1;
|
||||||
|
|
||||||
|
public HorseMeta(int entityId, Metadata metadata) {
|
||||||
|
super(entityId, metadata);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Variant getVariant() {
|
||||||
|
return getVariantFromID(super.metadata.getIndex(OFFSET, 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVariant(Variant variant) {
|
||||||
|
super.metadata.setIndex(OFFSET, EntityDataTypes.INT, getVariantID(variant.marking, variant.color));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int getVariantID(@NotNull Marking marking, @NotNull Color color) {
|
||||||
|
return (marking.ordinal() << 8) + color.ordinal();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Variant getVariantFromID(int variantID) {
|
||||||
|
return new Variant(
|
||||||
|
Marking.VALUES[variantID >> 8],
|
||||||
|
Color.VALUES[variantID & 0xFF]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class Variant {
|
||||||
|
|
||||||
|
private Marking marking;
|
||||||
|
private Color color;
|
||||||
|
|
||||||
|
public Variant(@NotNull Marking marking, @NotNull Color color) {
|
||||||
|
this.marking = marking;
|
||||||
|
this.color = color;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public Marking getMarking() {
|
||||||
|
return this.marking;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMarking(@NotNull Marking marking) {
|
||||||
|
this.marking = marking;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public Color getColor() {
|
||||||
|
return this.color;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setColor(@NotNull Color color) {
|
||||||
|
this.color = color;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum Marking {
|
||||||
|
NONE,
|
||||||
|
WHITE,
|
||||||
|
WHITE_FIELD,
|
||||||
|
WHITE_DOTS,
|
||||||
|
BLACK_DOTS;
|
||||||
|
|
||||||
|
private final static Marking[] VALUES = values();
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum Color {
|
||||||
|
WHITE,
|
||||||
|
CREAMY,
|
||||||
|
CHESTNUT,
|
||||||
|
BROWN,
|
||||||
|
BLACK,
|
||||||
|
GRAY,
|
||||||
|
DARK_BROWN;
|
||||||
|
|
||||||
|
private final static Color[] VALUES = values();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,48 @@
|
||||||
|
package me.tofaa.entitylib.meta.mobs.horse;
|
||||||
|
|
||||||
|
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
|
||||||
|
import me.tofaa.entitylib.meta.Metadata;
|
||||||
|
|
||||||
|
public class LlamaMeta extends ChestedHorseMeta{
|
||||||
|
|
||||||
|
public static final byte OFFSET = ChestedHorseMeta.MAX_OFFSET;
|
||||||
|
public static final byte MAX_OFFSET = OFFSET + 3;
|
||||||
|
|
||||||
|
public LlamaMeta(int entityId, Metadata metadata) {
|
||||||
|
super(entityId, metadata);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getStrength() {
|
||||||
|
return super.metadata.getIndex(OFFSET, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStrength(int value) {
|
||||||
|
super.metadata.setIndex(OFFSET, EntityDataTypes.INT, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getCarpetColor() {
|
||||||
|
return super.metadata.getIndex(offset(OFFSET, 1), -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCarpetColor(int value) {
|
||||||
|
super.metadata.setIndex(offset(OFFSET, 1), EntityDataTypes.INT, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Variant getVariant() {
|
||||||
|
return Variant.VALUES[super.metadata.getIndex(offset(OFFSET, 2), 0)];
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVariant(Variant value) {
|
||||||
|
super.metadata.setIndex(offset(OFFSET, 2), EntityDataTypes.INT, value.ordinal());
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum Variant {
|
||||||
|
CREAMY,
|
||||||
|
WHITE,
|
||||||
|
BROWN,
|
||||||
|
GRAY;
|
||||||
|
|
||||||
|
private final static Variant[] VALUES = values();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
package me.tofaa.entitylib.meta.mobs.horse;
|
||||||
|
|
||||||
|
import me.tofaa.entitylib.meta.Metadata;
|
||||||
|
|
||||||
|
public class MuleMeta extends ChestedHorseMeta{
|
||||||
|
|
||||||
|
public static final byte OFFSET = ChestedHorseMeta.MAX_OFFSET;
|
||||||
|
public static final byte MAX_OFFSET = OFFSET + 0;
|
||||||
|
|
||||||
|
public MuleMeta(int entityId, Metadata metadata) {
|
||||||
|
super(entityId, metadata);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
package me.tofaa.entitylib.meta.mobs.horse;
|
||||||
|
|
||||||
|
import me.tofaa.entitylib.meta.Metadata;
|
||||||
|
|
||||||
|
public class SkeletonHorseMeta extends BaseHorseMeta {
|
||||||
|
|
||||||
|
public static final byte OFFSET = BaseHorseMeta.MAX_OFFSET;
|
||||||
|
public static final byte MAX_OFFSET = OFFSET + 0;
|
||||||
|
|
||||||
|
public SkeletonHorseMeta(int entityId, Metadata metadata) {
|
||||||
|
super(entityId, metadata);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
package me.tofaa.entitylib.meta.mobs.horse;
|
||||||
|
|
||||||
|
import me.tofaa.entitylib.meta.Metadata;
|
||||||
|
|
||||||
|
public class ZombieHorseMeta extends BaseHorseMeta {
|
||||||
|
|
||||||
|
public static final byte OFFSET = BaseHorseMeta.MAX_OFFSET;
|
||||||
|
public static final byte MAX_OFFSET = OFFSET + 0;
|
||||||
|
|
||||||
|
public ZombieHorseMeta(int entityId, Metadata metadata) {
|
||||||
|
super(entityId, metadata);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,23 +1,57 @@
|
||||||
package me.tofaa.entitylib.meta.mobs.tameable;
|
package me.tofaa.entitylib.meta.mobs.tameable;
|
||||||
|
|
||||||
|
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
|
||||||
|
import com.github.retrooper.packetevents.protocol.entity.type.EntityTypes;
|
||||||
|
import me.tofaa.entitylib.extras.DyeColor;
|
||||||
import me.tofaa.entitylib.meta.Metadata;
|
import me.tofaa.entitylib.meta.Metadata;
|
||||||
import me.tofaa.entitylib.meta.types.TameableMeta;
|
import me.tofaa.entitylib.meta.types.TameableMeta;
|
||||||
import net.kyori.adventure.text.format.NamedTextColor;
|
import net.kyori.adventure.text.format.NamedTextColor;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
public class CatMeta extends TameableMeta {
|
public class CatMeta extends TameableMeta {
|
||||||
|
|
||||||
public static final byte OFFSET = TameableMeta.MAX_OFFSET;
|
public static final byte OFFSET = TameableMeta.MAX_OFFSET;
|
||||||
public static final byte MAX_OFFSET = OFFSET + 4;
|
public static final byte MAX_OFFSET = OFFSET + 4;
|
||||||
|
|
||||||
private static final NamedTextColor[] COLORS = new NamedTextColor[] {
|
private static final DyeColor[] COLORS = DyeColor.values();
|
||||||
NamedTextColor.BLACK, NamedTextColor.RED, NamedTextColor.WHITE, NamedTextColor.YELLOW, NamedTextColor.GRAY,
|
|
||||||
NamedTextColor.WHITE,
|
|
||||||
};
|
|
||||||
|
|
||||||
public CatMeta(int entityId, Metadata metadata) {
|
public CatMeta(int entityId, Metadata metadata) {
|
||||||
super(entityId, metadata);
|
super(entityId, metadata);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public CatMeta.Variant getVariant() {
|
||||||
|
return super.metadata.getIndex(OFFSET, Variant.BLACK);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVariant(@NotNull CatMeta.Variant value) {
|
||||||
|
super.metadata.setIndex(OFFSET, EntityDataTypes.CAT_VARIANT, value.ordinal());
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isLying() {
|
||||||
|
return super.metadata.getIndex(offset(OFFSET, 1), false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLying(boolean value) {
|
||||||
|
super.metadata.setIndex(offset(OFFSET, 1), EntityDataTypes.BOOLEAN, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isRelaxed() {
|
||||||
|
return super.metadata.getIndex(offset(OFFSET, 2), false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRelaxed(boolean value) {
|
||||||
|
super.metadata.setIndex(offset(OFFSET, 2), EntityDataTypes.BOOLEAN, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public @NotNull DyeColor getCollarColor() {
|
||||||
|
return COLORS[super.metadata.getIndex(offset(OFFSET, 3), DyeColor.RED.ordinal())];
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCollarColor(@NotNull DyeColor value) {
|
||||||
|
super.metadata.setIndex(offset(OFFSET, 3), EntityDataTypes.INT, value.ordinal());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public enum Variant {
|
public enum Variant {
|
||||||
TABBY,
|
TABBY,
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
package me.tofaa.entitylib.meta.mobs.tameable;
|
||||||
|
|
||||||
|
import com.github.retrooper.packetevents.manager.server.ServerVersion;
|
||||||
|
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
|
||||||
|
import me.tofaa.entitylib.meta.Metadata;
|
||||||
|
import me.tofaa.entitylib.meta.types.TameableMeta;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
public class ParrotMeta extends TameableMeta {
|
||||||
|
|
||||||
|
public static final byte OFFSET = TameableMeta.MAX_OFFSET;
|
||||||
|
public static final byte MAX_OFFSET = OFFSET + 1;
|
||||||
|
|
||||||
|
public ParrotMeta(int entityId, Metadata metadata) {
|
||||||
|
super(entityId, metadata);
|
||||||
|
isVersionNewer(ServerVersion.V_1_14);
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public Color getColor() {
|
||||||
|
return Color.VALUES[super.metadata.getIndex(OFFSET, 0)];
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setColor(@NotNull Color value) {
|
||||||
|
super.metadata.setIndex(OFFSET, EntityDataTypes.INT, value.ordinal());
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum Color {
|
||||||
|
RED_BLUE,
|
||||||
|
BLUE,
|
||||||
|
GREEN,
|
||||||
|
YELLOW_BLUE,
|
||||||
|
GREY;
|
||||||
|
|
||||||
|
private final static Color[] VALUES = values();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,40 @@
|
||||||
|
package me.tofaa.entitylib.meta.mobs.tameable;
|
||||||
|
|
||||||
|
import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes;
|
||||||
|
import me.tofaa.entitylib.meta.Metadata;
|
||||||
|
import me.tofaa.entitylib.meta.types.TameableMeta;
|
||||||
|
|
||||||
|
public class WolfMeta extends TameableMeta {
|
||||||
|
|
||||||
|
public static final byte OFFSET = TameableMeta.MAX_OFFSET;
|
||||||
|
public static final byte MAX_OFFSET = OFFSET + 3;
|
||||||
|
|
||||||
|
public WolfMeta(int entityId, Metadata metadata) {
|
||||||
|
super(entityId, metadata);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isBegging() {
|
||||||
|
return super.metadata.getIndex(OFFSET, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBegging(boolean value) {
|
||||||
|
super.metadata.setIndex(OFFSET, EntityDataTypes.BOOLEAN, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getCollarColor() {
|
||||||
|
return super.metadata.getIndex(offset(OFFSET, 1), 14);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCollarColor(int value) {
|
||||||
|
super.metadata.setIndex(offset(OFFSET, 1), EntityDataTypes.INT, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getAngerTime() {
|
||||||
|
return super.metadata.getIndex(offset(OFFSET, 2), 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAngerTime(int value) {
|
||||||
|
super.metadata.setIndex(offset(OFFSET, 2), EntityDataTypes.INT, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in a new issue