mirror of
https://github.com/Minestom/Minestom.git
synced 2025-03-02 11:21:15 +01:00
BaseEntityMeta is now an EntityMeta
This commit is contained in:
parent
54e1f59b2e
commit
6e950ab170
@ -27,7 +27,6 @@ import net.minestom.server.thread.ThreadProvider;
|
|||||||
import net.minestom.server.utils.BlockPosition;
|
import net.minestom.server.utils.BlockPosition;
|
||||||
import net.minestom.server.utils.Position;
|
import net.minestom.server.utils.Position;
|
||||||
import net.minestom.server.utils.Vector;
|
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.callback.OptionalCallback;
|
||||||
import net.minestom.server.utils.chunk.ChunkCallback;
|
import net.minestom.server.utils.chunk.ChunkCallback;
|
||||||
import net.minestom.server.utils.chunk.ChunkUtils;
|
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
|
* @return true if the entity is in fire, false otherwise
|
||||||
*/
|
*/
|
||||||
public boolean isOnFire() {
|
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
|
* @param fire should the entity be set in fire
|
||||||
*/
|
*/
|
||||||
public void setOnFire(boolean fire) {
|
public void setOnFire(boolean fire) {
|
||||||
final byte state = BitmaskUtil.changeBit(getStateMeta(), (byte) 0x01, (byte) (fire ? 1 : 0), (byte) 0);
|
this.entityMeta.setOnFire(fire);
|
||||||
this.metadata.setIndex((byte) 0, Metadata.Byte(state));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1014,7 +1012,7 @@ public abstract class Entity implements Viewable, EventHandler, DataContainer, P
|
|||||||
* @return true if the player is sneaking
|
* @return true if the player is sneaking
|
||||||
*/
|
*/
|
||||||
public boolean isSneaking() {
|
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) {
|
public void setSneaking(boolean sneaking) {
|
||||||
setPose(sneaking ? Pose.SNEAKING : Pose.STANDING);
|
setPose(sneaking ? Pose.SNEAKING : Pose.STANDING);
|
||||||
// update the crouched metadata
|
this.entityMeta.setSneaking(sneaking);
|
||||||
final byte state = BitmaskUtil.changeBit(getStateMeta(), (byte) 0x02, (byte) (sneaking ? 1 : 0), (byte) 1);
|
|
||||||
this.metadata.setIndex((byte) 0, Metadata.Byte(state));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1039,7 +1035,7 @@ public abstract class Entity implements Viewable, EventHandler, DataContainer, P
|
|||||||
* @return true if the player is sprinting
|
* @return true if the player is sprinting
|
||||||
*/
|
*/
|
||||||
public boolean isSprinting() {
|
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
|
* @param sprinting true to make the entity sprint
|
||||||
*/
|
*/
|
||||||
public void setSprinting(boolean sprinting) {
|
public void setSprinting(boolean sprinting) {
|
||||||
final byte state = BitmaskUtil.changeBit(getStateMeta(), (byte) 0x08, (byte) (sprinting ? 1 : 0), (byte) 3);
|
this.entityMeta.setSprinting(sprinting);
|
||||||
this.metadata.setIndex((byte) 0, Metadata.Byte(state));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1060,7 +1055,7 @@ public abstract class Entity implements Viewable, EventHandler, DataContainer, P
|
|||||||
* @return true if the entity is invisible, false otherwise
|
* @return true if the entity is invisible, false otherwise
|
||||||
*/
|
*/
|
||||||
public boolean isInvisible() {
|
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
|
* @param invisible true to set the entity invisible, false otherwise
|
||||||
*/
|
*/
|
||||||
public void setInvisible(boolean invisible) {
|
public void setInvisible(boolean invisible) {
|
||||||
final byte state = BitmaskUtil.changeBit(getStateMeta(), (byte) 0x20, (byte) (invisible ? 1 : 0), (byte) 5);
|
this.entityMeta.setInvisible(invisible);
|
||||||
this.metadata.setIndex((byte) 0, Metadata.Byte(state));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1080,7 +1074,7 @@ public abstract class Entity implements Viewable, EventHandler, DataContainer, P
|
|||||||
* @return true if the entity is glowing, false otherwise
|
* @return true if the entity is glowing, false otherwise
|
||||||
*/
|
*/
|
||||||
public boolean isGlowing() {
|
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
|
* @param glowing true to make the entity glows, false otherwise
|
||||||
*/
|
*/
|
||||||
public void setGlowing(boolean glowing) {
|
public void setGlowing(boolean glowing) {
|
||||||
final byte state = BitmaskUtil.changeBit(getStateMeta(), (byte) 0x40, (byte) (glowing ? 1 : 0), (byte) 6);
|
this.entityMeta.setHasGlowingEffect(glowing);
|
||||||
this.metadata.setIndex((byte) 0, Metadata.Byte(state));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1100,7 +1093,7 @@ public abstract class Entity implements Viewable, EventHandler, DataContainer, P
|
|||||||
*/
|
*/
|
||||||
@NotNull
|
@NotNull
|
||||||
public Pose getPose() {
|
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
|
@NotNull
|
||||||
public void setPose(@NotNull Pose pose) {
|
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
|
@Nullable
|
||||||
public JsonMessage getCustomName() {
|
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
|
* @param customName the custom name of the entity, null to remove it
|
||||||
*/
|
*/
|
||||||
public void setCustomName(@Nullable JsonMessage customName) {
|
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
|
* @return true if the custom name is visible, false otherwise
|
||||||
*/
|
*/
|
||||||
public boolean isCustomNameVisible() {
|
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
|
* @param customNameVisible true to make the custom name visible, false otherwise
|
||||||
*/
|
*/
|
||||||
public void setCustomNameVisible(boolean customNameVisible) {
|
public void setCustomNameVisible(boolean customNameVisible) {
|
||||||
this.metadata.setIndex((byte) 3, Metadata.Boolean(customNameVisible));
|
this.entityMeta.setCustomNameVisible(customNameVisible);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isSilent() {
|
public boolean isSilent() {
|
||||||
return metadata.getIndex((byte) 4, false);
|
return this.entityMeta.isSilent();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSilent(boolean silent) {
|
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
|
* @return true if the entity ignore gravity, false otherwise
|
||||||
*/
|
*/
|
||||||
public boolean hasNoGravity() {
|
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
|
* @param noGravity should the entity ignore gravity
|
||||||
*/
|
*/
|
||||||
public void setNoGravity(boolean noGravity) {
|
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;
|
return metaDataPacket;
|
||||||
}
|
}
|
||||||
|
|
||||||
private byte getStateMeta() {
|
|
||||||
return metadata.getIndex((byte) 0, (byte) 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void sendSynchronization() {
|
protected void sendSynchronization() {
|
||||||
EntityTeleportPacket entityTeleportPacket = new EntityTeleportPacket();
|
EntityTeleportPacket entityTeleportPacket = new EntityTeleportPacket();
|
||||||
entityTeleportPacket.entityId = getEntityId();
|
entityTeleportPacket.entityId = getEntityId();
|
||||||
|
@ -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);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,11 +1,22 @@
|
|||||||
package net.minestom.server.entity.metadata;
|
package net.minestom.server.entity.metadata;
|
||||||
|
|
||||||
|
import net.minestom.server.chat.JsonMessage;
|
||||||
import net.minestom.server.entity.Entity;
|
import net.minestom.server.entity.Entity;
|
||||||
import net.minestom.server.entity.Metadata;
|
import net.minestom.server.entity.Metadata;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
public class EntityMeta {
|
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 Entity entity;
|
||||||
protected final Metadata metadata;
|
protected final Metadata metadata;
|
||||||
|
|
||||||
@ -14,4 +25,142 @@ public class EntityMeta {
|
|||||||
this.metadata = metadata;
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ import net.minestom.server.utils.BlockPosition;
|
|||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
public class LivingEntityMeta extends BaseEntityMeta {
|
public class LivingEntityMeta extends EntityMeta {
|
||||||
|
|
||||||
private final static byte MASK_INDEX = 7;
|
private final static byte MASK_INDEX = 7;
|
||||||
|
|
||||||
|
@ -40,11 +40,11 @@ public class FoxMeta extends AnimalMeta {
|
|||||||
setMaskBit(MASK_INDEX, SITTING_BIT, value);
|
setMaskBit(MASK_INDEX, SITTING_BIT, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isCrounching() {
|
public boolean isFoxSneaking() {
|
||||||
return getMaskBit(MASK_INDEX, CROUCHING_BIT);
|
return getMaskBit(MASK_INDEX, CROUCHING_BIT);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCrounching(boolean value) {
|
public void setFoxSneaking(boolean value) {
|
||||||
setMaskBit(MASK_INDEX, CROUCHING_BIT, value);
|
setMaskBit(MASK_INDEX, CROUCHING_BIT, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,10 +2,10 @@ package net.minestom.server.entity.metadata.arrow;
|
|||||||
|
|
||||||
import net.minestom.server.entity.Entity;
|
import net.minestom.server.entity.Entity;
|
||||||
import net.minestom.server.entity.Metadata;
|
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.NotNull;
|
||||||
|
|
||||||
public class AbstractArrowMeta extends BaseEntityMeta {
|
public class AbstractArrowMeta extends EntityMeta {
|
||||||
|
|
||||||
private final static byte MASK_INDEX = 7;
|
private final static byte MASK_INDEX = 7;
|
||||||
|
|
||||||
|
@ -2,10 +2,10 @@ package net.minestom.server.entity.metadata.arrow;
|
|||||||
|
|
||||||
import net.minestom.server.entity.Entity;
|
import net.minestom.server.entity.Entity;
|
||||||
import net.minestom.server.entity.Metadata;
|
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.NotNull;
|
||||||
|
|
||||||
public class ArrowMeta extends BaseEntityMeta {
|
public class ArrowMeta extends EntityMeta {
|
||||||
|
|
||||||
public ArrowMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
|
public ArrowMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
|
||||||
super(entity, metadata);
|
super(entity, metadata);
|
||||||
|
@ -2,10 +2,10 @@ package net.minestom.server.entity.metadata.minecart;
|
|||||||
|
|
||||||
import net.minestom.server.entity.Entity;
|
import net.minestom.server.entity.Entity;
|
||||||
import net.minestom.server.entity.Metadata;
|
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.NotNull;
|
||||||
|
|
||||||
public class AbstractMinecartMeta extends BaseEntityMeta {
|
public class AbstractMinecartMeta extends EntityMeta {
|
||||||
|
|
||||||
protected AbstractMinecartMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
|
protected AbstractMinecartMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
|
||||||
super(entity, metadata);
|
super(entity, metadata);
|
||||||
|
@ -2,12 +2,12 @@ package net.minestom.server.entity.metadata.object;
|
|||||||
|
|
||||||
import net.minestom.server.entity.Entity;
|
import net.minestom.server.entity.Entity;
|
||||||
import net.minestom.server.entity.Metadata;
|
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.ItemStack;
|
||||||
import net.minestom.server.item.Material;
|
import net.minestom.server.item.Material;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
public class ObjectEntityMeta extends BaseEntityMeta {
|
public class ObjectEntityMeta extends EntityMeta {
|
||||||
|
|
||||||
private final ItemStack defaultItem;
|
private final ItemStack defaultItem;
|
||||||
|
|
||||||
|
@ -2,12 +2,12 @@ package net.minestom.server.entity.metadata.other;
|
|||||||
|
|
||||||
import net.minestom.server.entity.Entity;
|
import net.minestom.server.entity.Entity;
|
||||||
import net.minestom.server.entity.Metadata;
|
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.Particle;
|
||||||
import net.minestom.server.particle.ParticleType;
|
import net.minestom.server.particle.ParticleType;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
public class AreaEffectCloudMeta extends BaseEntityMeta {
|
public class AreaEffectCloudMeta extends EntityMeta {
|
||||||
|
|
||||||
public AreaEffectCloudMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
|
public AreaEffectCloudMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
|
||||||
super(entity, metadata);
|
super(entity, metadata);
|
||||||
|
@ -2,10 +2,10 @@ package net.minestom.server.entity.metadata.other;
|
|||||||
|
|
||||||
import net.minestom.server.entity.Entity;
|
import net.minestom.server.entity.Entity;
|
||||||
import net.minestom.server.entity.Metadata;
|
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.NotNull;
|
||||||
|
|
||||||
public class BoatMeta extends BaseEntityMeta {
|
public class BoatMeta extends EntityMeta {
|
||||||
|
|
||||||
public BoatMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
|
public BoatMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
|
||||||
super(entity, metadata);
|
super(entity, metadata);
|
||||||
|
@ -2,10 +2,10 @@ package net.minestom.server.entity.metadata.other;
|
|||||||
|
|
||||||
import net.minestom.server.entity.Entity;
|
import net.minestom.server.entity.Entity;
|
||||||
import net.minestom.server.entity.Metadata;
|
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.NotNull;
|
||||||
|
|
||||||
public class DragonFireballMeta extends BaseEntityMeta {
|
public class DragonFireballMeta extends EntityMeta {
|
||||||
|
|
||||||
public DragonFireballMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
|
public DragonFireballMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
|
||||||
super(entity, metadata);
|
super(entity, metadata);
|
||||||
|
@ -2,12 +2,12 @@ package net.minestom.server.entity.metadata.other;
|
|||||||
|
|
||||||
import net.minestom.server.entity.Entity;
|
import net.minestom.server.entity.Entity;
|
||||||
import net.minestom.server.entity.Metadata;
|
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 net.minestom.server.utils.BlockPosition;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
public class EndCrystalMeta extends BaseEntityMeta {
|
public class EndCrystalMeta extends EntityMeta {
|
||||||
|
|
||||||
public EndCrystalMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
|
public EndCrystalMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
|
||||||
super(entity, metadata);
|
super(entity, metadata);
|
||||||
|
@ -2,10 +2,10 @@ package net.minestom.server.entity.metadata.other;
|
|||||||
|
|
||||||
import net.minestom.server.entity.Entity;
|
import net.minestom.server.entity.Entity;
|
||||||
import net.minestom.server.entity.Metadata;
|
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.NotNull;
|
||||||
|
|
||||||
public class EvokerFangsMeta extends BaseEntityMeta {
|
public class EvokerFangsMeta extends EntityMeta {
|
||||||
|
|
||||||
public EvokerFangsMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
|
public EvokerFangsMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
|
||||||
super(entity, metadata);
|
super(entity, metadata);
|
||||||
|
@ -2,11 +2,11 @@ package net.minestom.server.entity.metadata.other;
|
|||||||
|
|
||||||
import net.minestom.server.entity.Entity;
|
import net.minestom.server.entity.Entity;
|
||||||
import net.minestom.server.entity.Metadata;
|
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 net.minestom.server.utils.BlockPosition;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
public class FallingBlockMeta extends BaseEntityMeta {
|
public class FallingBlockMeta extends EntityMeta {
|
||||||
|
|
||||||
public FallingBlockMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
|
public FallingBlockMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
|
||||||
super(entity, metadata);
|
super(entity, metadata);
|
||||||
|
@ -2,12 +2,12 @@ package net.minestom.server.entity.metadata.other;
|
|||||||
|
|
||||||
import net.minestom.server.entity.Entity;
|
import net.minestom.server.entity.Entity;
|
||||||
import net.minestom.server.entity.Metadata;
|
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.ItemStack;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
public class FireworkRocketMeta extends BaseEntityMeta {
|
public class FireworkRocketMeta extends EntityMeta {
|
||||||
|
|
||||||
private Entity shooter;
|
private Entity shooter;
|
||||||
|
|
||||||
|
@ -2,11 +2,11 @@ package net.minestom.server.entity.metadata.other;
|
|||||||
|
|
||||||
import net.minestom.server.entity.Entity;
|
import net.minestom.server.entity.Entity;
|
||||||
import net.minestom.server.entity.Metadata;
|
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.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
public class FishingHookMeta extends BaseEntityMeta {
|
public class FishingHookMeta extends EntityMeta {
|
||||||
|
|
||||||
private Entity hooked;
|
private Entity hooked;
|
||||||
|
|
||||||
|
@ -2,11 +2,12 @@ package net.minestom.server.entity.metadata.other;
|
|||||||
|
|
||||||
import net.minestom.server.entity.Entity;
|
import net.minestom.server.entity.Entity;
|
||||||
import net.minestom.server.entity.Metadata;
|
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.ItemStack;
|
||||||
|
import net.minestom.server.utils.Rotation;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
public class ItemFrameMeta extends BaseEntityMeta {
|
public class ItemFrameMeta extends EntityMeta {
|
||||||
|
|
||||||
public ItemFrameMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
|
public ItemFrameMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
|
||||||
super(entity, metadata);
|
super(entity, metadata);
|
||||||
@ -21,12 +22,12 @@ public class ItemFrameMeta extends BaseEntityMeta {
|
|||||||
super.metadata.setIndex((byte) 7, Metadata.Slot(value));
|
super.metadata.setIndex((byte) 7, Metadata.Slot(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getRotation() {
|
public Rotation getRotation() {
|
||||||
return super.metadata.getIndex((byte) 8, 0);
|
return Rotation.values()[super.metadata.getIndex((byte) 8, 0)];
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setRotation(int value) {
|
public void setRotation(Rotation value) {
|
||||||
super.metadata.setIndex((byte) 8, Metadata.VarInt(value));
|
super.metadata.setIndex((byte) 8, Metadata.VarInt(value.ordinal()));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -2,10 +2,10 @@ package net.minestom.server.entity.metadata.other;
|
|||||||
|
|
||||||
import net.minestom.server.entity.Entity;
|
import net.minestom.server.entity.Entity;
|
||||||
import net.minestom.server.entity.Metadata;
|
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.NotNull;
|
||||||
|
|
||||||
public class LlamaSpitMeta extends BaseEntityMeta {
|
public class LlamaSpitMeta extends EntityMeta {
|
||||||
|
|
||||||
public LlamaSpitMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
|
public LlamaSpitMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
|
||||||
super(entity, metadata);
|
super(entity, metadata);
|
||||||
|
@ -2,10 +2,10 @@ package net.minestom.server.entity.metadata.other;
|
|||||||
|
|
||||||
import net.minestom.server.entity.Entity;
|
import net.minestom.server.entity.Entity;
|
||||||
import net.minestom.server.entity.Metadata;
|
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.NotNull;
|
||||||
|
|
||||||
public class PrimedTntMeta extends BaseEntityMeta {
|
public class PrimedTntMeta extends EntityMeta {
|
||||||
|
|
||||||
public PrimedTntMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
|
public PrimedTntMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
|
||||||
super(entity, metadata);
|
super(entity, metadata);
|
||||||
|
@ -2,10 +2,10 @@ package net.minestom.server.entity.metadata.other;
|
|||||||
|
|
||||||
import net.minestom.server.entity.Entity;
|
import net.minestom.server.entity.Entity;
|
||||||
import net.minestom.server.entity.Metadata;
|
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.NotNull;
|
||||||
|
|
||||||
public class ShulkerBulletMeta extends BaseEntityMeta {
|
public class ShulkerBulletMeta extends EntityMeta {
|
||||||
|
|
||||||
public ShulkerBulletMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
|
public ShulkerBulletMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
|
||||||
super(entity, metadata);
|
super(entity, metadata);
|
||||||
|
@ -2,10 +2,10 @@ package net.minestom.server.entity.metadata.other;
|
|||||||
|
|
||||||
import net.minestom.server.entity.Entity;
|
import net.minestom.server.entity.Entity;
|
||||||
import net.minestom.server.entity.Metadata;
|
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.NotNull;
|
||||||
|
|
||||||
public class TraderLlamaMeta extends BaseEntityMeta {
|
public class TraderLlamaMeta extends EntityMeta {
|
||||||
|
|
||||||
public TraderLlamaMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
|
public TraderLlamaMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
|
||||||
super(entity, metadata);
|
super(entity, metadata);
|
||||||
|
@ -2,10 +2,10 @@ package net.minestom.server.entity.metadata.other;
|
|||||||
|
|
||||||
import net.minestom.server.entity.Entity;
|
import net.minestom.server.entity.Entity;
|
||||||
import net.minestom.server.entity.Metadata;
|
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.NotNull;
|
||||||
|
|
||||||
public class WitherSkullMeta extends BaseEntityMeta {
|
public class WitherSkullMeta extends EntityMeta {
|
||||||
|
|
||||||
public WitherSkullMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
|
public WitherSkullMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
|
||||||
super(entity, metadata);
|
super(entity, metadata);
|
||||||
|
Loading…
Reference in New Issue
Block a user