BaseEntityMeta is now an EntityMeta

This commit is contained in:
Konstantin Shandurenko 2021-02-23 19:18:53 +03:00
parent 54e1f59b2e
commit 6e950ab170
23 changed files with 213 additions and 236 deletions

View File

@ -27,7 +27,6 @@ import net.minestom.server.thread.ThreadProvider;
import net.minestom.server.utils.BlockPosition;
import net.minestom.server.utils.Position;
import net.minestom.server.utils.Vector;
import net.minestom.server.utils.binary.BitmaskUtil;
import net.minestom.server.utils.callback.OptionalCallback;
import net.minestom.server.utils.chunk.ChunkCallback;
import net.minestom.server.utils.chunk.ChunkUtils;
@ -990,7 +989,7 @@ public abstract class Entity implements Viewable, EventHandler, DataContainer, P
* @return true if the entity is in fire, false otherwise
*/
public boolean isOnFire() {
return (getStateMeta() & 0x01) != 0;
return this.entityMeta.isOnFire();
}
/**
@ -1002,8 +1001,7 @@ public abstract class Entity implements Viewable, EventHandler, DataContainer, P
* @param fire should the entity be set in fire
*/
public void setOnFire(boolean fire) {
final byte state = BitmaskUtil.changeBit(getStateMeta(), (byte) 0x01, (byte) (fire ? 1 : 0), (byte) 0);
this.metadata.setIndex((byte) 0, Metadata.Byte(state));
this.entityMeta.setOnFire(fire);
}
/**
@ -1014,7 +1012,7 @@ public abstract class Entity implements Viewable, EventHandler, DataContainer, P
* @return true if the player is sneaking
*/
public boolean isSneaking() {
return (getStateMeta() & 0x02) != 0;
return this.entityMeta.isSneaking();
}
/**
@ -1026,9 +1024,7 @@ public abstract class Entity implements Viewable, EventHandler, DataContainer, P
*/
public void setSneaking(boolean sneaking) {
setPose(sneaking ? Pose.SNEAKING : Pose.STANDING);
// update the crouched metadata
final byte state = BitmaskUtil.changeBit(getStateMeta(), (byte) 0x02, (byte) (sneaking ? 1 : 0), (byte) 1);
this.metadata.setIndex((byte) 0, Metadata.Byte(state));
this.entityMeta.setSneaking(sneaking);
}
/**
@ -1039,7 +1035,7 @@ public abstract class Entity implements Viewable, EventHandler, DataContainer, P
* @return true if the player is sprinting
*/
public boolean isSprinting() {
return (getStateMeta() & 0x08) != 0;
return this.entityMeta.isSprinting();
}
/**
@ -1050,8 +1046,7 @@ public abstract class Entity implements Viewable, EventHandler, DataContainer, P
* @param sprinting true to make the entity sprint
*/
public void setSprinting(boolean sprinting) {
final byte state = BitmaskUtil.changeBit(getStateMeta(), (byte) 0x08, (byte) (sprinting ? 1 : 0), (byte) 3);
this.metadata.setIndex((byte) 0, Metadata.Byte(state));
this.entityMeta.setSprinting(sprinting);
}
/**
@ -1060,7 +1055,7 @@ public abstract class Entity implements Viewable, EventHandler, DataContainer, P
* @return true if the entity is invisible, false otherwise
*/
public boolean isInvisible() {
return (getStateMeta() & 0x20) != 0;
return this.entityMeta.isInvisible();
}
/**
@ -1070,8 +1065,7 @@ public abstract class Entity implements Viewable, EventHandler, DataContainer, P
* @param invisible true to set the entity invisible, false otherwise
*/
public void setInvisible(boolean invisible) {
final byte state = BitmaskUtil.changeBit(getStateMeta(), (byte) 0x20, (byte) (invisible ? 1 : 0), (byte) 5);
this.metadata.setIndex((byte) 0, Metadata.Byte(state));
this.entityMeta.setInvisible(invisible);
}
/**
@ -1080,7 +1074,7 @@ public abstract class Entity implements Viewable, EventHandler, DataContainer, P
* @return true if the entity is glowing, false otherwise
*/
public boolean isGlowing() {
return (getStateMeta() & 0x40) != 0;
return this.entityMeta.isHasGlowingEffect();
}
/**
@ -1089,8 +1083,7 @@ public abstract class Entity implements Viewable, EventHandler, DataContainer, P
* @param glowing true to make the entity glows, false otherwise
*/
public void setGlowing(boolean glowing) {
final byte state = BitmaskUtil.changeBit(getStateMeta(), (byte) 0x40, (byte) (glowing ? 1 : 0), (byte) 6);
this.metadata.setIndex((byte) 0, Metadata.Byte(state));
this.entityMeta.setHasGlowingEffect(glowing);
}
/**
@ -1100,7 +1093,7 @@ public abstract class Entity implements Viewable, EventHandler, DataContainer, P
*/
@NotNull
public Pose getPose() {
return metadata.getIndex((byte) 6, Pose.STANDING);
return this.entityMeta.getPose();
}
/**
@ -1113,7 +1106,7 @@ public abstract class Entity implements Viewable, EventHandler, DataContainer, P
*/
@NotNull
public void setPose(@NotNull Pose pose) {
this.metadata.setIndex((byte) 6, Metadata.Pose(pose));
this.entityMeta.setPose(pose);
}
/**
@ -1123,7 +1116,7 @@ public abstract class Entity implements Viewable, EventHandler, DataContainer, P
*/
@Nullable
public JsonMessage getCustomName() {
return metadata.getIndex((byte) 2, null);
return this.entityMeta.getCustomName();
}
/**
@ -1132,7 +1125,7 @@ public abstract class Entity implements Viewable, EventHandler, DataContainer, P
* @param customName the custom name of the entity, null to remove it
*/
public void setCustomName(@Nullable JsonMessage customName) {
this.metadata.setIndex((byte) 2, Metadata.OptChat(customName));
this.entityMeta.setCustomName(customName);
}
/**
@ -1141,7 +1134,7 @@ public abstract class Entity implements Viewable, EventHandler, DataContainer, P
* @return true if the custom name is visible, false otherwise
*/
public boolean isCustomNameVisible() {
return metadata.getIndex((byte) 3, false);
return this.entityMeta.isCustomNameVisible();
}
/**
@ -1151,15 +1144,15 @@ public abstract class Entity implements Viewable, EventHandler, DataContainer, P
* @param customNameVisible true to make the custom name visible, false otherwise
*/
public void setCustomNameVisible(boolean customNameVisible) {
this.metadata.setIndex((byte) 3, Metadata.Boolean(customNameVisible));
this.entityMeta.setCustomNameVisible(customNameVisible);
}
public boolean isSilent() {
return metadata.getIndex((byte) 4, false);
return this.entityMeta.isSilent();
}
public void setSilent(boolean silent) {
this.metadata.setIndex((byte) 4, Metadata.Boolean(silent));
this.entityMeta.setSilent(silent);
}
/**
@ -1168,7 +1161,7 @@ public abstract class Entity implements Viewable, EventHandler, DataContainer, P
* @return true if the entity ignore gravity, false otherwise
*/
public boolean hasNoGravity() {
return metadata.getIndex((byte) 5, false);
return this.entityMeta.isHasNoGravity();
}
/**
@ -1177,7 +1170,7 @@ public abstract class Entity implements Viewable, EventHandler, DataContainer, P
* @param noGravity should the entity ignore gravity
*/
public void setNoGravity(boolean noGravity) {
this.metadata.setIndex((byte) 5, Metadata.Boolean(noGravity));
this.entityMeta.setHasNoGravity(noGravity);
}
/**
@ -1407,10 +1400,6 @@ public abstract class Entity implements Viewable, EventHandler, DataContainer, P
return metaDataPacket;
}
private byte getStateMeta() {
return metadata.getIndex((byte) 0, (byte) 0);
}
protected void sendSynchronization() {
EntityTeleportPacket entityTeleportPacket = new EntityTeleportPacket();
entityTeleportPacket.entityId = getEntityId();

View File

@ -1,162 +0,0 @@
package net.minestom.server.entity.metadata;
import net.minestom.server.chat.JsonMessage;
import net.minestom.server.entity.Entity;
import net.minestom.server.entity.Metadata;
import org.jetbrains.annotations.NotNull;
public class BaseEntityMeta extends EntityMeta {
private final static byte MASK_INDEX = 0;
private final static byte ON_FIRE_BIT = 0x01;
private final static byte CROUNCHING_BIT = 0x02;
private final static byte SPRINTING_BIT = 0x08;
private final static byte SWIMMING_BIT = 0x10;
private final static byte INVISIBLE_BIT = 0x20;
private final static byte HAS_GLOWING_EFFECT_BIT = 0x40;
private final static byte FLYING_WITH_ELYTRA_BIT = (byte) 0x80;
protected BaseEntityMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
super(entity, metadata);
}
public boolean isOnFire() {
return getMaskBit(MASK_INDEX, ON_FIRE_BIT);
}
public void setOnFire(boolean value) {
setMaskBit(MASK_INDEX, ON_FIRE_BIT, value);
}
public boolean isCrounching() {
return getMaskBit(MASK_INDEX, CROUNCHING_BIT);
}
public void setCrounching(boolean value) {
setMaskBit(MASK_INDEX, CROUNCHING_BIT, value);
}
public boolean isSprinting() {
return getMaskBit(MASK_INDEX, SPRINTING_BIT);
}
public void setSprinting(boolean value) {
setMaskBit(MASK_INDEX, SPRINTING_BIT, value);
}
public boolean isSwimming() {
return getMaskBit(MASK_INDEX, SWIMMING_BIT);
}
public void setSwimming(boolean value) {
setMaskBit(MASK_INDEX, SWIMMING_BIT, value);
}
public boolean isInvisible() {
return getMaskBit(MASK_INDEX, INVISIBLE_BIT);
}
public void setInvisible(boolean value) {
setMaskBit(MASK_INDEX, INVISIBLE_BIT, value);
}
public boolean isHasGlowingEffect() {
return getMaskBit(MASK_INDEX, HAS_GLOWING_EFFECT_BIT);
}
public void setHasGlowingEffect(boolean value) {
setMaskBit(MASK_INDEX, HAS_GLOWING_EFFECT_BIT, value);
}
public boolean isFlyingWithElytra() {
return getMaskBit(MASK_INDEX, FLYING_WITH_ELYTRA_BIT);
}
public void setFlyingWithElytra(boolean value) {
setMaskBit(MASK_INDEX, FLYING_WITH_ELYTRA_BIT, value);
}
public int getAirTicks() {
return super.metadata.getIndex((byte) 1, 300);
}
public void setAirTicks(int value) {
super.metadata.setIndex((byte) 1, Metadata.VarInt(value));
}
public JsonMessage getCustomName() {
return super.metadata.getIndex((byte) 2, null);
}
public void setCustomName(JsonMessage value) {
super.metadata.setIndex((byte) 2, Metadata.OptChat(value));
}
public boolean isCustomNameVisible() {
return super.metadata.getIndex((byte) 3, false);
}
public void setCustomNameVisible(boolean value) {
super.metadata.setIndex((byte) 3, Metadata.Boolean(value));
}
public boolean isSilent() {
return super.metadata.getIndex((byte) 4, false);
}
public void setSilent(boolean value) {
super.metadata.setIndex((byte) 4, Metadata.Boolean(value));
}
public boolean isHasNoGravity() {
return super.metadata.getIndex((byte) 5, false);
}
public void setHasNoGravity(boolean value) {
super.metadata.setIndex((byte) 5, Metadata.Boolean(value));
}
public Entity.Pose getPose() {
return super.metadata.getIndex((byte) 6, Entity.Pose.STANDING);
}
public void setPose(Entity.Pose value) {
super.metadata.setIndex((byte) 6, Metadata.Pose(value));
}
protected byte getMask(byte index) {
return super.metadata.getIndex(index, (byte) 0);
}
protected void setMask(byte index, byte mask) {
super.metadata.setIndex(index, Metadata.Byte(mask));
}
protected boolean getMaskBit(byte index, byte bit) {
return (getMask(index) & bit) == bit;
}
protected void setMaskBit(byte index, byte bit, boolean value) {
byte mask = getMask(index);
boolean currentValue = (mask & bit) == bit;
if (currentValue == value) {
return;
}
if (value) {
mask |= bit;
} else {
mask &= ~bit;
}
setMask(index, mask);
}
protected void setBoundingBox(double x, double y, double z) {
this.entity.setBoundingBox(x, y, z);
}
protected void setBoundingBox(double width, double height) {
setBoundingBox(width, height, width);
}
}

View File

@ -1,11 +1,22 @@
package net.minestom.server.entity.metadata;
import net.minestom.server.chat.JsonMessage;
import net.minestom.server.entity.Entity;
import net.minestom.server.entity.Metadata;
import org.jetbrains.annotations.NotNull;
public class EntityMeta {
private final static byte MASK_INDEX = 0;
private final static byte ON_FIRE_BIT = 0x01;
private final static byte CROUNCHING_BIT = 0x02;
private final static byte SPRINTING_BIT = 0x08;
private final static byte SWIMMING_BIT = 0x10;
private final static byte INVISIBLE_BIT = 0x20;
private final static byte HAS_GLOWING_EFFECT_BIT = 0x40;
private final static byte FLYING_WITH_ELYTRA_BIT = (byte) 0x80;
protected final Entity entity;
protected final Metadata metadata;
@ -14,4 +25,142 @@ public class EntityMeta {
this.metadata = metadata;
}
public boolean isOnFire() {
return getMaskBit(MASK_INDEX, ON_FIRE_BIT);
}
public void setOnFire(boolean value) {
setMaskBit(MASK_INDEX, ON_FIRE_BIT, value);
}
public boolean isSneaking() {
return getMaskBit(MASK_INDEX, CROUNCHING_BIT);
}
public void setSneaking(boolean value) {
setMaskBit(MASK_INDEX, CROUNCHING_BIT, value);
}
public boolean isSprinting() {
return getMaskBit(MASK_INDEX, SPRINTING_BIT);
}
public void setSprinting(boolean value) {
setMaskBit(MASK_INDEX, SPRINTING_BIT, value);
}
public boolean isSwimming() {
return getMaskBit(MASK_INDEX, SWIMMING_BIT);
}
public void setSwimming(boolean value) {
setMaskBit(MASK_INDEX, SWIMMING_BIT, value);
}
public boolean isInvisible() {
return getMaskBit(MASK_INDEX, INVISIBLE_BIT);
}
public void setInvisible(boolean value) {
setMaskBit(MASK_INDEX, INVISIBLE_BIT, value);
}
public boolean isHasGlowingEffect() {
return getMaskBit(MASK_INDEX, HAS_GLOWING_EFFECT_BIT);
}
public void setHasGlowingEffect(boolean value) {
setMaskBit(MASK_INDEX, HAS_GLOWING_EFFECT_BIT, value);
}
public boolean isFlyingWithElytra() {
return getMaskBit(MASK_INDEX, FLYING_WITH_ELYTRA_BIT);
}
public void setFlyingWithElytra(boolean value) {
setMaskBit(MASK_INDEX, FLYING_WITH_ELYTRA_BIT, value);
}
public int getAirTicks() {
return this.metadata.getIndex((byte) 1, 300);
}
public void setAirTicks(int value) {
this.metadata.setIndex((byte) 1, Metadata.VarInt(value));
}
public JsonMessage getCustomName() {
return this.metadata.getIndex((byte) 2, null);
}
public void setCustomName(JsonMessage value) {
this.metadata.setIndex((byte) 2, Metadata.OptChat(value));
}
public boolean isCustomNameVisible() {
return this.metadata.getIndex((byte) 3, false);
}
public void setCustomNameVisible(boolean value) {
this.metadata.setIndex((byte) 3, Metadata.Boolean(value));
}
public boolean isSilent() {
return this.metadata.getIndex((byte) 4, false);
}
public void setSilent(boolean value) {
this.metadata.setIndex((byte) 4, Metadata.Boolean(value));
}
public boolean isHasNoGravity() {
return this.metadata.getIndex((byte) 5, false);
}
public void setHasNoGravity(boolean value) {
this.metadata.setIndex((byte) 5, Metadata.Boolean(value));
}
public Entity.Pose getPose() {
return this.metadata.getIndex((byte) 6, Entity.Pose.STANDING);
}
public void setPose(Entity.Pose value) {
this.metadata.setIndex((byte) 6, Metadata.Pose(value));
}
protected byte getMask(byte index) {
return this.metadata.getIndex(index, (byte) 0);
}
protected void setMask(byte index, byte mask) {
this.metadata.setIndex(index, Metadata.Byte(mask));
}
protected boolean getMaskBit(byte index, byte bit) {
return (getMask(index) & bit) == bit;
}
protected void setMaskBit(byte index, byte bit, boolean value) {
byte mask = getMask(index);
boolean currentValue = (mask & bit) == bit;
if (currentValue == value) {
return;
}
if (value) {
mask |= bit;
} else {
mask &= ~bit;
}
setMask(index, mask);
}
protected void setBoundingBox(double x, double y, double z) {
this.entity.setBoundingBox(x, y, z);
}
protected void setBoundingBox(double width, double height) {
setBoundingBox(width, height, width);
}
}

View File

@ -7,7 +7,7 @@ import net.minestom.server.utils.BlockPosition;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class LivingEntityMeta extends BaseEntityMeta {
public class LivingEntityMeta extends EntityMeta {
private final static byte MASK_INDEX = 7;

View File

@ -40,11 +40,11 @@ public class FoxMeta extends AnimalMeta {
setMaskBit(MASK_INDEX, SITTING_BIT, value);
}
public boolean isCrounching() {
public boolean isFoxSneaking() {
return getMaskBit(MASK_INDEX, CROUCHING_BIT);
}
public void setCrounching(boolean value) {
public void setFoxSneaking(boolean value) {
setMaskBit(MASK_INDEX, CROUCHING_BIT, value);
}

View File

@ -2,10 +2,10 @@ package net.minestom.server.entity.metadata.arrow;
import net.minestom.server.entity.Entity;
import net.minestom.server.entity.Metadata;
import net.minestom.server.entity.metadata.BaseEntityMeta;
import net.minestom.server.entity.metadata.EntityMeta;
import org.jetbrains.annotations.NotNull;
public class AbstractArrowMeta extends BaseEntityMeta {
public class AbstractArrowMeta extends EntityMeta {
private final static byte MASK_INDEX = 7;

View File

@ -2,10 +2,10 @@ package net.minestom.server.entity.metadata.arrow;
import net.minestom.server.entity.Entity;
import net.minestom.server.entity.Metadata;
import net.minestom.server.entity.metadata.BaseEntityMeta;
import net.minestom.server.entity.metadata.EntityMeta;
import org.jetbrains.annotations.NotNull;
public class ArrowMeta extends BaseEntityMeta {
public class ArrowMeta extends EntityMeta {
public ArrowMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
super(entity, metadata);

View File

@ -2,10 +2,10 @@ package net.minestom.server.entity.metadata.minecart;
import net.minestom.server.entity.Entity;
import net.minestom.server.entity.Metadata;
import net.minestom.server.entity.metadata.BaseEntityMeta;
import net.minestom.server.entity.metadata.EntityMeta;
import org.jetbrains.annotations.NotNull;
public class AbstractMinecartMeta extends BaseEntityMeta {
public class AbstractMinecartMeta extends EntityMeta {
protected AbstractMinecartMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
super(entity, metadata);

View File

@ -2,12 +2,12 @@ package net.minestom.server.entity.metadata.object;
import net.minestom.server.entity.Entity;
import net.minestom.server.entity.Metadata;
import net.minestom.server.entity.metadata.BaseEntityMeta;
import net.minestom.server.entity.metadata.EntityMeta;
import net.minestom.server.item.ItemStack;
import net.minestom.server.item.Material;
import org.jetbrains.annotations.NotNull;
public class ObjectEntityMeta extends BaseEntityMeta {
public class ObjectEntityMeta extends EntityMeta {
private final ItemStack defaultItem;

View File

@ -2,12 +2,12 @@ package net.minestom.server.entity.metadata.other;
import net.minestom.server.entity.Entity;
import net.minestom.server.entity.Metadata;
import net.minestom.server.entity.metadata.BaseEntityMeta;
import net.minestom.server.entity.metadata.EntityMeta;
import net.minestom.server.particle.Particle;
import net.minestom.server.particle.ParticleType;
import org.jetbrains.annotations.NotNull;
public class AreaEffectCloudMeta extends BaseEntityMeta {
public class AreaEffectCloudMeta extends EntityMeta {
public AreaEffectCloudMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
super(entity, metadata);

View File

@ -2,10 +2,10 @@ package net.minestom.server.entity.metadata.other;
import net.minestom.server.entity.Entity;
import net.minestom.server.entity.Metadata;
import net.minestom.server.entity.metadata.BaseEntityMeta;
import net.minestom.server.entity.metadata.EntityMeta;
import org.jetbrains.annotations.NotNull;
public class BoatMeta extends BaseEntityMeta {
public class BoatMeta extends EntityMeta {
public BoatMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
super(entity, metadata);

View File

@ -2,10 +2,10 @@ package net.minestom.server.entity.metadata.other;
import net.minestom.server.entity.Entity;
import net.minestom.server.entity.Metadata;
import net.minestom.server.entity.metadata.BaseEntityMeta;
import net.minestom.server.entity.metadata.EntityMeta;
import org.jetbrains.annotations.NotNull;
public class DragonFireballMeta extends BaseEntityMeta {
public class DragonFireballMeta extends EntityMeta {
public DragonFireballMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
super(entity, metadata);

View File

@ -2,12 +2,12 @@ package net.minestom.server.entity.metadata.other;
import net.minestom.server.entity.Entity;
import net.minestom.server.entity.Metadata;
import net.minestom.server.entity.metadata.BaseEntityMeta;
import net.minestom.server.entity.metadata.EntityMeta;
import net.minestom.server.utils.BlockPosition;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class EndCrystalMeta extends BaseEntityMeta {
public class EndCrystalMeta extends EntityMeta {
public EndCrystalMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
super(entity, metadata);

View File

@ -2,10 +2,10 @@ package net.minestom.server.entity.metadata.other;
import net.minestom.server.entity.Entity;
import net.minestom.server.entity.Metadata;
import net.minestom.server.entity.metadata.BaseEntityMeta;
import net.minestom.server.entity.metadata.EntityMeta;
import org.jetbrains.annotations.NotNull;
public class EvokerFangsMeta extends BaseEntityMeta {
public class EvokerFangsMeta extends EntityMeta {
public EvokerFangsMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
super(entity, metadata);

View File

@ -2,11 +2,11 @@ package net.minestom.server.entity.metadata.other;
import net.minestom.server.entity.Entity;
import net.minestom.server.entity.Metadata;
import net.minestom.server.entity.metadata.BaseEntityMeta;
import net.minestom.server.entity.metadata.EntityMeta;
import net.minestom.server.utils.BlockPosition;
import org.jetbrains.annotations.NotNull;
public class FallingBlockMeta extends BaseEntityMeta {
public class FallingBlockMeta extends EntityMeta {
public FallingBlockMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
super(entity, metadata);

View File

@ -2,12 +2,12 @@ package net.minestom.server.entity.metadata.other;
import net.minestom.server.entity.Entity;
import net.minestom.server.entity.Metadata;
import net.minestom.server.entity.metadata.BaseEntityMeta;
import net.minestom.server.entity.metadata.EntityMeta;
import net.minestom.server.item.ItemStack;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class FireworkRocketMeta extends BaseEntityMeta {
public class FireworkRocketMeta extends EntityMeta {
private Entity shooter;

View File

@ -2,11 +2,11 @@ package net.minestom.server.entity.metadata.other;
import net.minestom.server.entity.Entity;
import net.minestom.server.entity.Metadata;
import net.minestom.server.entity.metadata.BaseEntityMeta;
import net.minestom.server.entity.metadata.EntityMeta;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class FishingHookMeta extends BaseEntityMeta {
public class FishingHookMeta extends EntityMeta {
private Entity hooked;

View File

@ -2,11 +2,12 @@ package net.minestom.server.entity.metadata.other;
import net.minestom.server.entity.Entity;
import net.minestom.server.entity.Metadata;
import net.minestom.server.entity.metadata.BaseEntityMeta;
import net.minestom.server.entity.metadata.EntityMeta;
import net.minestom.server.item.ItemStack;
import net.minestom.server.utils.Rotation;
import org.jetbrains.annotations.NotNull;
public class ItemFrameMeta extends BaseEntityMeta {
public class ItemFrameMeta extends EntityMeta {
public ItemFrameMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
super(entity, metadata);
@ -21,12 +22,12 @@ public class ItemFrameMeta extends BaseEntityMeta {
super.metadata.setIndex((byte) 7, Metadata.Slot(value));
}
public int getRotation() {
return super.metadata.getIndex((byte) 8, 0);
public Rotation getRotation() {
return Rotation.values()[super.metadata.getIndex((byte) 8, 0)];
}
public void setRotation(int value) {
super.metadata.setIndex((byte) 8, Metadata.VarInt(value));
public void setRotation(Rotation value) {
super.metadata.setIndex((byte) 8, Metadata.VarInt(value.ordinal()));
}
}

View File

@ -2,10 +2,10 @@ package net.minestom.server.entity.metadata.other;
import net.minestom.server.entity.Entity;
import net.minestom.server.entity.Metadata;
import net.minestom.server.entity.metadata.BaseEntityMeta;
import net.minestom.server.entity.metadata.EntityMeta;
import org.jetbrains.annotations.NotNull;
public class LlamaSpitMeta extends BaseEntityMeta {
public class LlamaSpitMeta extends EntityMeta {
public LlamaSpitMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
super(entity, metadata);

View File

@ -2,10 +2,10 @@ package net.minestom.server.entity.metadata.other;
import net.minestom.server.entity.Entity;
import net.minestom.server.entity.Metadata;
import net.minestom.server.entity.metadata.BaseEntityMeta;
import net.minestom.server.entity.metadata.EntityMeta;
import org.jetbrains.annotations.NotNull;
public class PrimedTntMeta extends BaseEntityMeta {
public class PrimedTntMeta extends EntityMeta {
public PrimedTntMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
super(entity, metadata);

View File

@ -2,10 +2,10 @@ package net.minestom.server.entity.metadata.other;
import net.minestom.server.entity.Entity;
import net.minestom.server.entity.Metadata;
import net.minestom.server.entity.metadata.BaseEntityMeta;
import net.minestom.server.entity.metadata.EntityMeta;
import org.jetbrains.annotations.NotNull;
public class ShulkerBulletMeta extends BaseEntityMeta {
public class ShulkerBulletMeta extends EntityMeta {
public ShulkerBulletMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
super(entity, metadata);

View File

@ -2,10 +2,10 @@ package net.minestom.server.entity.metadata.other;
import net.minestom.server.entity.Entity;
import net.minestom.server.entity.Metadata;
import net.minestom.server.entity.metadata.BaseEntityMeta;
import net.minestom.server.entity.metadata.EntityMeta;
import org.jetbrains.annotations.NotNull;
public class TraderLlamaMeta extends BaseEntityMeta {
public class TraderLlamaMeta extends EntityMeta {
public TraderLlamaMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
super(entity, metadata);

View File

@ -2,10 +2,10 @@ package net.minestom.server.entity.metadata.other;
import net.minestom.server.entity.Entity;
import net.minestom.server.entity.Metadata;
import net.minestom.server.entity.metadata.BaseEntityMeta;
import net.minestom.server.entity.metadata.EntityMeta;
import org.jetbrains.annotations.NotNull;
public class WitherSkullMeta extends BaseEntityMeta {
public class WitherSkullMeta extends EntityMeta {
public WitherSkullMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
super(entity, metadata);