From a910122ce2afa45a4553f1b47075b3dc924d6a27 Mon Sep 17 00:00:00 2001 From: Bixilon Date: Wed, 31 Mar 2021 20:11:36 +0200 Subject: [PATCH] convert Entity.java to kotlin --- .../data/entities/entities/AgeableMob.java | 2 +- .../entities/entities/AreaEffectCloud.java | 8 +- .../data/entities/entities/Entity.java | 345 ------------------ .../minosoft/data/entities/entities/Entity.kt | 236 ++++++++++++ .../data/entities/entities/LivingEntity.java | 14 +- .../minosoft/data/entities/entities/Mob.java | 2 +- .../data/entities/entities/TamableAnimal.java | 4 +- .../data/entities/entities/ambient/Bat.java | 2 +- .../entities/entities/animal/Axolotl.java | 6 +- .../data/entities/entities/animal/Bee.java | 4 +- .../data/entities/entities/animal/Cat.java | 8 +- .../data/entities/entities/animal/Fox.java | 8 +- .../entities/entities/animal/IronGolem.java | 2 +- .../entities/entities/animal/Mooshroom.java | 2 +- .../data/entities/entities/animal/Ocelot.java | 2 +- .../data/entities/entities/animal/Panda.java | 12 +- .../data/entities/entities/animal/Parrot.java | 2 +- .../data/entities/entities/animal/Pig.java | 4 +- .../entities/entities/animal/PolarBear.java | 2 +- .../data/entities/entities/animal/Rabbit.java | 2 +- .../data/entities/entities/animal/Sheep.java | 4 +- .../entities/entities/animal/SnowGolem.java | 2 +- .../entities/entities/animal/Strider.java | 6 +- .../data/entities/entities/animal/Turtle.java | 12 +- .../data/entities/entities/animal/Wolf.java | 10 +- .../entities/animal/hoglin/Hoglin.java | 2 +- .../animal/horse/AbstractChestedHorse.java | 2 +- .../entities/animal/horse/AbstractHorse.java | 4 +- .../entities/entities/animal/horse/Horse.kt | 6 +- .../entities/entities/animal/horse/Llama.java | 6 +- .../entities/animal/water/AbstractFish.java | 2 +- .../entities/animal/water/Dolphin.java | 6 +- .../entities/animal/water/GlowSquid.java | 2 +- .../entities/animal/water/PufferFish.java | 2 +- .../entities/animal/water/TropicalFish.java | 2 +- .../entities/boss/enderdragon/EndCrystal.java | 4 +- .../boss/enderdragon/EnderDragon.java | 2 +- .../entities/boss/wither/WitherBoss.java | 8 +- .../entities/decoration/ArmorStand.java | 14 +- .../entities/decoration/ItemFrame.java | 4 +- .../entities/entities/item/FallingBlock.java | 2 +- .../entities/entities/item/ItemEntity.java | 2 +- .../entities/entities/item/PrimedTNT.java | 2 +- .../data/entities/entities/monster/Blaze.java | 2 +- .../entities/entities/monster/Creeper.java | 6 +- .../entities/entities/monster/Enderman.java | 8 +- .../data/entities/entities/monster/Ghast.java | 2 +- .../entities/entities/monster/Guardian.java | 4 +- .../entities/entities/monster/Phantom.java | 2 +- .../entities/entities/monster/Shulker.java | 8 +- .../entities/entities/monster/Skeleton.java | 2 +- .../data/entities/entities/monster/Slime.java | 2 +- .../entities/entities/monster/Spider.java | 2 +- .../data/entities/entities/monster/Vex.java | 2 +- .../entities/entities/monster/Zoglin.java | 2 +- .../entities/entities/monster/Zombie.java | 6 +- .../entities/monster/ZombieVillager.java | 4 +- .../monster/piglin/AbstractPiglin.java | 2 +- .../entities/monster/piglin/Piglin.java | 8 +- .../entities/monster/raid/Pillager.java | 2 +- .../entities/monster/raid/Raider.java | 2 +- .../monster/raid/SpellcasterIllager.java | 2 +- .../entities/entities/monster/raid/Witch.java | 4 +- .../npc/villager/AbstractVillager.java | 2 +- .../entities/npc/villager/Villager.java | 2 +- .../entities/player/PlayerEntity.java | 25 +- .../entities/projectile/AbstractArrow.java | 6 +- .../entities/entities/projectile/Arrow.java | 2 +- .../entities/projectile/Fireball.java | 2 +- .../projectile/FireworkRocketEntity.java | 8 +- .../entities/projectile/FishingHook.java | 4 +- .../projectile/ThrowableItemProjectile.java | 2 +- .../entities/projectile/ThrownEyeOfEnder.kt | 2 +- .../entities/projectile/ThrownPotion.java | 2 +- .../entities/projectile/ThrownTrident.java | 4 +- .../entities/projectile/WitherSkull.java | 2 +- .../entities/vehicle/AbstractMinecart.java | 12 +- .../data/entities/entities/vehicle/Boat.java | 14 +- .../vehicle/MinecartCommandBlock.java | 4 +- .../entities/vehicle/MinecartFurnace.java | 2 +- .../data/mappings/blocks/BlockState.kt | 4 +- .../de/bixilon/minosoft/data/player/Player.kt | 4 +- .../gui/rendering/chunk/models/AABB.kt | 2 +- .../events/EntityEquipmentChangeEvent.java | 7 +- .../clientbound/login/PacketLoginSuccess.java | 2 +- .../play/PacketEntityEquipment.java | 16 +- .../clientbound/play/PacketEntityMetadata.kt | 2 +- .../play/PacketEntityMovement.java | 2 +- .../play/PacketEntityMovementAndRotation.java | 2 +- .../play/PacketEntityTeleport.java | 2 +- .../clientbound/play/PacketJoinGame.kt | 2 +- .../play/PacketPlayerPositionAndRotation.java | 2 +- .../clientbound/play/PacketSpawnMob.java | 6 +- .../clientbound/play/PacketSpawnPlayer.java | 8 +- .../play/PacketInteractEntity.java | 15 +- .../protocol/protocol/PacketSender.java | 6 +- .../commands/commands/CommandEntities.java | 6 +- .../commands/commands/CommandTabList.java | 2 +- 98 files changed, 465 insertions(+), 565 deletions(-) delete mode 100644 src/main/java/de/bixilon/minosoft/data/entities/entities/Entity.java create mode 100644 src/main/java/de/bixilon/minosoft/data/entities/entities/Entity.kt diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/AgeableMob.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/AgeableMob.java index 378b62f55..5dc672073 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/AgeableMob.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/AgeableMob.java @@ -26,6 +26,6 @@ public abstract class AgeableMob extends PathfinderMob { @EntityMetaDataFunction(name = "Is baby") public boolean isBaby() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.AGEABLE_IS_BABY); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.AGEABLE_IS_BABY); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/AreaEffectCloud.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/AreaEffectCloud.java index 5f7ee953c..88d54766b 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/AreaEffectCloud.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/AreaEffectCloud.java @@ -27,23 +27,23 @@ public class AreaEffectCloud extends Entity { @EntityMetaDataFunction(name = "Radius") public float getRadius() { - return getMetaData().getSets().getFloat(EntityMetaDataFields.AREA_EFFECT_CLOUD_RADIUS); + return getEntityMetaData().getSets().getFloat(EntityMetaDataFields.AREA_EFFECT_CLOUD_RADIUS); } @EntityMetaDataFunction(name = "Color") public int getColor() { - return getMetaData().getSets().getInt(EntityMetaDataFields.AREA_EFFECT_CLOUD_COLOR); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.AREA_EFFECT_CLOUD_COLOR); } // ignore radius??? @EntityMetaDataFunction(name = "Is waiting") public boolean isWaiting() { - return getMetaData().getSets().getBoolean(EntityMetaDataFields.AREA_EFFECT_CLOUD_WAITING); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.AREA_EFFECT_CLOUD_WAITING); } @EntityMetaDataFunction(name = "Particle") public ParticleData getParticle() { - return getMetaData().getSets().getParticle(EntityMetaDataFields.AREA_EFFECT_CLOUD_PARTICLE); + return getEntityMetaData().getSets().getParticle(EntityMetaDataFields.AREA_EFFECT_CLOUD_PARTICLE); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/Entity.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/Entity.java deleted file mode 100644 index a4a9f16ff..000000000 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/Entity.java +++ /dev/null @@ -1,345 +0,0 @@ -/* - * Minosoft - * Copyright (C) 2020 Moritz Zwerger - * - * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along with this program.If not, see . - * - * This software is not affiliated with Mojang AB, the original developer of Minecraft. - */ - -package de.bixilon.minosoft.data.entities.entities; - -import de.bixilon.minosoft.config.StaticConfiguration; -import de.bixilon.minosoft.data.Axes; -import de.bixilon.minosoft.data.entities.*; -import de.bixilon.minosoft.data.entities.meta.EntityMetaData; -import de.bixilon.minosoft.data.inventory.InventorySlots; -import de.bixilon.minosoft.data.inventory.ItemStack; -import de.bixilon.minosoft.data.mappings.StatusEffect; -import de.bixilon.minosoft.data.mappings.blocks.BlockState; -import de.bixilon.minosoft.data.text.ChatComponent; -import de.bixilon.minosoft.gui.rendering.Camera; -import de.bixilon.minosoft.gui.rendering.chunk.VoxelShape; -import de.bixilon.minosoft.gui.rendering.chunk.models.AABB; -import de.bixilon.minosoft.modding.event.events.annotations.Unsafe; -import de.bixilon.minosoft.protocol.network.Connection; -import de.bixilon.minosoft.util.logging.Log; -import glm_.vec3.Vec3; -import glm_.vec3.Vec3i; - -import javax.annotation.Nullable; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.*; - -public abstract class Entity { - private static final AABB DEFAULT_PLAYER_AABB = new AABB( - new Vec3(-Camera.PLAYER_WIDTH / 2, 0, -Camera.PLAYER_WIDTH / 2), - new Vec3(Camera.PLAYER_WIDTH / 2, 1.8, Camera.PLAYER_WIDTH / 2) - ); - protected final Connection connection; - protected final EntityInformation information; - protected final HashMap equipment = new HashMap<>(); - protected final HashSet effectList = new HashSet<>(); - protected final int versionId; - protected Vec3 position; - protected EntityRotation rotation; - protected int attachedTo = -1; - protected EntityMetaData metaData; - protected boolean hasCollisions = true; - - public Entity(Connection connection, Vec3 position, EntityRotation rotation) { - this.connection = connection; - this.information = connection.getMapping().getEntityInformation(getClass()); - this.versionId = connection.getVersion().getVersionId(); - this.position = position; - this.rotation = rotation; - } - - @Deprecated - public int getEntityId() { - return this.connection.getWorld().getEntityIdMap().inverse().get(this); - } - - public Vec3 getPosition() { - return this.position; - } - - public void setLocation(Vec3 position) { - this.position = position; - } - - public void addLocation(Vec3 relativePosition) { - this.position = new Vec3(this.position.x + relativePosition.x, this.position.y + relativePosition.y, this.position.z + relativePosition.z); - } - - public ItemStack getEquipment(InventorySlots.EquipmentSlots slot) { - return this.equipment.get(slot); - } - - public HashMap getEquipment() { - return this.equipment; - } - - public void setEquipment(HashMap slots) { - this.equipment.putAll(slots); - } - - public UUID getUUID() { - return this.connection.getWorld().getEntityUUIDMap().inverse().get(this); - } - - public HashSet getEffectList() { - return this.effectList; - } - - public void addEffect(StatusEffectInstance effect) { - // effect already applied, maybe the duration or the amplifier changed? - this.effectList.removeIf(listEffect -> listEffect.getStatusEffect() == effect.getStatusEffect()); - this.effectList.add(effect); - } - - public void removeEffect(StatusEffect effect) { - this.effectList.removeIf(listEffect -> listEffect.getStatusEffect() == effect); - } - - public void attachTo(int vehicleId) { - this.attachedTo = vehicleId; - } - - public boolean isAttached() { - return this.attachedTo != -1; - } - - public int getAttachedEntity() { - return this.attachedTo; - } - - public void detach() { - this.attachedTo = -1; - } - - public EntityRotation getRotation() { - return this.rotation; - } - - public void setRotation(EntityRotation rotation) { - this.rotation = rotation; - } - - public void setRotation(int yaw, int pitch) { - this.rotation = new EntityRotation(yaw, pitch, this.rotation.getHeadYaw()); - } - - public void setRotation(int yaw, int pitch, int headYaw) { - this.rotation = new EntityRotation(yaw, pitch, headYaw); - } - - public void setHeadRotation(int headYaw) { - this.rotation = new EntityRotation(this.rotation.getYaw(), this.rotation.getPitch(), headYaw); - } - - @Unsafe - public EntityMetaData getMetaData() { - return this.metaData; - } - - @Unsafe - public void setMetaData(EntityMetaData metaData) { - this.metaData = metaData; - if (StaticConfiguration.VERBOSE_ENTITY_META_DATA_LOGGING) { - Log.verbose(String.format("Metadata of entity %s (entityId=%d): %s", toString(), getEntityId(), getEntityMetaDataAsString())); - } - } - - public EntityInformation getEntityInformation() { - return this.information; - } - - private boolean getEntityFlag(int bitMask) { - return this.metaData.getSets().getBitMask(EntityMetaDataFields.ENTITY_FLAGS, bitMask); - } - - @EntityMetaDataFunction(name = "On fire") - public boolean isOnFire() { - return getEntityFlag(0x01); - } - - private boolean isCrouching() { - return getEntityFlag(0x02); - } - - @EntityMetaDataFunction(name = "Is sprinting") - public boolean isSprinting() { - return getEntityFlag(0x08); - } - - private boolean isSwimming() { - return getEntityFlag(0x10); - } - - @EntityMetaDataFunction(name = "Is invisible") - public boolean isInvisible() { - return getEntityFlag(0x20); - } - - @EntityMetaDataFunction(name = "Has glowing effect") - public boolean hasGlowingEffect() { - return getEntityFlag(0x20); - } - - private boolean isFlyingWithElytra() { - return getEntityFlag(0x80); - } - - @EntityMetaDataFunction(name = "Air supply") - private int getAirSupply() { - return this.metaData.getSets().getInt(EntityMetaDataFields.ENTITY_AIR_SUPPLY); - } - - @EntityMetaDataFunction(name = "Custom name") - @Nullable - private ChatComponent getCustomName() { - return this.metaData.getSets().getChatComponent(EntityMetaDataFields.ENTITY_CUSTOM_NAME); - } - - @EntityMetaDataFunction(name = "Is custom name visible") - public boolean isCustomNameVisible() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.ENTITY_CUSTOM_NAME_VISIBLE); - } - - @EntityMetaDataFunction(name = "Is silent") - public boolean isSilent() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.ENTITY_SILENT); - } - - @EntityMetaDataFunction(name = "Has no gravity") - public boolean hasNoGravity() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.ENTITY_NO_GRAVITY); - } - - @EntityMetaDataFunction(name = "Pose") - public Poses getPose() { - if (isCrouching()) { - return Poses.SNEAKING; - } - if (isSwimming()) { - return Poses.SWIMMING; - } - if (isFlyingWithElytra()) { - return Poses.FLYING; - } - return this.metaData.getSets().getPose(EntityMetaDataFields.ENTITY_POSE); - } - - @EntityMetaDataFunction(name = "Ticks frozen") - public int getTicksFrozen() { - return this.metaData.getSets().getInt(EntityMetaDataFields.ENTITY_TICKS_FROZEN); - } - - @Override - public String toString() { - if (this.information == null) { - return this.getClass().getCanonicalName(); - } - return String.format("%s", this.information); - } - - public String getEntityMetaDataAsString() { - return getEntityMetaDataFormatted().toString(); - } - - public TreeMap getEntityMetaDataFormatted() { - // scan all methods of current class for EntityMetaDataFunction annotation and write it into a list - TreeMap values = new TreeMap<>(); - if (this.metaData == null) { - return values; - } - Class clazz = this.getClass(); - while (clazz != Object.class) { - for (Method method : clazz.getDeclaredMethods()) { - if (!method.isAnnotationPresent(EntityMetaDataFunction.class)) { - continue; - } - if (method.getParameterCount() > 0) { - continue; - } - method.setAccessible(true); - try { - String resourceLocation = method.getAnnotation(EntityMetaDataFunction.class).name(); - if (values.containsKey(resourceLocation)) { - continue; - } - Object methodRetValue = method.invoke(this); - if (methodRetValue == null) { - continue; - } - values.put(resourceLocation, methodRetValue); - } catch (IllegalAccessException | InvocationTargetException e) { - e.printStackTrace(); - } - } - clazz = clazz.getSuperclass(); - } - return values; - } - - public void move(Vec3 deltaPosition) { - if (!this.hasCollisions) { - this.position = new Vec3(this.position.plus(deltaPosition)); - Log.debug(String.format("new Position: %s", this.position)); - return; - } - AABB aabb = getAABB(); - VoxelShape collisionsToCheck = getCollisionsToCheck(deltaPosition, aabb); - Vec3 realMovement = collide(deltaPosition, collisionsToCheck, aabb); - this.position = new Vec3(this.position.plus(realMovement)); - } - - private VoxelShape getCollisionsToCheck(Vec3 deltaPosition, AABB originalAABB) { - List blockPositions = originalAABB.extend(deltaPosition).getBlockPositions(); - VoxelShape result = new VoxelShape(); - for (Vec3i blockPosition : blockPositions) { - BlockState blockState = this.connection.getWorld().getBlockState(blockPosition); - if (blockState == null) { - continue; - } - VoxelShape blockShape = blockState.getCollision(); - result.add(blockShape.plus(blockPosition)); - } - return result; - } - - private Vec3 collide(Vec3 deltaPosition, VoxelShape collisionsToCheck, AABB aabb) { - Vec3 delta = new Vec3(deltaPosition); - if (deltaPosition.y != 0) { - delta.y = collisionsToCheck.computeOffset(aabb, deltaPosition.y, Axes.Y); - aabb.offsetAssign(new Vec3(0f, (float) delta.y, 0f)); - } - if (deltaPosition.x != 0) { - delta.x = collisionsToCheck.computeOffset(aabb, deltaPosition.x, Axes.X); - aabb.offsetAssign(new Vec3((float) delta.x, 0f, 0f)); - } - return delta; - } - - private AABB getAABB() { - return DEFAULT_PLAYER_AABB.plus(this.position); - } - - public boolean hasCollisions() { - return this.hasCollisions; - } - - public void setHasCollisions(boolean hasCollisions) { - this.hasCollisions = hasCollisions; - } - - public void setPosition(Vec3 position) { - this.position = position; - } -} diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/Entity.kt b/src/main/java/de/bixilon/minosoft/data/entities/entities/Entity.kt new file mode 100644 index 000000000..783f53719 --- /dev/null +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/Entity.kt @@ -0,0 +1,236 @@ +/* + * Minosoft + * Copyright (C) 2020 Moritz Zwerger + * + * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with this program.If not, see . + * + * This software is not affiliated with Mojang AB, the original developer of Minecraft. + */ +package de.bixilon.minosoft.data.entities.entities + +import de.bixilon.minosoft.data.Axes +import de.bixilon.minosoft.data.entities.* +import de.bixilon.minosoft.data.entities.meta.EntityMetaData +import de.bixilon.minosoft.data.inventory.InventorySlots.EquipmentSlots +import de.bixilon.minosoft.data.inventory.ItemStack +import de.bixilon.minosoft.data.mappings.StatusEffect +import de.bixilon.minosoft.data.text.ChatComponent +import de.bixilon.minosoft.gui.rendering.Camera +import de.bixilon.minosoft.gui.rendering.chunk.VoxelShape +import de.bixilon.minosoft.gui.rendering.chunk.models.AABB +import de.bixilon.minosoft.protocol.network.Connection +import de.bixilon.minosoft.util.logging.Log +import glm_.vec3.Vec3 +import java.lang.reflect.InvocationTargetException +import java.util.* + +abstract class Entity( + protected val connection: Connection, + var position: Vec3, + var rotation: EntityRotation, +) { + val entityInformation: EntityInformation? + val equipment: MutableMap = mutableMapOf() + val effectList: MutableSet = mutableSetOf() + + @JvmField + protected val versionId: Int + open var attachedEntity: Int? = null + + var entityMetaData: EntityMetaData = EntityMetaData(connection) + + @JvmField + protected var hasCollisions = true + + fun forceMove(relativePosition: Vec3) { + position = Vec3(position.x + relativePosition.x, position.y + relativePosition.y, position.z + relativePosition.z) + } + + fun addEffect(effect: StatusEffectInstance) { + // effect already applied, maybe the duration or the amplifier changed? + effectList.removeIf { (statusEffect) -> statusEffect === effect.statusEffect } + effectList.add(effect) + } + + fun removeEffect(effect: StatusEffect) { + effectList.removeIf { (statusEffect) -> statusEffect === effect } + } + + fun attachTo(vehicleId: Int?) { + attachedEntity = vehicleId + } + + fun setRotation(yaw: Int, pitch: Int) { + rotation = EntityRotation(yaw.toFloat(), pitch.toFloat(), rotation.headYaw) + } + + fun setRotation(yaw: Int, pitch: Int, headYaw: Int) { + rotation = EntityRotation(yaw.toFloat(), pitch.toFloat(), headYaw.toFloat()) + } + + fun setHeadRotation(headYaw: Int) { + rotation = EntityRotation(rotation.yaw, rotation.pitch, headYaw.toFloat()) + } + + private fun getEntityFlag(bitMask: Int): Boolean { + return entityMetaData.sets.getBitMask(EntityMetaDataFields.ENTITY_FLAGS, bitMask) + } + + @get:EntityMetaDataFunction(name = "On fire") + val isOnFire: Boolean + get() = getEntityFlag(0x01) + open val isCrouching: Boolean + get() = getEntityFlag(0x02) + + @get:EntityMetaDataFunction(name = "Is sprinting") + val isSprinting: Boolean + get() = getEntityFlag(0x08) + + val isSwimming: Boolean + get() = getEntityFlag(0x10) + + @get:EntityMetaDataFunction(name = "Is invisible") + val isInvisible: Boolean + get() = getEntityFlag(0x20) + + @EntityMetaDataFunction(name = "Has glowing effect") + fun hasGlowingEffect(): Boolean { + return getEntityFlag(0x20) + } + + val isFlyingWithElytra: Boolean + get() = getEntityFlag(0x80) + + @get:EntityMetaDataFunction(name = "Air supply") + val airSupply: Int + get() = entityMetaData.sets.getInt(EntityMetaDataFields.ENTITY_AIR_SUPPLY) + + @get:EntityMetaDataFunction(name = "Custom name") + val customName: ChatComponent? + get() = entityMetaData.sets.getChatComponent(EntityMetaDataFields.ENTITY_CUSTOM_NAME) + + @get:EntityMetaDataFunction(name = "Is custom name visible") + val isCustomNameVisible: Boolean + get() = entityMetaData.sets.getBoolean(EntityMetaDataFields.ENTITY_CUSTOM_NAME_VISIBLE) + + @get:EntityMetaDataFunction(name = "Is silent") + val isSilent: Boolean + get() = entityMetaData.sets.getBoolean(EntityMetaDataFields.ENTITY_SILENT) + + @EntityMetaDataFunction(name = "Has no gravity") + val hasNoGravity: Boolean + get() = entityMetaData.sets.getBoolean(EntityMetaDataFields.ENTITY_NO_GRAVITY) + + @get:EntityMetaDataFunction(name = "Pose") + val pose: Poses? + get() { + return when { + isCrouching -> Poses.SNEAKING + isSwimming -> Poses.SWIMMING + isFlyingWithElytra -> Poses.FLYING + else -> entityMetaData.sets.getPose(EntityMetaDataFields.ENTITY_POSE) + } + } + + @get:EntityMetaDataFunction(name = "Ticks frozen") + val ticksFrozen: Int + get() = entityMetaData.sets.getInt(EntityMetaDataFields.ENTITY_TICKS_FROZEN) + + override fun toString(): String { + return entityInformation.toString() + } + + val entityMetaDataAsString: String + get() = entityMetaDataFormatted.toString() + + // scan all methods of current class for EntityMetaDataFunction annotation and write it into a list + val entityMetaDataFormatted: TreeMap + get() { + // scan all methods of current class for EntityMetaDataFunction annotation and write it into a list + val values = TreeMap() + var clazz: Class<*> = this.javaClass + while (clazz != Any::class.java) { + for (method in clazz.declaredMethods) { + if (!method.isAnnotationPresent(EntityMetaDataFunction::class.java)) { + continue + } + if (method.parameterCount > 0) { + continue + } + method.isAccessible = true + try { + val resourceLocation: String = method.getAnnotation(EntityMetaDataFunction::class.java).name + if (values.containsKey(resourceLocation)) { + continue + } + val methodRetValue = method.invoke(this) ?: continue + values[resourceLocation] = methodRetValue + } catch (e: IllegalAccessException) { + e.printStackTrace() + } catch (e: InvocationTargetException) { + e.printStackTrace() + } + } + clazz = clazz.superclass + } + return values + } + + fun move(deltaPosition: Vec3) { + if (!hasCollisions) { + position = Vec3(position + deltaPosition) + Log.debug("New Position: $position") + return + } + val aabb = aabb + val collisionsToCheck = getCollisionsToCheck(deltaPosition, aabb) + val realMovement = collide(deltaPosition, collisionsToCheck, aabb) + position = Vec3(position + realMovement) + } + + private fun getCollisionsToCheck(deltaPosition: Vec3, originalAABB: AABB): VoxelShape { + val blockPositions = (originalAABB extend deltaPosition).getBlockPositions() + val result = VoxelShape() + for (blockPosition in blockPositions) { + val blockState = connection.world.getBlockState(blockPosition) ?: continue + result.add(blockState.collisionShape + blockPosition) + } + return result + } + + private fun collide(deltaPosition: Vec3, collisionsToCheck: VoxelShape, aabb: AABB): Vec3 { + val delta = Vec3(deltaPosition) + if (deltaPosition.y != 0.0f) { + delta.y = collisionsToCheck.computeOffset(aabb, deltaPosition.y, Axes.Y) + aabb.offsetAssign(Vec3(0f, delta.y, 0f)) + } + if (deltaPosition.x != 0.0f) { + delta.x = collisionsToCheck.computeOffset(aabb, deltaPosition.x, Axes.X) + aabb.offsetAssign(Vec3(delta.x, 0f, 0f)) + } + return delta + } + + private val aabb: AABB + get() = DEFAULT_PLAYER_AABB + position + + fun hasCollisions(): Boolean { + return hasCollisions + } + + companion object { + private val DEFAULT_PLAYER_AABB = AABB( + Vec3(-Camera.PLAYER_WIDTH / 2, 0, -Camera.PLAYER_WIDTH / 2), + Vec3(Camera.PLAYER_WIDTH / 2, 1.8, Camera.PLAYER_WIDTH / 2) + ) + } + + init { + entityInformation = connection.mapping.getEntityInformation(javaClass) + versionId = connection.version.versionId + } +} diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/LivingEntity.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/LivingEntity.java index aa783b1c4..176d4e36f 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/LivingEntity.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/LivingEntity.java @@ -29,7 +29,7 @@ public abstract class LivingEntity extends Entity { } private boolean getLivingEntityFlag(int bitMask) { - return this.metaData.getSets().getBitMask(EntityMetaDataFields.LIVING_ENTITY_FLAGS, bitMask); + return getEntityMetaData().getSets().getBitMask(EntityMetaDataFields.LIVING_ENTITY_FLAGS, bitMask); } // = isUsingItem @@ -50,33 +50,33 @@ public abstract class LivingEntity extends Entity { @EntityMetaDataFunction(name = "Health") public float getHealth() { - return this.metaData.getSets().getFloat(EntityMetaDataFields.LIVING_ENTITY_HEALTH); + return getEntityMetaData().getSets().getFloat(EntityMetaDataFields.LIVING_ENTITY_HEALTH); } @EntityMetaDataFunction(name = "Effect color") public int getEffectColor() { - return this.metaData.getSets().getInt(EntityMetaDataFields.LIVING_ENTITY_EFFECT_COLOR); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.LIVING_ENTITY_EFFECT_COLOR); } @EntityMetaDataFunction(name = "Is effect ambient") public boolean getEffectAmbient() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.LIVING_ENTITY_EFFECT_AMBIENCE); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.LIVING_ENTITY_EFFECT_AMBIENCE); } @EntityMetaDataFunction(name = "Arrows in entity") public int getArrowCount() { - return this.metaData.getSets().getInt(EntityMetaDataFields.LIVING_ENTITY_ARROW_COUNT); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.LIVING_ENTITY_ARROW_COUNT); } @EntityMetaDataFunction(name = "Absorption hearts") public int getAbsorptionHearts() { - return this.metaData.getSets().getInt(EntityMetaDataFields.LIVING_ENTITY_ABSORPTION_HEARTS); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.LIVING_ENTITY_ABSORPTION_HEARTS); } @EntityMetaDataFunction(name = "Bed location") @Nullable public Vec3i getBedPosition() { - return this.metaData.getSets().getBlockPosition(EntityMetaDataFields.LIVING_ENTITY_BED_POSITION); + return getEntityMetaData().getSets().getBlockPosition(EntityMetaDataFields.LIVING_ENTITY_BED_POSITION); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/Mob.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/Mob.java index af427eb78..d614a2098 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/Mob.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/Mob.java @@ -24,7 +24,7 @@ public abstract class Mob extends LivingEntity { } private boolean getMobFlags(int bitMask) { - return this.metaData.getSets().getBitMask(EntityMetaDataFields.MOB_FLAGS, bitMask); + return getEntityMetaData().getSets().getBitMask(EntityMetaDataFields.MOB_FLAGS, bitMask); } @EntityMetaDataFunction(name = "isNoAI") diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/TamableAnimal.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/TamableAnimal.java index e1c4d50fa..148652b15 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/TamableAnimal.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/TamableAnimal.java @@ -28,7 +28,7 @@ public abstract class TamableAnimal extends Animal { } private boolean getTameableFlag(int bitMask) { - return this.metaData.getSets().getBitMask(EntityMetaDataFields.TAMABLE_ENTITY_FLAGS, bitMask); + return getEntityMetaData().getSets().getBitMask(EntityMetaDataFields.TAMABLE_ENTITY_FLAGS, bitMask); } @EntityMetaDataFunction(name = "Is sitting") @@ -44,6 +44,6 @@ public abstract class TamableAnimal extends Animal { @EntityMetaDataFunction(name = "Owner UUID") @Nullable public UUID getOwner() { - return this.metaData.getSets().getUUID(EntityMetaDataFields.TAMABLE_ENTITY_OWNER_UUID); + return getEntityMetaData().getSets().getUUID(EntityMetaDataFields.TAMABLE_ENTITY_OWNER_UUID); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/ambient/Bat.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/ambient/Bat.java index fc7464491..75892e5c8 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/ambient/Bat.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/ambient/Bat.java @@ -26,7 +26,7 @@ public class Bat extends AmbientCreature { } private boolean getBatFlag(int bitMask) { - return this.metaData.getSets().getBitMask(EntityMetaDataFields.BAT_FLAGS, bitMask); + return getEntityMetaData().getSets().getBitMask(EntityMetaDataFields.BAT_FLAGS, bitMask); } @EntityMetaDataFunction(name = "Hanging") diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Axolotl.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Axolotl.java index da70417c3..3c9b9cfed 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Axolotl.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Axolotl.java @@ -27,17 +27,17 @@ public class Axolotl extends Animal { @EntityMetaDataFunction(name = "Axolotl variant") public AxolotlVariants getVariant() { - return AxolotlVariants.byId(this.metaData.getSets().getInt(EntityMetaDataFields.AXOLOTL_VARIANT)); + return AxolotlVariants.byId(getEntityMetaData().getSets().getInt(EntityMetaDataFields.AXOLOTL_VARIANT)); } @EntityMetaDataFunction(name = "Is playing dead") public boolean isPlayingDead() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.AXOLOTL_PLAYING_DEAD); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.AXOLOTL_PLAYING_DEAD); } @EntityMetaDataFunction(name = "Is from bucket") public boolean isFromBucket() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.AXOLOTL_FROM_BUCKET); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.AXOLOTL_FROM_BUCKET); } public enum AxolotlVariants { diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Bee.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Bee.java index 6ac50efce..084d51116 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Bee.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Bee.java @@ -26,7 +26,7 @@ public class Bee extends Animal { } private boolean getBeeFlag(int bitMask) { - return this.metaData.getSets().getBitMask(EntityMetaDataFields.BEE_FLAGS, bitMask); + return getEntityMetaData().getSets().getBitMask(EntityMetaDataFields.BEE_FLAGS, bitMask); } @EntityMetaDataFunction(name = "Is angry") @@ -46,6 +46,6 @@ public class Bee extends Animal { @EntityMetaDataFunction(name = "Remaining angar time") public int getRemainingAngerTimer() { - return this.metaData.getSets().getInt(EntityMetaDataFields.BEE_REMAINING_ANGER_TIME); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.BEE_REMAINING_ANGER_TIME); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Cat.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Cat.java index f2f1ba902..b4b5d99b6 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Cat.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Cat.java @@ -30,22 +30,22 @@ public class Cat extends TamableAnimal { @EntityMetaDataFunction(name = "Variant") public CatVariants getVariant() { - return CatVariants.byId(this.metaData.getSets().getInt(EntityMetaDataFields.CAT_VARIANT)); + return CatVariants.byId(getEntityMetaData().getSets().getInt(EntityMetaDataFields.CAT_VARIANT)); } @EntityMetaDataFunction(name = "Lying") public boolean isLying() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.CAT_IS_LYING); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.CAT_IS_LYING); } @EntityMetaDataFunction(name = "Relaxed") public boolean isRelaxed() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.CAT_IS_RELAXED); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.CAT_IS_RELAXED); } @EntityMetaDataFunction(name = "Collar color") public RGBColor getCollarColor() { - return ChatColors.getColorById(this.metaData.getSets().getInt(EntityMetaDataFields.CAT_GET_COLLAR_COLOR)); + return ChatColors.getColorById(getEntityMetaData().getSets().getInt(EntityMetaDataFields.CAT_GET_COLLAR_COLOR)); } public enum CatVariants { diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Fox.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Fox.java index 13638961e..d81f8efce 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Fox.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Fox.java @@ -30,11 +30,11 @@ public class Fox extends Animal { @EntityMetaDataFunction(name = "Variant") public int getVariant() { - return this.metaData.getSets().getInt(EntityMetaDataFields.FOX_VARIANT); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.FOX_VARIANT); } private boolean getFoxFlag(int bitMask) { - return this.metaData.getSets().getBitMask(EntityMetaDataFields.FOX_FLAGS, bitMask); + return getEntityMetaData().getSets().getBitMask(EntityMetaDataFields.FOX_FLAGS, bitMask); } @EntityMetaDataFunction(name = "Is sitting") @@ -75,12 +75,12 @@ public class Fox extends Animal { @EntityMetaDataFunction(name = "Trusted 1") @Nullable public UUID getFirstTrusted() { - return this.metaData.getSets().getUUID(EntityMetaDataFields.FOX_TRUSTED_1); + return getEntityMetaData().getSets().getUUID(EntityMetaDataFields.FOX_TRUSTED_1); } @EntityMetaDataFunction(name = "Trusted 2") @Nullable public UUID getSecondTrusted() { - return this.metaData.getSets().getUUID(EntityMetaDataFields.FOX_TRUSTED_2); + return getEntityMetaData().getSets().getUUID(EntityMetaDataFields.FOX_TRUSTED_2); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/IronGolem.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/IronGolem.java index 225198353..c841663cb 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/IronGolem.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/IronGolem.java @@ -26,7 +26,7 @@ public class IronGolem extends AbstractGolem { } private boolean getIronGolemFlag(int bitMask) { - return this.metaData.getSets().getBitMask(EntityMetaDataFields.IRON_GOLEM_FLAGS, bitMask); + return getEntityMetaData().getSets().getBitMask(EntityMetaDataFields.IRON_GOLEM_FLAGS, bitMask); } @EntityMetaDataFunction(name = "Is player created") diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Mooshroom.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Mooshroom.java index 5654eb5a6..140b98299 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Mooshroom.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Mooshroom.java @@ -27,6 +27,6 @@ public class Mooshroom extends Cow { @EntityMetaDataFunction(name = "Variant") public String getVariant() { - return this.metaData.getSets().getString(EntityMetaDataFields.MOOSHROOM_VARIANT); + return getEntityMetaData().getSets().getString(EntityMetaDataFields.MOOSHROOM_VARIANT); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Ocelot.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Ocelot.java index c87860104..ea03dfa86 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Ocelot.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Ocelot.java @@ -27,6 +27,6 @@ public class Ocelot extends Animal { @EntityMetaDataFunction(name = "Trusting") public boolean isTrusting() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.OCELOT_IS_TRUSTING); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.OCELOT_IS_TRUSTING); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Panda.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Panda.java index f1e52e521..164c45e0f 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Panda.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Panda.java @@ -27,31 +27,31 @@ public class Panda extends Animal { @EntityMetaDataFunction(name = "Unhappy timer") public int getUnhappyTimer() { - return this.metaData.getSets().getInt(EntityMetaDataFields.PANDA_UNHAPPY_TIMER); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.PANDA_UNHAPPY_TIMER); } @EntityMetaDataFunction(name = "Sneeze timer") public int getSneezeTimer() { - return this.metaData.getSets().getInt(EntityMetaDataFields.PANDA_SNEEZE_TIMER); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.PANDA_SNEEZE_TIMER); } @EntityMetaDataFunction(name = "Eat timer") public int getEatTimer() { - return this.metaData.getSets().getInt(EntityMetaDataFields.PANDA_EAT_TIMER); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.PANDA_EAT_TIMER); } @EntityMetaDataFunction(name = "Main gene") public Genes getMainGene() { - return Genes.byId(this.metaData.getSets().getInt(EntityMetaDataFields.PANDA_MAIN_GENE)); + return Genes.byId(getEntityMetaData().getSets().getInt(EntityMetaDataFields.PANDA_MAIN_GENE)); } @EntityMetaDataFunction(name = "Hidden gene") public Genes getHiddenGene() { - return Genes.byId(this.metaData.getSets().getInt(EntityMetaDataFields.PANDA_HIDDEN_GAME)); + return Genes.byId(getEntityMetaData().getSets().getInt(EntityMetaDataFields.PANDA_HIDDEN_GAME)); } private boolean getPandaFlag(int bitMask) { - return this.metaData.getSets().getBitMask(EntityMetaDataFields.PANDA_FLAGS, bitMask); + return getEntityMetaData().getSets().getBitMask(EntityMetaDataFields.PANDA_FLAGS, bitMask); } @EntityMetaDataFunction(name = "Is sneezing") diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Parrot.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Parrot.java index 05f3ff392..1f8a050bd 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Parrot.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Parrot.java @@ -27,7 +27,7 @@ public class Parrot extends ShoulderRidingAnimal { @EntityMetaDataFunction(name = "Variant") public ParrotVariants getVariant() { - return ParrotVariants.byId(this.metaData.getSets().getInt(EntityMetaDataFields.PARROT_VARIANT)); + return ParrotVariants.byId(getEntityMetaData().getSets().getInt(EntityMetaDataFields.PARROT_VARIANT)); } public enum ParrotVariants { diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Pig.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Pig.java index c3984c9db..1840edb51 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Pig.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Pig.java @@ -27,11 +27,11 @@ public class Pig extends Animal { @EntityMetaDataFunction(name = "Has saddle") public boolean hasSaddle() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.PIG_HAS_SADDLE); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.PIG_HAS_SADDLE); } @EntityMetaDataFunction(name = "Boost time") public int getBoostTime() { - return this.metaData.getSets().getInt(EntityMetaDataFields.PIG_BOOST_TIME); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.PIG_BOOST_TIME); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/PolarBear.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/PolarBear.java index baca07f13..2261ee0ce 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/PolarBear.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/PolarBear.java @@ -27,6 +27,6 @@ public class PolarBear extends Animal { @EntityMetaDataFunction(name = "Is standing") public boolean isStanding() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.POLAR_BEAR_STANDING); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.POLAR_BEAR_STANDING); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Rabbit.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Rabbit.java index f7bc6dbec..a1fc51996 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Rabbit.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Rabbit.java @@ -27,6 +27,6 @@ public class Rabbit extends Animal { @EntityMetaDataFunction(name = "Variant") public int getVariant() { - return this.metaData.getSets().getInt(EntityMetaDataFields.RABBIT_VARIANT); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.RABBIT_VARIANT); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Sheep.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Sheep.java index 659734c0e..b27e714a1 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Sheep.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Sheep.java @@ -29,11 +29,11 @@ public class Sheep extends Animal { @EntityMetaDataFunction(name = "Color") private RGBColor getColor() { - return ChatColors.getColorById(this.metaData.getSets().getByte(EntityMetaDataFields.SHEEP_FLAGS) & 0xF); + return ChatColors.getColorById(getEntityMetaData().getSets().getByte(EntityMetaDataFields.SHEEP_FLAGS) & 0xF); } @EntityMetaDataFunction(name = "Is sheared") private boolean isSheared() { - return this.metaData.getSets().getBitMask(EntityMetaDataFields.SHEEP_FLAGS, 0x10); + return getEntityMetaData().getSets().getBitMask(EntityMetaDataFields.SHEEP_FLAGS, 0x10); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/SnowGolem.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/SnowGolem.java index cd6087b52..d12cb94f3 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/SnowGolem.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/SnowGolem.java @@ -26,7 +26,7 @@ public class SnowGolem extends AbstractGolem { } private boolean getPumpkinFlags(int bitMask) { - return this.metaData.getSets().getBitMask(EntityMetaDataFields.SNOW_GOLEM_FLAGS, bitMask); + return getEntityMetaData().getSets().getBitMask(EntityMetaDataFields.SNOW_GOLEM_FLAGS, bitMask); } @EntityMetaDataFunction(name = "Pumpkin hat") diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Strider.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Strider.java index bf9c0effa..64084aebd 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Strider.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Strider.java @@ -27,16 +27,16 @@ public class Strider extends Animal { @EntityMetaDataFunction(name = "Boost stime") private int getBoostTime() { - return this.metaData.getSets().getInt(EntityMetaDataFields.STRIDER_TIME_TO_BOOST); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.STRIDER_TIME_TO_BOOST); } @EntityMetaDataFunction(name = "Is suffocating") private boolean isSuffocating() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.STRIDER_IS_SUFFOCATING); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.STRIDER_IS_SUFFOCATING); } @EntityMetaDataFunction(name = "Has saddle") private boolean hasSaddle() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.STRIDER_HAS_SADDLE); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.STRIDER_HAS_SADDLE); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Turtle.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Turtle.java index 0b68905b7..263ca4fcd 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Turtle.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Turtle.java @@ -31,32 +31,32 @@ public class Turtle extends Animal { @EntityMetaDataFunction(name = "Home Position") @Nullable public Vec3i getHomePosition() { - return this.metaData.getSets().getBlockPosition(EntityMetaDataFields.TURTLE_HOME_POSITION); + return getEntityMetaData().getSets().getBlockPosition(EntityMetaDataFields.TURTLE_HOME_POSITION); } @EntityMetaDataFunction(name = "Has egg") public boolean hasEgg() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.TURTLE_HAS_EGG); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.TURTLE_HAS_EGG); } @EntityMetaDataFunction(name = "Is laying egg") public boolean isLayingEgg() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.TURTLE_IS_LAYING_EGG); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.TURTLE_IS_LAYING_EGG); } @EntityMetaDataFunction(name = "Travel position") @Nullable public Vec3i getTravelPosition() { - return this.metaData.getSets().getBlockPosition(EntityMetaDataFields.TURTLE_TRAVEL_POSITION); + return getEntityMetaData().getSets().getBlockPosition(EntityMetaDataFields.TURTLE_TRAVEL_POSITION); } @EntityMetaDataFunction(name = "Is going home") public boolean isGoingHome() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.TURTLE_IS_GOING_HOME); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.TURTLE_IS_GOING_HOME); } @EntityMetaDataFunction(name = "Is traveling") public boolean isTraveling() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.TURTLE_IS_TRAVELING); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.TURTLE_IS_TRAVELING); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Wolf.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Wolf.java index e8dc6e3d7..2b7fbc0c9 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Wolf.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/Wolf.java @@ -33,20 +33,20 @@ public class Wolf extends TamableAnimal { @EntityMetaDataFunction(name = "Is beging") public boolean isBegging() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.WOLF_IS_BEGGING); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.WOLF_IS_BEGGING); } @EntityMetaDataFunction(name = "Collar color") public RGBColor getCollarColor() { - return ChatColors.getColorById(this.metaData.getSets().getInt(EntityMetaDataFields.WOLF_COLLAR_COLOR)); + return ChatColors.getColorById(getEntityMetaData().getSets().getInt(EntityMetaDataFields.WOLF_COLLAR_COLOR)); } @EntityMetaDataFunction(name = "Anger time") public int getAngerTime() { if (this.versionId <= V_1_8_9) {// ToDo - return this.metaData.getSets().getBitMask(EntityMetaDataFields.TAMABLE_ENTITY_FLAGS, 0x02) ? 1 : 0; + return getEntityMetaData().getSets().getBitMask(EntityMetaDataFields.TAMABLE_ENTITY_FLAGS, 0x02) ? 1 : 0; } - return this.metaData.getSets().getInt(EntityMetaDataFields.WOLF_ANGER_TIME); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.WOLF_ANGER_TIME); } @EntityMetaDataFunction(name = "Health") @@ -55,6 +55,6 @@ public class Wolf extends TamableAnimal { if (this.versionId > V_19W45B) { return super.getHealth(); } - return this.metaData.getSets().getFloat(EntityMetaDataFields.WOLF_HEALTH); + return getEntityMetaData().getSets().getFloat(EntityMetaDataFields.WOLF_HEALTH); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/hoglin/Hoglin.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/hoglin/Hoglin.java index 2a64285e7..98f6c5367 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/hoglin/Hoglin.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/hoglin/Hoglin.java @@ -28,6 +28,6 @@ public class Hoglin extends Animal { @EntityMetaDataFunction(name = "Immune zo zombification") public boolean isImmuneToZombification() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.HOGLIN_IMMUNE_TO_ZOMBIFICATION); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.HOGLIN_IMMUNE_TO_ZOMBIFICATION); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/horse/AbstractChestedHorse.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/horse/AbstractChestedHorse.java index 6dd12dfe3..efc97bf40 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/horse/AbstractChestedHorse.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/horse/AbstractChestedHorse.java @@ -27,6 +27,6 @@ public abstract class AbstractChestedHorse extends AbstractHorse { @EntityMetaDataFunction(name = "Has chest") public boolean hasChest() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.ABSTRACT_CHESTED_HORSE_HAS_CHEST); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.ABSTRACT_CHESTED_HORSE_HAS_CHEST); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/horse/AbstractHorse.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/horse/AbstractHorse.java index 60a98bc91..6a4d1a753 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/horse/AbstractHorse.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/horse/AbstractHorse.java @@ -30,7 +30,7 @@ public abstract class AbstractHorse extends Animal { } private boolean getAbstractHorseFlag(int bitMask) { - return this.metaData.getSets().getBitMask(EntityMetaDataFields.ABSTRACT_HORSE_FLAGS, bitMask); + return getEntityMetaData().getSets().getBitMask(EntityMetaDataFields.ABSTRACT_HORSE_FLAGS, bitMask); } @EntityMetaDataFunction(name = "Is tame") @@ -66,6 +66,6 @@ public abstract class AbstractHorse extends Animal { @EntityMetaDataFunction(name = "Owner UUID") @Nullable public UUID getOwner() { - return this.metaData.getSets().getUUID(EntityMetaDataFields.ABSTRACT_HORSE_OWNER_UUID); + return getEntityMetaData().getSets().getUUID(EntityMetaDataFields.ABSTRACT_HORSE_OWNER_UUID); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/horse/Horse.kt b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/horse/Horse.kt index 9427853fc..b7f9398f8 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/horse/Horse.kt +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/horse/Horse.kt @@ -24,11 +24,11 @@ import glm_.vec3.Vec3 class Horse(connection: Connection, location: Vec3, rotation: EntityRotation) : AbstractHorse(connection, location, rotation) { private fun getAbstractHorseFlag(bitMask: Int): Boolean { - return metaData.sets.getBitMask(EntityMetaDataFields.ABSTRACT_HORSE_FLAGS, bitMask) + return entityMetaData.sets.getBitMask(EntityMetaDataFields.ABSTRACT_HORSE_FLAGS, bitMask) } private val variant: Int - get() = metaData.sets.getInt(EntityMetaDataFields.HORSE_VARIANT) + get() = entityMetaData.sets.getInt(EntityMetaDataFields.HORSE_VARIANT) @get:EntityMetaDataFunction(name = "Color") val color: HorseColors @@ -45,7 +45,7 @@ class Horse(connection: Connection, location: Vec3, rotation: EntityRotation) : if (versionId <= ProtocolVersions.V_1_8_9) { // ToDo return null } - return connection.mapping.itemRegistry.get(when (this.metaData.sets.getInt(EntityMetaDataFields.LEGACY_HORSE_ARMOR)) { + return connection.mapping.itemRegistry.get(when (this.entityMetaData.sets.getInt(EntityMetaDataFields.LEGACY_HORSE_ARMOR)) { 1 -> LEGACY_IRON_ARMOR 2 -> LEGACY_GOLD_ARMOR 3 -> LEGACY_DIAMOND_ARMOR diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/horse/Llama.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/horse/Llama.java index fcfb0f11e..f0132f02c 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/horse/Llama.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/horse/Llama.java @@ -27,16 +27,16 @@ public class Llama extends AbstractChestedHorse { @EntityMetaDataFunction(name = "Strength") public int getStrength() { - return this.metaData.getSets().getInt(EntityMetaDataFields.LLAMA_STRENGTH); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.LLAMA_STRENGTH); } @EntityMetaDataFunction(name = "CarpetColor") public int getCarpetColor() { - return this.metaData.getSets().getInt(EntityMetaDataFields.LLAMA_CARPET_COLOR); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.LLAMA_CARPET_COLOR); } @EntityMetaDataFunction(name = "Variant") public int getVariant() { - return this.metaData.getSets().getInt(EntityMetaDataFields.LLAMA_VARIANT); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.LLAMA_VARIANT); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/water/AbstractFish.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/water/AbstractFish.java index 7359b0562..1afb8ca8b 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/water/AbstractFish.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/water/AbstractFish.java @@ -27,7 +27,7 @@ public abstract class AbstractFish extends WaterAnimal { @EntityMetaDataFunction(name = "Is from bucket") public boolean isFromBucket() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.ABSTRACT_FISH_FROM_BUCKET); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.ABSTRACT_FISH_FROM_BUCKET); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/water/Dolphin.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/water/Dolphin.java index 50aa7fc54..e3359fdd7 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/water/Dolphin.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/water/Dolphin.java @@ -31,17 +31,17 @@ public class Dolphin extends WaterAnimal { @EntityMetaDataFunction(name = "Treasure position") @Nullable public Vec3i getTreasurePosition() { - return this.metaData.getSets().getBlockPosition(EntityMetaDataFields.DOLPHIN_TREASURE_POSITION); + return getEntityMetaData().getSets().getBlockPosition(EntityMetaDataFields.DOLPHIN_TREASURE_POSITION); } @EntityMetaDataFunction(name = "Has fish") public boolean hasFish() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.DOLPHIN_HAS_FISH); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.DOLPHIN_HAS_FISH); } @EntityMetaDataFunction(name = "Moistness level") public int getMoistnessLevel() { - return this.metaData.getSets().getInt(EntityMetaDataFields.DOLPHIN_MOISTNESS_LEVEL); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.DOLPHIN_MOISTNESS_LEVEL); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/water/GlowSquid.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/water/GlowSquid.java index 16a599457..1ec7888ea 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/water/GlowSquid.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/water/GlowSquid.java @@ -27,7 +27,7 @@ public class GlowSquid extends Squid { @EntityMetaDataFunction(name = "Dark ticks remaining") public int getDarkTicksRemaining() { - return this.metaData.getSets().getInt(EntityMetaDataFields.GLOW_SQUID_DARK_TICKS_REMAINING); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.GLOW_SQUID_DARK_TICKS_REMAINING); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/water/PufferFish.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/water/PufferFish.java index 0e3cf3fe5..7c3fe9f01 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/water/PufferFish.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/water/PufferFish.java @@ -27,6 +27,6 @@ public class PufferFish extends AbstractFish { @EntityMetaDataFunction(name = "Puff state") public int getPuffState() { - return this.metaData.getSets().getInt(EntityMetaDataFields.PUFFERFISH_PUFF_STATE); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.PUFFERFISH_PUFF_STATE); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/water/TropicalFish.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/water/TropicalFish.java index 3fc5b4ea0..db85bcc4e 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/water/TropicalFish.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/animal/water/TropicalFish.java @@ -27,6 +27,6 @@ public class TropicalFish extends AbstractSchoolingFish { @EntityMetaDataFunction(name = "Variant") public int getVariant() { - return this.metaData.getSets().getInt(EntityMetaDataFields.TROPICAL_FISH_VARIANT); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.TROPICAL_FISH_VARIANT); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/boss/enderdragon/EndCrystal.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/boss/enderdragon/EndCrystal.java index 482d5941a..0c94c4556 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/boss/enderdragon/EndCrystal.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/boss/enderdragon/EndCrystal.java @@ -32,12 +32,12 @@ public class EndCrystal extends Entity { @EntityMetaDataFunction(name = "Beam target") @Nullable public Vec3i getBeamTarget() { - return getMetaData().getSets().getBlockPosition(EntityMetaDataFields.END_CRYSTAL_BEAM_TARGET); + return getEntityMetaData().getSets().getBlockPosition(EntityMetaDataFields.END_CRYSTAL_BEAM_TARGET); } @EntityMetaDataFunction(name = "Show bottom") public boolean shotBottom() { - return getMetaData().getSets().getBoolean(EntityMetaDataFields.END_CRYSTAL_SHOW_BOTTOM); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.END_CRYSTAL_SHOW_BOTTOM); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/boss/enderdragon/EnderDragon.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/boss/enderdragon/EnderDragon.java index 4d43047f5..871aeeed8 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/boss/enderdragon/EnderDragon.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/boss/enderdragon/EnderDragon.java @@ -28,7 +28,7 @@ public class EnderDragon extends Mob { @EntityMetaDataFunction(name = "Phase") public DragonPhases getPhase() { - return DragonPhases.byId(this.metaData.getSets().getInt(EntityMetaDataFields.ENDER_DRAGON_PHASE)); + return DragonPhases.byId(getEntityMetaData().getSets().getInt(EntityMetaDataFields.ENDER_DRAGON_PHASE)); } public enum DragonPhases { diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/boss/wither/WitherBoss.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/boss/wither/WitherBoss.java index fb8fe7c18..09e726a34 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/boss/wither/WitherBoss.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/boss/wither/WitherBoss.java @@ -28,21 +28,21 @@ public class WitherBoss extends Monster { @EntityMetaDataFunction(name = "Center head target entity id") public int getCenterHeadTargetEntityId() { - return this.metaData.getSets().getInt(EntityMetaDataFields.WITHER_BOSS_CENTER_HEAD_TARGET_ENTITY_ID); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.WITHER_BOSS_CENTER_HEAD_TARGET_ENTITY_ID); } @EntityMetaDataFunction(name = "Left head target entity id") public int getLeftHeadTargetEntityId() { - return this.metaData.getSets().getInt(EntityMetaDataFields.WITHER_BOSS_LEFT_HEAD_TARGET_ENTITY_ID); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.WITHER_BOSS_LEFT_HEAD_TARGET_ENTITY_ID); } @EntityMetaDataFunction(name = "Right head target entity id") public int getRightHeadTargetEntityId() { - return this.metaData.getSets().getInt(EntityMetaDataFields.WITHER_BOSS_RIGHT_HEAD_TARGET_ENTITY_ID); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.WITHER_BOSS_RIGHT_HEAD_TARGET_ENTITY_ID); } @EntityMetaDataFunction(name = "Invulnerable time") public int getInvulnerableTime() { - return this.metaData.getSets().getInt(EntityMetaDataFields.WITHER_BOSS_INVULNERABLE_TIME); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.WITHER_BOSS_INVULNERABLE_TIME); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/decoration/ArmorStand.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/decoration/ArmorStand.java index 716d25bb9..027ed9ff9 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/decoration/ArmorStand.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/decoration/ArmorStand.java @@ -27,7 +27,7 @@ public class ArmorStand extends LivingEntity { } private boolean getArmorStandFlag(int bitMask) { - return this.metaData.getSets().getBitMask(EntityMetaDataFields.ARMOR_STAND_FLAGS, bitMask); + return getEntityMetaData().getSets().getBitMask(EntityMetaDataFields.ARMOR_STAND_FLAGS, bitMask); } @EntityMetaDataFunction(name = "Is small") @@ -52,32 +52,32 @@ public class ArmorStand extends LivingEntity { @EntityMetaDataFunction(name = "Head rotation") public EntityRotation getHeadRotation() { - return this.metaData.getSets().getRotation(EntityMetaDataFields.ARMOR_STAND_HEAD_ROTATION); + return getEntityMetaData().getSets().getRotation(EntityMetaDataFields.ARMOR_STAND_HEAD_ROTATION); } @EntityMetaDataFunction(name = "Body rotation") public EntityRotation getBodyRotation() { - return this.metaData.getSets().getRotation(EntityMetaDataFields.ARMOR_STAND_BODY_ROTATION); + return getEntityMetaData().getSets().getRotation(EntityMetaDataFields.ARMOR_STAND_BODY_ROTATION); } @EntityMetaDataFunction(name = "Left arm rotation") public EntityRotation getLeftArmRotation() { - return this.metaData.getSets().getRotation(EntityMetaDataFields.ARMOR_STAND_LEFT_ARM_ROTATION); + return getEntityMetaData().getSets().getRotation(EntityMetaDataFields.ARMOR_STAND_LEFT_ARM_ROTATION); } @EntityMetaDataFunction(name = "Right arm rotation") public EntityRotation getRightArmRotation() { - return this.metaData.getSets().getRotation(EntityMetaDataFields.ARMOR_STAND_RIGHT_ARM_ROTATION); + return getEntityMetaData().getSets().getRotation(EntityMetaDataFields.ARMOR_STAND_RIGHT_ARM_ROTATION); } @EntityMetaDataFunction(name = "Left leg rotation") public EntityRotation getLeftLegRotation() { - return this.metaData.getSets().getRotation(EntityMetaDataFields.ARMOR_STAND_LEFT_LAG_ROTATION); + return getEntityMetaData().getSets().getRotation(EntityMetaDataFields.ARMOR_STAND_LEFT_LAG_ROTATION); } @EntityMetaDataFunction(name = "Right leg rotation") public EntityRotation getRightLegRotation() { - return this.metaData.getSets().getRotation(EntityMetaDataFields.ARMOR_STAND_RIGHT_LAG_ROTATION); + return getEntityMetaData().getSets().getRotation(EntityMetaDataFields.ARMOR_STAND_RIGHT_LAG_ROTATION); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/decoration/ItemFrame.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/decoration/ItemFrame.java index 4ce7fa3b6..c60d0ac36 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/decoration/ItemFrame.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/decoration/ItemFrame.java @@ -31,12 +31,12 @@ public class ItemFrame extends HangingEntity { @EntityMetaDataFunction(name = "Item") @Nullable public ItemStack getItem() { - return this.metaData.getSets().getItemStack(EntityMetaDataFields.ITEM_FRAME_ITEM); + return getEntityMetaData().getSets().getItemStack(EntityMetaDataFields.ITEM_FRAME_ITEM); } @EntityMetaDataFunction(name = "Item rotation level") public int getItemRotation() { - return this.metaData.getSets().getInt(EntityMetaDataFields.ITEM_FRAME_ROTATION); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.ITEM_FRAME_ROTATION); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/item/FallingBlock.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/item/FallingBlock.java index c33952b5b..8552164fe 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/item/FallingBlock.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/item/FallingBlock.java @@ -32,7 +32,7 @@ public class FallingBlock extends Entity { @EntityMetaDataFunction(name = "Spawn position") @Nullable public Vec3i getSpawnPosition() { - return getMetaData().getSets().getBlockPosition(EntityMetaDataFields.FALLING_BLOCK_SPAWN_POSITION); + return getEntityMetaData().getSets().getBlockPosition(EntityMetaDataFields.FALLING_BLOCK_SPAWN_POSITION); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/item/ItemEntity.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/item/ItemEntity.java index 53b1634ef..aeb73f2b4 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/item/ItemEntity.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/item/ItemEntity.java @@ -32,7 +32,7 @@ public class ItemEntity extends Entity { @EntityMetaDataFunction(name = "Item") @Nullable public ItemStack getItem() { - return this.metaData.getSets().getItemStack(EntityMetaDataFields.ITEM_ITEM); + return getEntityMetaData().getSets().getItemStack(EntityMetaDataFields.ITEM_ITEM); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/item/PrimedTNT.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/item/PrimedTNT.java index 3e0a375c7..eeac68f99 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/item/PrimedTNT.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/item/PrimedTNT.java @@ -28,6 +28,6 @@ public class PrimedTNT extends Entity { @EntityMetaDataFunction(name = "Fuse time") public int getFuseTime() { - return this.metaData.getSets().getInt(EntityMetaDataFields.PRIMED_TNT_FUSE_TIME); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.PRIMED_TNT_FUSE_TIME); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Blaze.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Blaze.java index 2b01c0f11..1c5403ff2 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Blaze.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Blaze.java @@ -26,7 +26,7 @@ public class Blaze extends Monster { } private boolean getBlazeFlag(int bitMask) { - return this.metaData.getSets().getBitMask(EntityMetaDataFields.BLAZE_FLAGS, bitMask); + return getEntityMetaData().getSets().getBitMask(EntityMetaDataFields.BLAZE_FLAGS, bitMask); } @EntityMetaDataFunction(name = "Is Burning") diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Creeper.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Creeper.java index a4e1520d8..89772da81 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Creeper.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Creeper.java @@ -27,16 +27,16 @@ public class Creeper extends Monster { @EntityMetaDataFunction(name = "State") public int getState() { - return this.metaData.getSets().getInt(EntityMetaDataFields.CREEPER_STATE); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.CREEPER_STATE); } @EntityMetaDataFunction(name = "Is charged") public boolean isCharged() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.CREEPER_IS_CHARGED); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.CREEPER_IS_CHARGED); } @EntityMetaDataFunction(name = "Is ignited") public boolean isIgnited() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.CREEPER_IS_IGNITED); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.CREEPER_IS_IGNITED); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Enderman.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Enderman.java index 940064089..c0dd872c0 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Enderman.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Enderman.java @@ -34,18 +34,18 @@ public class Enderman extends AbstractSkeleton { @Nullable public BlockState getCarriedBlock() { if (this.versionId <= V_1_8_9) { // ToDo: No clue here - return this.connection.getMapping().getBlockState(this.metaData.getSets().getInt(EntityMetaDataFields.LEGACY_ENDERMAN_CARRIED_BLOCK) << 4 | this.metaData.getSets().getInt(EntityMetaDataFields.LEGACY_ENDERMAN_CARRIED_BLOCK_DATA)); + return this.getConnection().getMapping().getBlockState(getEntityMetaData().getSets().getInt(EntityMetaDataFields.LEGACY_ENDERMAN_CARRIED_BLOCK) << 4 | getEntityMetaData().getSets().getInt(EntityMetaDataFields.LEGACY_ENDERMAN_CARRIED_BLOCK_DATA)); } - return this.metaData.getSets().getBlock(EntityMetaDataFields.ENDERMAN_CARRIED_BLOCK); + return getEntityMetaData().getSets().getBlock(EntityMetaDataFields.ENDERMAN_CARRIED_BLOCK); } @EntityMetaDataFunction(name = "Is screaming") public boolean isScreaming() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.ENDERMAN_IS_SCREAMING); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.ENDERMAN_IS_SCREAMING); } @EntityMetaDataFunction(name = "Is starring") public boolean isStarring() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.ENDERMAN_IS_STARRING); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.ENDERMAN_IS_STARRING); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Ghast.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Ghast.java index ed63cc8f4..ec018f53d 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Ghast.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Ghast.java @@ -28,6 +28,6 @@ public class Ghast extends FlyingMob { @EntityMetaDataFunction(name = "Is attacking") public boolean isAttacking() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.GHAST_IS_ATTACKING); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.GHAST_IS_ATTACKING); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Guardian.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Guardian.java index a638940ce..058953a17 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Guardian.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Guardian.java @@ -27,11 +27,11 @@ public class Guardian extends Monster { @EntityMetaDataFunction(name = "Is moving") public boolean isMoving() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.GUARDIAN_IS_MOVING); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.GUARDIAN_IS_MOVING); } @EntityMetaDataFunction(name = "Attacked entity id") public int getAttackEntityId() { - return this.metaData.getSets().getInt(EntityMetaDataFields.GUARDIAN_TARGET_ENTITY_ID); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.GUARDIAN_TARGET_ENTITY_ID); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Phantom.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Phantom.java index 586d57693..c7ed94acf 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Phantom.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Phantom.java @@ -28,6 +28,6 @@ public class Phantom extends FlyingMob { @EntityMetaDataFunction(name = "Size") public int getSize() { - return this.metaData.getSets().getInt(EntityMetaDataFields.PHANTOM_SIZE); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.PHANTOM_SIZE); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Shulker.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Shulker.java index 75f17b5d4..a1184684e 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Shulker.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Shulker.java @@ -34,22 +34,22 @@ public class Shulker extends AbstractGolem { @EntityMetaDataFunction(name = "Attachment face") public Directions getAttachmentFace() { - return this.metaData.getSets().getDirection(EntityMetaDataFields.SHULKER_ATTACH_FACE); + return getEntityMetaData().getSets().getDirection(EntityMetaDataFields.SHULKER_ATTACH_FACE); } @EntityMetaDataFunction(name = "Attachment position") @Nullable public Vec3i getAttachmentPosition() { - return this.metaData.getSets().getBlockPosition(EntityMetaDataFields.SHULKER_ATTACHMENT_POSITION); + return getEntityMetaData().getSets().getBlockPosition(EntityMetaDataFields.SHULKER_ATTACHMENT_POSITION); } @EntityMetaDataFunction(name = "Peek") public byte getPeek() { - return this.metaData.getSets().getByte(EntityMetaDataFields.SHULKER_PEEK); + return getEntityMetaData().getSets().getByte(EntityMetaDataFields.SHULKER_PEEK); } @EntityMetaDataFunction(name = "Color") public RGBColor getColor() { - return ChatColors.getColorById(this.metaData.getSets().getByte(EntityMetaDataFields.SHULKER_COLOR)); + return ChatColors.getColorById(getEntityMetaData().getSets().getByte(EntityMetaDataFields.SHULKER_COLOR)); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Skeleton.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Skeleton.java index 6cb94963e..740228e53 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Skeleton.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Skeleton.java @@ -25,6 +25,6 @@ public class Skeleton extends AbstractSkeleton { } public boolean isFreezeConverting() { - return this.metaData.getSets().get(EntityMetaDataFields.SKELETON_STRAY_FREEZE_CONVERTING); + return getEntityMetaData().getSets().get(EntityMetaDataFields.SKELETON_STRAY_FREEZE_CONVERTING); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Slime.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Slime.java index 011ec771b..eabb529ef 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Slime.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Slime.java @@ -30,6 +30,6 @@ public class Slime extends Mob { @IntRange(from = 0) @EntityMetaDataFunction(name = "Size") public int getSize() { - return this.metaData.getSets().getInt(EntityMetaDataFields.SLIME_SIZE); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.SLIME_SIZE); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Spider.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Spider.java index 70797d4fc..7d100e4aa 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Spider.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Spider.java @@ -26,7 +26,7 @@ public class Spider extends Monster { } private boolean getSpiderFlag(int bitMask) { - return this.metaData.getSets().getBitMask(EntityMetaDataFields.SPIDER_FLAGS, bitMask); + return getEntityMetaData().getSets().getBitMask(EntityMetaDataFields.SPIDER_FLAGS, bitMask); } @EntityMetaDataFunction(name = "Is climbing") diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Vex.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Vex.java index 6fa55719e..139d1a0a0 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Vex.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Vex.java @@ -26,7 +26,7 @@ public class Vex extends Monster { } private boolean getVexFlag(int bitMask) { - return this.metaData.getSets().getBitMask(EntityMetaDataFields.VEX_FLAGS, bitMask); + return getEntityMetaData().getSets().getBitMask(EntityMetaDataFields.VEX_FLAGS, bitMask); } @EntityMetaDataFunction(name = "Is attacking") diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Zoglin.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Zoglin.java index 0f2d8aecd..216dd0931 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Zoglin.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Zoglin.java @@ -27,6 +27,6 @@ public class Zoglin extends Monster { @EntityMetaDataFunction(name = "Is baby") public boolean isBaby() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.ZOGLIN_IS_BABY); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.ZOGLIN_IS_BABY); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Zombie.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Zombie.java index 092056805..5eb7b8e72 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Zombie.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/Zombie.java @@ -27,17 +27,17 @@ public class Zombie extends Monster { @EntityMetaDataFunction(name = "Is baby") public boolean isBaby() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.ZOMBIE_IS_BABY); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.ZOMBIE_IS_BABY); } @EntityMetaDataFunction(name = "Special type") public int getSpecialType() { - return this.metaData.getSets().getInt(EntityMetaDataFields.ZOMBIE_SPECIAL_TYPE); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.ZOMBIE_SPECIAL_TYPE); } @EntityMetaDataFunction(name = "Is converting to drowned") public boolean isConvertingToDrowned() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.ZOMBIE_DROWNING_CONVERSION); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.ZOMBIE_DROWNING_CONVERSION); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/ZombieVillager.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/ZombieVillager.java index ad4de308c..04916cc2c 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/ZombieVillager.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/ZombieVillager.java @@ -28,12 +28,12 @@ public class ZombieVillager extends Zombie { @EntityMetaDataFunction(name = "Is converting") public boolean isConverting() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.ZOMBIE_VILLAGER_IS_CONVERTING); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.ZOMBIE_VILLAGER_IS_CONVERTING); } @EntityMetaDataFunction(name = "Villager data") public VillagerData getVillagerData() { - return this.metaData.getSets().getVillagerData(EntityMetaDataFields.ZOMBIE_VILLAGER_DATA); + return getEntityMetaData().getSets().getVillagerData(EntityMetaDataFields.ZOMBIE_VILLAGER_DATA); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/piglin/AbstractPiglin.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/piglin/AbstractPiglin.java index d342d7b91..804431bbe 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/piglin/AbstractPiglin.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/piglin/AbstractPiglin.java @@ -28,7 +28,7 @@ public abstract class AbstractPiglin extends Monster { @EntityMetaDataFunction(name = "Is immune to zombification") public boolean isImmuneToZombification() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.ABSTRACT_PIGLIN_IMMUNE_TO_ZOMBIFICATION); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.ABSTRACT_PIGLIN_IMMUNE_TO_ZOMBIFICATION); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/piglin/Piglin.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/piglin/Piglin.java index 8021631ed..22be7e5ea 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/piglin/Piglin.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/piglin/Piglin.java @@ -33,22 +33,22 @@ public class Piglin extends AbstractPiglin { if (this.versionId < V_20W27A) { return super.isImmuneToZombification(); } - return this.metaData.getSets().getBoolean(EntityMetaDataFields.PIGLIN_IMMUNE_TO_ZOMBIFICATION); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.PIGLIN_IMMUNE_TO_ZOMBIFICATION); } @EntityMetaDataFunction(name = "Is baby") public boolean isBaby() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.PIGLIN_IS_BABY); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.PIGLIN_IS_BABY); } @EntityMetaDataFunction(name = "Is charging crossbow") public boolean isChargingCrossbow() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.PIGLIN_IS_CHARGING_CROSSBOW); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.PIGLIN_IS_CHARGING_CROSSBOW); } @EntityMetaDataFunction(name = "Is dancing") public boolean isDancing() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.PIGLIN_IS_DANCING); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.PIGLIN_IS_DANCING); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/raid/Pillager.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/raid/Pillager.java index 4cdfc7d9a..4f4cd8c4f 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/raid/Pillager.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/raid/Pillager.java @@ -27,6 +27,6 @@ public class Pillager extends AbstractIllager { @EntityMetaDataFunction(name = "Is charging crossbow") public boolean isChargingCrossbow() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.PILLAGER_IS_CHARGING_CROSSBOW); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.PILLAGER_IS_CHARGING_CROSSBOW); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/raid/Raider.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/raid/Raider.java index 5789b1a1c..e34a3f8d9 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/raid/Raider.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/raid/Raider.java @@ -28,6 +28,6 @@ public abstract class Raider extends PatrollingMonster { @EntityMetaDataFunction(name = "Is celebrating") public boolean isCelebrating() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.RAIDER_IS_CELEBRATING); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.RAIDER_IS_CELEBRATING); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/raid/SpellcasterIllager.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/raid/SpellcasterIllager.java index f3a0678ac..fd20d0505 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/raid/SpellcasterIllager.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/raid/SpellcasterIllager.java @@ -27,7 +27,7 @@ public class SpellcasterIllager extends AbstractIllager { @EntityMetaDataFunction(name = "Spell") public Spells getSpell() { - return Spells.byId(this.metaData.getSets().getInt(EntityMetaDataFields.SPELLCASTER_ILLAGER_SPELL)); + return Spells.byId(getEntityMetaData().getSets().getInt(EntityMetaDataFields.SPELLCASTER_ILLAGER_SPELL)); } public enum Spells { diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/raid/Witch.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/raid/Witch.java index 9447e5943..c0db73f2a 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/raid/Witch.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/monster/raid/Witch.java @@ -27,10 +27,10 @@ public class Witch extends Raider { @EntityMetaDataFunction(name = "Is drinking Potion") public boolean isDrinkingPotion() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.WITCH_IS_DRINKING_POTION); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.WITCH_IS_DRINKING_POTION); } public boolean isAggressive() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.LEGACY_WITCH_IS_AGGRESSIVE); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.LEGACY_WITCH_IS_AGGRESSIVE); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/npc/villager/AbstractVillager.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/npc/villager/AbstractVillager.java index 7fce9f6b8..b2f3acdf4 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/npc/villager/AbstractVillager.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/npc/villager/AbstractVillager.java @@ -28,6 +28,6 @@ public abstract class AbstractVillager extends AgeableMob { @EntityMetaDataFunction(name = "Unhappy timer") public int getUnhappyTimer() { - return this.metaData.getSets().getInt(EntityMetaDataFields.ABSTRACT_VILLAGER_UNHAPPY_TIMER); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.ABSTRACT_VILLAGER_UNHAPPY_TIMER); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/npc/villager/Villager.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/npc/villager/Villager.java index 9513b974c..c4df00eed 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/npc/villager/Villager.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/npc/villager/Villager.java @@ -27,6 +27,6 @@ public class Villager extends AbstractVillager { @EntityMetaDataFunction(name = "Villager data") public VillagerData getVillagerDate() { - return this.metaData.getSets().getVillagerData(EntityMetaDataFields.VILLAGER_VILLAGER_DATA); + return getEntityMetaData().getSets().getVillagerData(EntityMetaDataFields.VILLAGER_VILLAGER_DATA); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/player/PlayerEntity.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/player/PlayerEntity.java index 68f9ed525..8bc59dc14 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/player/PlayerEntity.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/player/PlayerEntity.java @@ -26,9 +26,11 @@ import glm_.vec3.Vec3; import javax.annotation.Nullable; import java.util.HashSet; +import java.util.UUID; public class PlayerEntity extends LivingEntity { private String name; + private UUID uuid; private final HashSet properties; private Gamemodes gamemode; @@ -38,9 +40,10 @@ public class PlayerEntity extends LivingEntity { this.properties = null; } - public PlayerEntity(Connection connection, Vec3 position, EntityRotation rotation, String name, @Nullable HashSet properties, Gamemodes gamemode) { + public PlayerEntity(Connection connection, Vec3 position, EntityRotation rotation, String name, UUID uuid, @Nullable HashSet properties, Gamemodes gamemode) { super(connection, position, rotation); this.name = name; + this.uuid = uuid; this.properties = properties; this.gamemode = gamemode; this.hasCollisions = gamemode != Gamemodes.SPECTATOR; @@ -48,33 +51,33 @@ public class PlayerEntity extends LivingEntity { @EntityMetaDataFunction(name = "Absorption hearts") public float getPlayerAbsorptionHearts() { - return this.metaData.getSets().getFloat(EntityMetaDataFields.PLAYER_ABSORPTION_HEARTS); + return getEntityMetaData().getSets().getFloat(EntityMetaDataFields.PLAYER_ABSORPTION_HEARTS); } @EntityMetaDataFunction(name = "Score") public int getScore() { - return this.metaData.getSets().getInt(EntityMetaDataFields.PLAYER_SCORE); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.PLAYER_SCORE); } private boolean getSkinPartsFlag(int bitMask) { - return this.metaData.getSets().getBitMask(EntityMetaDataFields.PLAYER_SKIN_PARTS_FLAGS, bitMask); + return getEntityMetaData().getSets().getBitMask(EntityMetaDataFields.PLAYER_SKIN_PARTS_FLAGS, bitMask); } @EntityMetaDataFunction(name = "Main hand") public Hands getMainHand() { - return this.metaData.getSets().getByte(EntityMetaDataFields.PLAYER_SKIN_MAIN_HAND) == 0x01 ? Hands.OFF_HAND : Hands.MAIN_HAND; + return getEntityMetaData().getSets().getByte(EntityMetaDataFields.PLAYER_SKIN_MAIN_HAND) == 0x01 ? Hands.OFF_HAND : Hands.MAIN_HAND; } @EntityMetaDataFunction(name = "Left shoulder entity data") @Nullable public CompoundTag getLeftShoulderData() { - return this.metaData.getSets().getNBT(EntityMetaDataFields.PLAYER_LEFT_SHOULDER_DATA); + return getEntityMetaData().getSets().getNBT(EntityMetaDataFields.PLAYER_LEFT_SHOULDER_DATA); } @EntityMetaDataFunction(name = "Right shoulder entity data") @Nullable public CompoundTag getRightShoulderData() { - return this.metaData.getSets().getNBT(EntityMetaDataFields.PLAYER_RIGHT_SHOULDER_DATA); + return getEntityMetaData().getSets().getNBT(EntityMetaDataFields.PLAYER_RIGHT_SHOULDER_DATA); } @EntityMetaDataFunction(name = "Name") @@ -100,5 +103,13 @@ public class PlayerEntity extends LivingEntity { public void setName(String name) { this.name = name; } + + public UUID getUUID() { + return this.uuid; + } + + public void setUUID(UUID uuid) { + this.uuid = uuid; + } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/AbstractArrow.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/AbstractArrow.java index 4777c138a..277479ee3 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/AbstractArrow.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/AbstractArrow.java @@ -28,7 +28,7 @@ public abstract class AbstractArrow extends Projectile { } private boolean getAbstractArrowFlag(int bitMask) { - return this.metaData.getSets().getBitMask(EntityMetaDataFields.ABSTRACT_ARROW_FLAGS, bitMask); + return getEntityMetaData().getSets().getBitMask(EntityMetaDataFields.ABSTRACT_ARROW_FLAGS, bitMask); } @EntityMetaDataFunction(name = "Is critical") @@ -43,12 +43,12 @@ public abstract class AbstractArrow extends Projectile { @EntityMetaDataFunction(name = "Piercing level") public byte getPiercingLevel() { - return this.metaData.getSets().getByte(EntityMetaDataFields.ABSTRACT_ARROW_PIERCE_LEVEL); + return getEntityMetaData().getSets().getByte(EntityMetaDataFields.ABSTRACT_ARROW_PIERCE_LEVEL); } @EntityMetaDataFunction(name = "Owner UUID") public UUID getOwnerUUID() { - return this.metaData.getSets().getUUID(EntityMetaDataFields.ABSTRACT_ARROW_OWNER_UUID); + return getEntityMetaData().getSets().getUUID(EntityMetaDataFields.ABSTRACT_ARROW_OWNER_UUID); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/Arrow.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/Arrow.java index 0d8989f6f..30687887a 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/Arrow.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/Arrow.java @@ -27,6 +27,6 @@ public class Arrow extends AbstractArrow { @EntityMetaDataFunction(name = "Effect color") public int getEffectColor() { - return this.metaData.getSets().getInt(EntityMetaDataFields.ARROW_EFFECT_COLOR); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.ARROW_EFFECT_COLOR); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/Fireball.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/Fireball.java index ec13707f1..b7ca056c7 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/Fireball.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/Fireball.java @@ -31,7 +31,7 @@ public abstract class Fireball extends AbstractHurtingProjectile { @EntityMetaDataFunction(name = "Item") @Nullable private ItemStack getItem() { - ItemStack itemStack = this.metaData.getSets().getItemStack(EntityMetaDataFields.FIREBALL_ITEM); + ItemStack itemStack = getEntityMetaData().getSets().getItemStack(EntityMetaDataFields.FIREBALL_ITEM); if (itemStack == null) { return getDefaultItem(); } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/FireworkRocketEntity.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/FireworkRocketEntity.java index f9f2493ba..d29312c6c 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/FireworkRocketEntity.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/FireworkRocketEntity.java @@ -30,17 +30,17 @@ public class FireworkRocketEntity extends Projectile { @EntityMetaDataFunction(name = "Item") @Nullable public ItemStack getFireworkItem() { - return getMetaData().getSets().getItemStack(EntityMetaDataFields.FIREWORK_ROCKET_ENTITY_ITEM); + return getEntityMetaData().getSets().getItemStack(EntityMetaDataFields.FIREWORK_ROCKET_ENTITY_ITEM); } @EntityMetaDataFunction(name = "Attached entity id") - public int getAttachedEntity() { - return getMetaData().getSets().getInt(EntityMetaDataFields.FIREWORK_ROCKET_ENTITY_ATTACHED_ENTITY); + public Integer getAttachedEntity() { + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.FIREWORK_ROCKET_ENTITY_ATTACHED_ENTITY); } @EntityMetaDataFunction(name = "Shot at angle") public boolean isShotAtAngle() { - return getMetaData().getSets().getBoolean(EntityMetaDataFields.FIREWORK_ROCKET_ENTITY_SHOT_AT_ANGLE); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.FIREWORK_ROCKET_ENTITY_SHOT_AT_ANGLE); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/FishingHook.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/FishingHook.java index d1455220e..0fd912b62 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/FishingHook.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/FishingHook.java @@ -27,11 +27,11 @@ public class FishingHook extends Projectile { @EntityMetaDataFunction(name = "Hooked entity id") public int getHookedEntityId() { - return getMetaData().getSets().getInt(EntityMetaDataFields.FISHING_HOOK_HOOKED_ENTITY); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.FISHING_HOOK_HOOKED_ENTITY); } @EntityMetaDataFunction(name = "Is catchable") public boolean isCatchable() { - return getMetaData().getSets().getBoolean(EntityMetaDataFields.FISHING_HOOK_CATCHABLE); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.FISHING_HOOK_CATCHABLE); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/ThrowableItemProjectile.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/ThrowableItemProjectile.java index cdea2db39..3b662fca2 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/ThrowableItemProjectile.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/ThrowableItemProjectile.java @@ -28,7 +28,7 @@ public abstract class ThrowableItemProjectile extends ThrowableProjectile { @EntityMetaDataFunction(name = "Item") public ItemStack getItem() { - ItemStack itemStack = this.metaData.getSets().getItemStack(EntityMetaDataFields.THROWABLE_ITEM_PROJECTILE_ITEM); + ItemStack itemStack = getEntityMetaData().getSets().getItemStack(EntityMetaDataFields.THROWABLE_ITEM_PROJECTILE_ITEM); if (itemStack == null) { return getDefaultItem(); } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/ThrownEyeOfEnder.kt b/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/ThrownEyeOfEnder.kt index ace080d1d..5a8f9f80f 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/ThrownEyeOfEnder.kt +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/ThrownEyeOfEnder.kt @@ -25,7 +25,7 @@ class ThrownEyeOfEnder(connection: Connection, location: Vec3, rotation: EntityR @get:EntityMetaDataFunction(name = "Item") val item: ItemStack - get() = metaData.sets.getItemStack(EntityMetaDataFields.THROWN_EYE_OF_ENDER_ITEM) ?: getDefaultItem() + get() = entityMetaData.sets.getItemStack(EntityMetaDataFields.THROWN_EYE_OF_ENDER_ITEM) ?: getDefaultItem() fun getDefaultItem(): ItemStack { return ItemStack(connection.mapping.itemRegistry.get(DEFAULT_ITEM)!!, connection.version) diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/ThrownPotion.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/ThrownPotion.java index 7fda9a542..f4f823768 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/ThrownPotion.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/ThrownPotion.java @@ -35,7 +35,7 @@ public class ThrownPotion extends ThrowableItemProjectile { if (this.versionId > V_20W09A) { return super.getItem(); } - ItemStack itemStack = this.metaData.getSets().getItemStack(EntityMetaDataFields.THROWN_POTION_ITEM); + ItemStack itemStack = getEntityMetaData().getSets().getItemStack(EntityMetaDataFields.THROWN_POTION_ITEM); if (itemStack == null) { return getDefaultItem(); } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/ThrownTrident.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/ThrownTrident.java index abdafbbaf..ca8642174 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/ThrownTrident.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/ThrownTrident.java @@ -27,12 +27,12 @@ public class ThrownTrident extends AbstractArrow { @EntityMetaDataFunction(name = "Loyalty level") public byte getLoyaltyLevel() { - return getMetaData().getSets().getByte(EntityMetaDataFields.THROWN_TRIDENT_LOYALTY_LEVEL); + return getEntityMetaData().getSets().getByte(EntityMetaDataFields.THROWN_TRIDENT_LOYALTY_LEVEL); } @EntityMetaDataFunction(name = "Is enchanted") public boolean isEnchanted() { - return getMetaData().getSets().getBoolean(EntityMetaDataFields.THROWN_TRIDENT_FOIL); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.THROWN_TRIDENT_FOIL); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/WitherSkull.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/WitherSkull.java index 47c587ec4..53f338865 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/WitherSkull.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/projectile/WitherSkull.java @@ -27,7 +27,7 @@ public class WitherSkull extends AbstractHurtingProjectile { @EntityMetaDataFunction(name = "Is dangerous") public boolean isDangerous() { - return getMetaData().getSets().getBoolean(EntityMetaDataFields.WITHER_SKULL_DANGEROUS); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.WITHER_SKULL_DANGEROUS); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/vehicle/AbstractMinecart.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/vehicle/AbstractMinecart.java index 0dfb4b464..e5b0d56df 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/vehicle/AbstractMinecart.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/vehicle/AbstractMinecart.java @@ -28,31 +28,31 @@ public abstract class AbstractMinecart extends Entity { @EntityMetaDataFunction(name = "Shaking power") public int getShakingPower() { - return this.metaData.getSets().getInt(EntityMetaDataFields.MINECART_HURT); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.MINECART_HURT); } @EntityMetaDataFunction(name = "Shaking direction") public int getShakingDirection() { - return this.metaData.getSets().getInt(EntityMetaDataFields.MINECART_HURT_DIRECTION); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.MINECART_HURT_DIRECTION); } @EntityMetaDataFunction(name = "Shaking multiplier") public float getShakingMultiplier() { - return this.metaData.getSets().getInt(EntityMetaDataFields.MINECART_DAMAGE_TAKEN); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.MINECART_DAMAGE_TAKEN); } @EntityMetaDataFunction(name = "Block id") public int getBlockId() { - return this.metaData.getSets().getInt(EntityMetaDataFields.MINECART_BLOCK_ID); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.MINECART_BLOCK_ID); } @EntityMetaDataFunction(name = "Block Y offset") public int getBlockYOffset() { - return this.metaData.getSets().getInt(EntityMetaDataFields.MINECART_BLOCK_Y_OFFSET); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.MINECART_BLOCK_Y_OFFSET); } @EntityMetaDataFunction(name = "Is showing block") public boolean isShowingBlock() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.MINECART_SHOW_BLOCK); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.MINECART_SHOW_BLOCK); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/vehicle/Boat.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/vehicle/Boat.java index 9e5c898ba..641cd500a 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/vehicle/Boat.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/vehicle/Boat.java @@ -28,37 +28,37 @@ public class Boat extends Entity { @EntityMetaDataFunction(name = "Time since last hit") public int getTimeSinceLastHit() { - return getMetaData().getSets().getInt(EntityMetaDataFields.BOAT_HURT); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.BOAT_HURT); } @EntityMetaDataFunction(name = "Forward direction") public int getForwardDirection() { - return getMetaData().getSets().getInt(EntityMetaDataFields.BOAT_HURT_DIRECTION); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.BOAT_HURT_DIRECTION); } @EntityMetaDataFunction(name = "Damage taken") public float getDamageTaken() { - return getMetaData().getSets().getFloat(EntityMetaDataFields.BOAT_DAMAGE_TAKEN); + return getEntityMetaData().getSets().getFloat(EntityMetaDataFields.BOAT_DAMAGE_TAKEN); } @EntityMetaDataFunction(name = "Material") public BoatMaterials getMaterial() { - return BoatMaterials.byId(getMetaData().getSets().getInt(EntityMetaDataFields.BOAT_MATERIAL)); + return BoatMaterials.byId(getEntityMetaData().getSets().getInt(EntityMetaDataFields.BOAT_MATERIAL)); } @EntityMetaDataFunction(name = "Left paddle turning") public boolean isLeftPaddleTurning() { - return getMetaData().getSets().getBoolean(EntityMetaDataFields.BOAT_PADDLE_LEFT); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.BOAT_PADDLE_LEFT); } @EntityMetaDataFunction(name = "Right paddle turning") public boolean isRightPaddleTurning() { - return getMetaData().getSets().getBoolean(EntityMetaDataFields.BOAT_PADDLE_RIGHT); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.BOAT_PADDLE_RIGHT); } @EntityMetaDataFunction(name = "Splash timer") public int getSplashTimer() { - return getMetaData().getSets().getInt(EntityMetaDataFields.BOAT_BUBBLE_TIME); + return getEntityMetaData().getSets().getInt(EntityMetaDataFields.BOAT_BUBBLE_TIME); } public enum BoatMaterials { diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/vehicle/MinecartCommandBlock.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/vehicle/MinecartCommandBlock.java index d29abee09..14bb384f4 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/vehicle/MinecartCommandBlock.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/vehicle/MinecartCommandBlock.java @@ -28,11 +28,11 @@ public class MinecartCommandBlock extends AbstractMinecart { @EntityMetaDataFunction(name = "Command") public String getCommand() { - return this.metaData.getSets().getString(EntityMetaDataFields.MINECART_COMMAND_BLOCK_COMMAND); + return getEntityMetaData().getSets().getString(EntityMetaDataFields.MINECART_COMMAND_BLOCK_COMMAND); } @EntityMetaDataFunction(name = "Last output") public ChatComponent getLastOutput() { - return this.metaData.getSets().getChatComponent(EntityMetaDataFields.MINECART_COMMAND_BLOCK_LAST_OUTPUT); + return getEntityMetaData().getSets().getChatComponent(EntityMetaDataFields.MINECART_COMMAND_BLOCK_LAST_OUTPUT); } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/vehicle/MinecartFurnace.java b/src/main/java/de/bixilon/minosoft/data/entities/entities/vehicle/MinecartFurnace.java index fcec580e7..6c89fae64 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/vehicle/MinecartFurnace.java +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/vehicle/MinecartFurnace.java @@ -27,6 +27,6 @@ public class MinecartFurnace extends AbstractMinecartContainer { @EntityMetaDataFunction(name = "Has fuel") public boolean hasFuel() { - return this.metaData.getSets().getBoolean(EntityMetaDataFields.MINECART_FURNACE_HAS_FUEL); + return getEntityMetaData().getSets().getBoolean(EntityMetaDataFields.MINECART_FURNACE_HAS_FUEL); } } diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/blocks/BlockState.kt b/src/main/java/de/bixilon/minosoft/data/mappings/blocks/BlockState.kt index f73060d4e..a32078a4b 100644 --- a/src/main/java/de/bixilon/minosoft/data/mappings/blocks/BlockState.kt +++ b/src/main/java/de/bixilon/minosoft/data/mappings/blocks/BlockState.kt @@ -38,7 +38,7 @@ data class BlockState( val renders: MutableList = mutableListOf(), val tintColor: RGBColor? = null, val material: Material, - val collision: VoxelShape, + val collisionShape: VoxelShape, ) { override fun hashCode(): Int { @@ -181,7 +181,7 @@ data class BlockState( renders = renders, tintColor = tintColor, material = material, - collision = collision + collisionShape = collision ) } diff --git a/src/main/java/de/bixilon/minosoft/data/player/Player.kt b/src/main/java/de/bixilon/minosoft/data/player/Player.kt index 7ba9c27c2..035b9b61c 100644 --- a/src/main/java/de/bixilon/minosoft/data/player/Player.kt +++ b/src/main/java/de/bixilon/minosoft/data/player/Player.kt @@ -19,7 +19,6 @@ import de.bixilon.minosoft.data.entities.entities.player.PlayerEntity import de.bixilon.minosoft.gui.rendering.util.VecUtil import de.bixilon.minosoft.protocol.network.Connection import glm_.vec3.Vec3i -import java.util.* class Player( val account: Account, @@ -29,8 +28,7 @@ class Player( val experienceCondition = PlayerExperienceCondition() val inventoryManager = PlayerInventoryManager() var spawnPosition: Vec3i = VecUtil.EMPTY_VEC3I - val entity: PlayerEntity = PlayerEntity(connection, VecUtil.EMPTY_VEC3, EntityRotation(0.0, 0.0), account.username, null, Gamemodes.SPECTATOR) - var playerUUID: UUID = account.uuid + val entity: PlayerEntity = PlayerEntity(connection, VecUtil.EMPTY_VEC3, EntityRotation(0.0, 0.0), account.username, account.uuid, null, Gamemodes.SPECTATOR) @Deprecated(message = "Will be replaced with some kind of teleport manager, ...") var isSpawnConfirmed = false diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/chunk/models/AABB.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/chunk/models/AABB.kt index 00b1eb976..93339fac7 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/chunk/models/AABB.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/chunk/models/AABB.kt @@ -83,7 +83,7 @@ class AABB { return Axes.choose(axis, max) } - fun extend(vec3: Vec3): AABB { + infix fun extend(vec3: Vec3): AABB { val newMin = Vec3(min) val newMax = Vec3(max) diff --git a/src/main/java/de/bixilon/minosoft/modding/event/events/EntityEquipmentChangeEvent.java b/src/main/java/de/bixilon/minosoft/modding/event/events/EntityEquipmentChangeEvent.java index dd778a78a..ca7a35ef3 100644 --- a/src/main/java/de/bixilon/minosoft/modding/event/events/EntityEquipmentChangeEvent.java +++ b/src/main/java/de/bixilon/minosoft/modding/event/events/EntityEquipmentChangeEvent.java @@ -14,6 +14,7 @@ package de.bixilon.minosoft.modding.event.events; import de.bixilon.minosoft.data.entities.entities.Entity; +import de.bixilon.minosoft.data.inventory.InventorySlots; import de.bixilon.minosoft.data.inventory.ItemStack; import de.bixilon.minosoft.protocol.network.Connection; import de.bixilon.minosoft.protocol.packets.clientbound.play.PacketEntityEquipment; @@ -22,9 +23,9 @@ import java.util.HashMap; public class EntityEquipmentChangeEvent extends ConnectionEvent { private final int entityId; - private final HashMap slots; + private final HashMap slots; - public EntityEquipmentChangeEvent(Connection connection, int entityId, HashMap slots) { + public EntityEquipmentChangeEvent(Connection connection, int entityId, HashMap slots) { super(connection); this.entityId = entityId; this.slots = slots; @@ -44,7 +45,7 @@ public class EntityEquipmentChangeEvent extends ConnectionEvent { return this.entityId; } - public HashMap getSlots() { + public HashMap getSlots() { return this.slots; } } diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/login/PacketLoginSuccess.java b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/login/PacketLoginSuccess.java index 783f34338..fa6959b50 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/login/PacketLoginSuccess.java +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/login/PacketLoginSuccess.java @@ -41,7 +41,7 @@ public class PacketLoginSuccess extends ClientboundPacket { public void handle(Connection connection) { connection.setConnectionState(ConnectionStates.PLAY); - connection.getPlayer().setPlayerUUID(getUUID()); + connection.getPlayer().getEntity().setUUID(getUUID()); connection.getPlayer().getEntity().setName(getPlayerName()); } diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityEquipment.java b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityEquipment.java index bdad262d1..d45eaca3f 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityEquipment.java +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityEquipment.java @@ -14,6 +14,7 @@ package de.bixilon.minosoft.protocol.packets.clientbound.play; import de.bixilon.minosoft.data.entities.entities.Entity; +import de.bixilon.minosoft.data.inventory.InventorySlots; import de.bixilon.minosoft.data.inventory.ItemStack; import de.bixilon.minosoft.modding.event.events.EntityEquipmentChangeEvent; import de.bixilon.minosoft.protocol.network.Connection; @@ -28,17 +29,17 @@ import static de.bixilon.minosoft.protocol.protocol.ProtocolVersions.V_15W31A; import static de.bixilon.minosoft.protocol.protocol.ProtocolVersions.V_1_16_PRE7; public class PacketEntityEquipment extends ClientboundPacket { - private final HashMap slots = new HashMap<>(); + private final HashMap slots = new HashMap<>(); private final int entityId; public PacketEntityEquipment(InByteBuffer buffer) { this.entityId = buffer.readEntityId(); if (buffer.getVersionId() < V_15W31A) { - this.slots.put((int) buffer.readShort(), buffer.readItemStack()); + this.slots.put(buffer.getConnection().getMapping().getEquipmentSlotRegistry().get(buffer.readShort()), buffer.readItemStack()); return; } if (buffer.getVersionId() < V_1_16_PRE7) { - this.slots.put(buffer.readVarInt(), buffer.readItemStack()); + this.slots.put(buffer.getConnection().getMapping().getEquipmentSlotRegistry().get(buffer.readVarInt()), buffer.readItemStack()); return; } boolean slotAvailable = true; @@ -48,7 +49,7 @@ public class PacketEntityEquipment extends ClientboundPacket { slotAvailable = false; } slotId &= 0x7F; - this.slots.put(slotId, buffer.readItemStack()); + this.slots.put(buffer.getConnection().getMapping().getEquipmentSlotRegistry().get(slotId), buffer.readItemStack()); } } @@ -61,13 +62,14 @@ public class PacketEntityEquipment extends ClientboundPacket { // thanks mojang return; } - entity.setEquipment(getSlots()); + entity.getEquipment().clear(); + entity.getEquipment().putAll(getSlots()); } @Override public void log() { if (this.slots.size() == 1) { - Map.Entry set = this.slots.entrySet().iterator().next(); + Map.Entry set = this.slots.entrySet().iterator().next(); if (set.getValue() == null) { Log.protocol(String.format("[IN] Entity equipment changed (entityId=%d, slot=%s): AIR", this.entityId, set.getKey())); return; @@ -82,7 +84,7 @@ public class PacketEntityEquipment extends ClientboundPacket { return this.entityId; } - public HashMap getSlots() { + public HashMap getSlots() { return this.slots; } } diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityMetadata.kt b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityMetadata.kt index 07bd5ac31..56df7d2bc 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityMetadata.kt +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityMetadata.kt @@ -34,7 +34,7 @@ class PacketEntityMetadata() : ClientboundPacket() { override fun handle(connection: Connection) { val entity = connection.world.getEntity(entityId) ?: return - entity.metaData = entityData + entity.entityMetaData = entityData connection.fireEvent(EntityMetaDataChangeEvent(connection, entity)) if (entity === connection.player.entity) { diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityMovement.java b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityMovement.java index 34c75e7d6..eae1503d5 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityMovement.java +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityMovement.java @@ -47,7 +47,7 @@ public class PacketEntityMovement extends ClientboundPacket { // thanks mojang return; } - entity.setLocation(getRelativePosition()); + entity.forceMove(getRelativePosition()); } @Override diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityMovementAndRotation.java b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityMovementAndRotation.java index e4b62672e..f8e55c7c8 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityMovementAndRotation.java +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityMovementAndRotation.java @@ -52,7 +52,7 @@ public class PacketEntityMovementAndRotation extends ClientboundPacket { // thanks mojang return; } - entity.setLocation(getRelativePosition()); + entity.setPosition(getRelativePosition()); entity.setRotation(getYaw(), getPitch()); } diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityTeleport.java b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityTeleport.java index a92c2fb5d..5d19a4173 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityTeleport.java +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityTeleport.java @@ -53,7 +53,7 @@ public class PacketEntityTeleport extends ClientboundPacket { // thanks mojang return; } - entity.setLocation(getRelativePosition()); + entity.forceMove(getRelativePosition()); entity.setRotation(getYaw(), getPitch()); } diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketJoinGame.kt b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketJoinGame.kt index c2d8606a7..cae857dd2 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketJoinGame.kt +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketJoinGame.kt @@ -143,7 +143,7 @@ class PacketJoinGame(buffer: InByteBuffer) : ClientboundPacket() { connection.mapping.dimensionRegistry.setData(dimensions) connection.world.dimension = dimension - connection.world.addEntity(entityId, connection.player.playerUUID, playerEntity) + connection.world.addEntity(entityId, connection.player.entity.uuid, playerEntity) connection.world.hashedSeed = hashedSeed connection.world.biomeAccessor = if (connection.version.versionId < ProtocolVersions.V_19W36A) { BlockBiomeAccessor(connection.world) diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketPlayerPositionAndRotation.java b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketPlayerPositionAndRotation.java index cfe56e046..b8881af27 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketPlayerPositionAndRotation.java +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketPlayerPositionAndRotation.java @@ -53,7 +53,7 @@ public class PacketPlayerPositionAndRotation extends ClientboundPacket { @Override public void handle(Connection connection) { // ToDo: GUI should do this - connection.getPlayer().getEntity().setLocation(getPosition()); + connection.getPlayer().getEntity().setPosition(getPosition()); if (connection.getVersion().getVersionId() >= V_15W42A) { connection.sendPacket(new PacketConfirmTeleport(getTeleportId())); } else { diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketSpawnMob.java b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketSpawnMob.java index 6882fd1bb..f4f97dc75 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketSpawnMob.java +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketSpawnMob.java @@ -13,6 +13,7 @@ package de.bixilon.minosoft.protocol.packets.clientbound.play; +import de.bixilon.minosoft.config.StaticConfiguration; import de.bixilon.minosoft.data.entities.EntityRotation; import de.bixilon.minosoft.data.entities.Velocity; import de.bixilon.minosoft.data.entities.entities.Entity; @@ -70,7 +71,10 @@ public class PacketSpawnMob extends ClientboundPacket { this.entity = typeClass.getConstructor(Connection.class, Vec3.class, EntityRotation.class).newInstance(buffer.getConnection(), position, rotation); if (metaData != null) { - this.entity.setMetaData(metaData); + this.entity.setEntityMetaData(metaData); + if (StaticConfiguration.VERBOSE_ENTITY_META_DATA_LOGGING) { + Log.verbose(String.format("Metadata of entity %s (entityId=%d): %s", this.entity.toString(), this.entityId, this.entity.getEntityMetaDataAsString())); + } } } diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketSpawnPlayer.java b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketSpawnPlayer.java index 0350f8967..b28c7f3ec 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketSpawnPlayer.java +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketSpawnPlayer.java @@ -13,6 +13,7 @@ package de.bixilon.minosoft.protocol.packets.clientbound.play; +import de.bixilon.minosoft.config.StaticConfiguration; import de.bixilon.minosoft.data.Gamemodes; import de.bixilon.minosoft.data.PlayerPropertyData; import de.bixilon.minosoft.data.entities.EntityRotation; @@ -66,9 +67,12 @@ public class PacketSpawnPlayer extends ClientboundPacket { if (buffer.getVersionId() < V_19W34A) { metaData = buffer.readMetaData(); } - this.entity = new PlayerEntity(buffer.getConnection(), position, new EntityRotation(yaw, pitch, 0), name, properties, Gamemodes.CREATIVE); // ToDo + this.entity = new PlayerEntity(buffer.getConnection(), position, new EntityRotation(yaw, pitch, 0), name, this.entityUUID, properties, Gamemodes.CREATIVE); // ToDo if (metaData != null) { - this.entity.setMetaData(metaData); + this.entity.setEntityMetaData(metaData); + if (StaticConfiguration.VERBOSE_ENTITY_META_DATA_LOGGING) { + Log.verbose(String.format("Metadata of entity %s (entityId=%d): %s", this.entity.toString(), this.entityId, this.entity.getEntityMetaDataAsString())); + } } } diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/serverbound/play/PacketInteractEntity.java b/src/main/java/de/bixilon/minosoft/protocol/packets/serverbound/play/PacketInteractEntity.java index c35393bed..055aa13e4 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/serverbound/play/PacketInteractEntity.java +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/serverbound/play/PacketInteractEntity.java @@ -31,22 +31,11 @@ public class PacketInteractEntity implements ServerboundPacket { private EntityInteractionClicks click; private boolean sneaking; - public PacketInteractEntity(Entity entity, EntityInteractionClicks click) { - this.entityId = entity.getEntityId(); + public PacketInteractEntity(Connection connection, Entity entity, EntityInteractionClicks click) { + this.entityId = connection.getWorld().getEntityIdMap().inverse().get(entity); this.click = click; } - public PacketInteractEntity(int entityId, EntityInteractionClicks click) { - this.entityId = entityId; - this.click = click; - } - - public PacketInteractEntity(int entityId, EntityInteractionClicks click, Vec3 position) { - this.entityId = entityId; - this.click = click; - this.position = position; - } - public PacketInteractEntity(int entityId, EntityInteractionClicks click, Vec3 position, Hands hand) { this.entityId = entityId; this.click = click; diff --git a/src/main/java/de/bixilon/minosoft/protocol/protocol/PacketSender.java b/src/main/java/de/bixilon/minosoft/protocol/protocol/PacketSender.java index a1e51c2ba..84450e72c 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/protocol/PacketSender.java +++ b/src/main/java/de/bixilon/minosoft/protocol/protocol/PacketSender.java @@ -71,11 +71,11 @@ public class PacketSender { } public void sendAction(PacketEntityAction.EntityActions action) { - this.connection.sendPacket(new PacketEntityAction(this.connection.getPlayer().getEntity().getEntityId(), action)); + this.connection.sendPacket(new PacketEntityAction(this.connection.getWorld().getEntityIdMap().inverse().get(this.connection.getPlayer().getEntity()), action)); } public void jumpWithHorse(int jumpBoost) { - this.connection.sendPacket(new PacketEntityAction(this.connection.getPlayer().getEntity().getEntityId(), PacketEntityAction.EntityActions.START_HORSE_JUMP, jumpBoost)); + this.connection.sendPacket(new PacketEntityAction(this.connection.getWorld().getEntityIdMap().inverse().get(this.connection.getPlayer().getEntity()), PacketEntityAction.EntityActions.START_HORSE_JUMP, jumpBoost)); } public void dropItem() { @@ -124,7 +124,7 @@ public class PacketSender { public void setLocation(Vec3 position, EntityRotation rotation, boolean onGround) { this.connection.sendPacket(new PacketPlayerPositionAndRotationSending(position, rotation, onGround)); - this.connection.getPlayer().getEntity().setLocation(position); + this.connection.getPlayer().getEntity().setPosition(position); this.connection.getPlayer().getEntity().setRotation(rotation); } diff --git a/src/main/java/de/bixilon/minosoft/terminal/commands/commands/CommandEntities.java b/src/main/java/de/bixilon/minosoft/terminal/commands/commands/CommandEntities.java index a62506712..1fcd796fc 100644 --- a/src/main/java/de/bixilon/minosoft/terminal/commands/commands/CommandEntities.java +++ b/src/main/java/de/bixilon/minosoft/terminal/commands/commands/CommandEntities.java @@ -33,7 +33,7 @@ public class CommandEntities extends Command { ArrayList tableData = new ArrayList<>(); for (var entry : connection.getWorld().getEntityIdMap().entrySet()) { - tableData.add(new Object[]{entry.getKey(), entry.getValue().getUUID(), entry.getValue().getEntityInformation(), entry.getValue().getEquipment(), entry.getValue().getPosition(), entry.getValue().getRotation()}); + tableData.add(new Object[]{entry.getKey(), connection.getWorld().getEntityIdMap().inverse().get(entry.getValue()), entry.getValue().getEntityInformation(), entry.getValue().getEquipment(), entry.getValue().getPosition(), entry.getValue().getRotation()}); } print(AsciiTable.getTable(new String[]{"ID", "UUID", "TYPE", "EQUIPMENT", "LOCATION", "ROTATION"}, tableData.toArray(new Object[0][0]))); @@ -48,8 +48,8 @@ public class CommandEntities extends Command { } ArrayList tableData = new ArrayList<>(); - tableData.add(new Object[]{"Entity id", entity.getEntityId()}); - tableData.add(new Object[]{"UUID", entity.getUUID()}); + tableData.add(new Object[]{"Entity id", connection.getWorld().getEntityIdMap().inverse().get(entity)}); + tableData.add(new Object[]{"UUID", connection.getWorld().getEntityUUIDMap().inverse().get(entity)}); tableData.add(new Object[]{"Type", entity.getEntityInformation()}); tableData.add(new Object[]{"Class", entity.getClass().getName()}); tableData.add(new Object[]{"Location", entity.getPosition()}); diff --git a/src/main/java/de/bixilon/minosoft/terminal/commands/commands/CommandTabList.java b/src/main/java/de/bixilon/minosoft/terminal/commands/commands/CommandTabList.java index 54c206756..aa259d085 100644 --- a/src/main/java/de/bixilon/minosoft/terminal/commands/commands/CommandTabList.java +++ b/src/main/java/de/bixilon/minosoft/terminal/commands/commands/CommandTabList.java @@ -70,7 +70,7 @@ public class CommandTabList extends Command { for (var entry : connection.getTabList().getPlayerList().entrySet()) { PlayerEntity playerEntity = (PlayerEntity) connection.getWorld().getEntity(entry.getValue().getUUID()); - Integer entityId = playerEntity != null ? playerEntity.getEntityId() : null; + Integer entityId = playerEntity != null ? connection.getWorld().getEntityIdMap().inverse().get(playerEntity) : null; tableData.add(new Object[]{entry.getKey(), entityId, entry.getValue().getName(), entry.getValue().getDisplayName(), entry.getValue().getGamemode(), entry.getValue().getPing() + "ms"}); }