From f1f3885751b93079711529e60ff785b317d2b67a Mon Sep 17 00:00:00 2001 From: Articdive <13535885+Articdive@users.noreply.github.com> Date: Sun, 9 Aug 2020 10:12:44 +0200 Subject: [PATCH] Start Entity abstraction, add some missing entities. --- .../fr/themode/demo/entity/ChickenCreature.java | 2 +- .../java/fr/themode/demo/entity/ZombieCreature.java | 2 +- .../minestom/server/entity/hologram/Hologram.java | 2 +- .../net/minestom/server/entity/type/Animal.java | 4 ++++ .../minestom/server/entity/type/Constructable.java | 4 ++++ .../net/minestom/server/entity/type/Monster.java | 4 ++++ .../net/minestom/server/entity/type/Projectile.java | 4 ++++ .../minestom/server/entity/type/TameableAnimal.java | 4 ++++ .../net/minestom/server/entity/type/Vehicle.java | 4 ++++ .../server/entity/type/{ => ambient}/EntityBat.java | 5 +++-- .../server/entity/type/animal/EntityBee.java | 13 +++++++++++++ .../server/entity/type/animal/EntityCat.java | 13 +++++++++++++ .../entity/type/{ => animal}/EntityChicken.java | 5 +++-- .../server/entity/type/{ => animal}/EntityCow.java | 5 +++-- .../server/entity/type/animal/EntityDolphin.java | 13 +++++++++++++ .../server/entity/type/animal/EntityFox.java | 13 +++++++++++++ .../entity/type/{ => animal}/EntityMooshroom.java | 5 +++-- .../server/entity/type/animal/EntityOcelot.java | 13 +++++++++++++ .../server/entity/type/animal/EntityPanda.java | 13 +++++++++++++ .../server/entity/type/{ => animal}/EntityPig.java | 5 +++-- .../entity/type/{ => animal}/EntityPolarBear.java | 5 +++-- .../entity/type/{ => animal}/EntityRabbit.java | 5 +++-- .../type/{ => decoration}/EntityArmorStand.java | 2 +- .../type/{ => decoration}/EntityItemFrame.java | 2 +- .../entity/type/{ => monster}/EntityBlaze.java | 5 +++-- .../entity/type/{ => monster}/EntityCaveSpider.java | 6 ++++-- .../entity/type/{ => monster}/EntityCreeper.java | 5 +++-- .../entity/type/{ => monster}/EntityEndermite.java | 6 ++++-- .../entity/type/{ => monster}/EntityGhast.java | 6 ++++-- .../entity/type/{ => monster}/EntityGiant.java | 5 +++-- .../entity/type/{ => monster}/EntityGuardian.java | 5 +++-- .../entity/type/{ => monster}/EntityPhantom.java | 5 +++-- .../entity/type/{ => monster}/EntitySilverfish.java | 6 ++++-- .../entity/type/{ => monster}/EntitySlime.java | 5 +++-- .../entity/type/{ => monster}/EntitySpider.java | 6 ++++-- .../entity/type/{ => monster}/EntityWitch.java | 6 ++++-- .../entity/type/{ => monster}/EntityZombie.java | 11 ++++++++--- .../EntityZombifiedPiglin.java} | 11 ++++++++--- .../type/{ => other}/EntityAreaEffectCloud.java | 2 +- .../entity/type/{ => other}/EntityIronGolem.java | 5 +++-- .../entity/type/{ => other}/EntitySnowman.java | 5 +++-- .../type/{ => projectile}/EntityEyeOfEnder.java | 5 +++-- .../entity/type/{ => projectile}/EntityPotion.java | 5 +++-- .../entity/type/{ => vehicle}/EntityBoat.java | 5 +++-- .../server/listener/PlayerVehicleListener.java | 2 +- 45 files changed, 203 insertions(+), 61 deletions(-) create mode 100644 src/main/java/net/minestom/server/entity/type/Animal.java create mode 100644 src/main/java/net/minestom/server/entity/type/Constructable.java create mode 100644 src/main/java/net/minestom/server/entity/type/Monster.java create mode 100644 src/main/java/net/minestom/server/entity/type/Projectile.java create mode 100644 src/main/java/net/minestom/server/entity/type/TameableAnimal.java create mode 100644 src/main/java/net/minestom/server/entity/type/Vehicle.java rename src/main/java/net/minestom/server/entity/type/{ => ambient}/EntityBat.java (89%) create mode 100644 src/main/java/net/minestom/server/entity/type/animal/EntityBee.java create mode 100644 src/main/java/net/minestom/server/entity/type/animal/EntityCat.java rename src/main/java/net/minestom/server/entity/type/{ => animal}/EntityChicken.java (63%) rename src/main/java/net/minestom/server/entity/type/{ => animal}/EntityCow.java (63%) create mode 100644 src/main/java/net/minestom/server/entity/type/animal/EntityDolphin.java create mode 100644 src/main/java/net/minestom/server/entity/type/animal/EntityFox.java rename src/main/java/net/minestom/server/entity/type/{ => animal}/EntityMooshroom.java (90%) create mode 100644 src/main/java/net/minestom/server/entity/type/animal/EntityOcelot.java create mode 100644 src/main/java/net/minestom/server/entity/type/animal/EntityPanda.java rename src/main/java/net/minestom/server/entity/type/{ => animal}/EntityPig.java (89%) rename src/main/java/net/minestom/server/entity/type/{ => animal}/EntityPolarBear.java (87%) rename src/main/java/net/minestom/server/entity/type/{ => animal}/EntityRabbit.java (86%) rename src/main/java/net/minestom/server/entity/type/{ => decoration}/EntityArmorStand.java (99%) rename src/main/java/net/minestom/server/entity/type/{ => decoration}/EntityItemFrame.java (98%) rename src/main/java/net/minestom/server/entity/type/{ => monster}/EntityBlaze.java (84%) rename src/main/java/net/minestom/server/entity/type/{ => monster}/EntityCaveSpider.java (59%) rename src/main/java/net/minestom/server/entity/type/{ => monster}/EntityCreeper.java (92%) rename src/main/java/net/minestom/server/entity/type/{ => monster}/EntityEndermite.java (59%) rename src/main/java/net/minestom/server/entity/type/{ => monster}/EntityGhast.java (85%) rename src/main/java/net/minestom/server/entity/type/{ => monster}/EntityGiant.java (63%) rename src/main/java/net/minestom/server/entity/type/{ => monster}/EntityGuardian.java (90%) rename src/main/java/net/minestom/server/entity/type/{ => monster}/EntityPhantom.java (86%) rename src/main/java/net/minestom/server/entity/type/{ => monster}/EntitySilverfish.java (59%) rename src/main/java/net/minestom/server/entity/type/{ => monster}/EntitySlime.java (87%) rename src/main/java/net/minestom/server/entity/type/{ => monster}/EntitySpider.java (87%) rename src/main/java/net/minestom/server/entity/type/{ => monster}/EntityWitch.java (85%) rename src/main/java/net/minestom/server/entity/type/{ => monster}/EntityZombie.java (85%) rename src/main/java/net/minestom/server/entity/type/{EntityPigZombie.java => monster/EntityZombifiedPiglin.java} (84%) rename src/main/java/net/minestom/server/entity/type/{ => other}/EntityAreaEffectCloud.java (98%) rename src/main/java/net/minestom/server/entity/type/{ => other}/EntityIronGolem.java (86%) rename src/main/java/net/minestom/server/entity/type/{ => other}/EntitySnowman.java (86%) rename src/main/java/net/minestom/server/entity/type/{ => projectile}/EntityEyeOfEnder.java (89%) rename src/main/java/net/minestom/server/entity/type/{ => projectile}/EntityPotion.java (87%) rename src/main/java/net/minestom/server/entity/type/{ => vehicle}/EntityBoat.java (93%) diff --git a/src/main/java/fr/themode/demo/entity/ChickenCreature.java b/src/main/java/fr/themode/demo/entity/ChickenCreature.java index ef737f7ce..759f5bc99 100644 --- a/src/main/java/fr/themode/demo/entity/ChickenCreature.java +++ b/src/main/java/fr/themode/demo/entity/ChickenCreature.java @@ -5,7 +5,7 @@ import net.minestom.server.entity.LivingEntity; import net.minestom.server.entity.ai.goal.MeleeAttackGoal; import net.minestom.server.entity.ai.target.ClosestEntityTarget; import net.minestom.server.entity.damage.DamageType; -import net.minestom.server.entity.type.EntityChicken; +import net.minestom.server.entity.type.animal.EntityChicken; import net.minestom.server.event.entity.EntityAttackEvent; import net.minestom.server.utils.Position; import net.minestom.server.utils.Vector; diff --git a/src/main/java/fr/themode/demo/entity/ZombieCreature.java b/src/main/java/fr/themode/demo/entity/ZombieCreature.java index b3dd7fe83..78889f789 100644 --- a/src/main/java/fr/themode/demo/entity/ZombieCreature.java +++ b/src/main/java/fr/themode/demo/entity/ZombieCreature.java @@ -1,7 +1,7 @@ package fr.themode.demo.entity; import net.minestom.server.entity.ai.goal.RandomLookAroundGoal; -import net.minestom.server.entity.type.EntityZombie; +import net.minestom.server.entity.type.monster.EntityZombie; import net.minestom.server.utils.Position; public class ZombieCreature extends EntityZombie { diff --git a/src/main/java/net/minestom/server/entity/hologram/Hologram.java b/src/main/java/net/minestom/server/entity/hologram/Hologram.java index 652dc0b87..14da946b1 100644 --- a/src/main/java/net/minestom/server/entity/hologram/Hologram.java +++ b/src/main/java/net/minestom/server/entity/hologram/Hologram.java @@ -3,7 +3,7 @@ package net.minestom.server.entity.hologram; import net.minestom.server.Viewable; import net.minestom.server.chat.ColoredText; import net.minestom.server.entity.Player; -import net.minestom.server.entity.type.EntityArmorStand; +import net.minestom.server.entity.type.decoration.EntityArmorStand; import net.minestom.server.instance.Instance; import net.minestom.server.utils.Position; import net.minestom.server.utils.validate.Check; diff --git a/src/main/java/net/minestom/server/entity/type/Animal.java b/src/main/java/net/minestom/server/entity/type/Animal.java new file mode 100644 index 000000000..994abd637 --- /dev/null +++ b/src/main/java/net/minestom/server/entity/type/Animal.java @@ -0,0 +1,4 @@ +package net.minestom.server.entity.type; + +public interface Animal { +} diff --git a/src/main/java/net/minestom/server/entity/type/Constructable.java b/src/main/java/net/minestom/server/entity/type/Constructable.java new file mode 100644 index 000000000..59e4df64e --- /dev/null +++ b/src/main/java/net/minestom/server/entity/type/Constructable.java @@ -0,0 +1,4 @@ +package net.minestom.server.entity.type; + +public interface Constructable { +} diff --git a/src/main/java/net/minestom/server/entity/type/Monster.java b/src/main/java/net/minestom/server/entity/type/Monster.java new file mode 100644 index 000000000..3c6220e28 --- /dev/null +++ b/src/main/java/net/minestom/server/entity/type/Monster.java @@ -0,0 +1,4 @@ +package net.minestom.server.entity.type; + +public interface Monster { +} diff --git a/src/main/java/net/minestom/server/entity/type/Projectile.java b/src/main/java/net/minestom/server/entity/type/Projectile.java new file mode 100644 index 000000000..a211ec296 --- /dev/null +++ b/src/main/java/net/minestom/server/entity/type/Projectile.java @@ -0,0 +1,4 @@ +package net.minestom.server.entity.type; + +public interface Projectile { +} diff --git a/src/main/java/net/minestom/server/entity/type/TameableAnimal.java b/src/main/java/net/minestom/server/entity/type/TameableAnimal.java new file mode 100644 index 000000000..62bec4516 --- /dev/null +++ b/src/main/java/net/minestom/server/entity/type/TameableAnimal.java @@ -0,0 +1,4 @@ +package net.minestom.server.entity.type; + +public interface TameableAnimal extends Animal { +} diff --git a/src/main/java/net/minestom/server/entity/type/Vehicle.java b/src/main/java/net/minestom/server/entity/type/Vehicle.java new file mode 100644 index 000000000..00f5cca78 --- /dev/null +++ b/src/main/java/net/minestom/server/entity/type/Vehicle.java @@ -0,0 +1,4 @@ +package net.minestom.server.entity.type; + +public interface Vehicle { +} diff --git a/src/main/java/net/minestom/server/entity/type/EntityBat.java b/src/main/java/net/minestom/server/entity/type/ambient/EntityBat.java similarity index 89% rename from src/main/java/net/minestom/server/entity/type/EntityBat.java rename to src/main/java/net/minestom/server/entity/type/ambient/EntityBat.java index 7dce1bb10..7ad26edbc 100644 --- a/src/main/java/net/minestom/server/entity/type/EntityBat.java +++ b/src/main/java/net/minestom/server/entity/type/ambient/EntityBat.java @@ -1,13 +1,14 @@ -package net.minestom.server.entity.type; +package net.minestom.server.entity.type.ambient; import net.minestom.server.entity.EntityCreature; import net.minestom.server.entity.EntityType; +import net.minestom.server.entity.type.Animal; import net.minestom.server.network.packet.PacketWriter; import net.minestom.server.utils.Position; import java.util.function.Consumer; -public class EntityBat extends EntityCreature { +public class EntityBat extends EntityCreature implements Animal { private boolean hanging; diff --git a/src/main/java/net/minestom/server/entity/type/animal/EntityBee.java b/src/main/java/net/minestom/server/entity/type/animal/EntityBee.java new file mode 100644 index 000000000..6a8be079f --- /dev/null +++ b/src/main/java/net/minestom/server/entity/type/animal/EntityBee.java @@ -0,0 +1,13 @@ +package net.minestom.server.entity.type.animal; + +import net.minestom.server.entity.EntityCreature; +import net.minestom.server.entity.EntityType; +import net.minestom.server.entity.type.Animal; +import net.minestom.server.utils.Position; + +public class EntityBee extends EntityCreature implements Animal { + public EntityBee(Position spawnPosition) { + super(EntityType.BEE, spawnPosition); + setBoundingBox(0.7f,0.6f,0.7f); + } +} diff --git a/src/main/java/net/minestom/server/entity/type/animal/EntityCat.java b/src/main/java/net/minestom/server/entity/type/animal/EntityCat.java new file mode 100644 index 000000000..4fd48e24e --- /dev/null +++ b/src/main/java/net/minestom/server/entity/type/animal/EntityCat.java @@ -0,0 +1,13 @@ +package net.minestom.server.entity.type.animal; + +import net.minestom.server.entity.EntityCreature; +import net.minestom.server.entity.EntityType; +import net.minestom.server.entity.type.TameableAnimal; +import net.minestom.server.utils.Position; + +public class EntityCat extends EntityCreature implements TameableAnimal { + public EntityCat(Position spawnPosition) { + super(EntityType.CAT, spawnPosition); + setBoundingBox(0.6f, 0.7f, 0.6f); + } +} diff --git a/src/main/java/net/minestom/server/entity/type/EntityChicken.java b/src/main/java/net/minestom/server/entity/type/animal/EntityChicken.java similarity index 63% rename from src/main/java/net/minestom/server/entity/type/EntityChicken.java rename to src/main/java/net/minestom/server/entity/type/animal/EntityChicken.java index 009e4aaa7..85186ff86 100644 --- a/src/main/java/net/minestom/server/entity/type/EntityChicken.java +++ b/src/main/java/net/minestom/server/entity/type/animal/EntityChicken.java @@ -1,10 +1,11 @@ -package net.minestom.server.entity.type; +package net.minestom.server.entity.type.animal; import net.minestom.server.entity.EntityCreature; import net.minestom.server.entity.EntityType; +import net.minestom.server.entity.type.Animal; import net.minestom.server.utils.Position; -public class EntityChicken extends EntityCreature { +public class EntityChicken extends EntityCreature implements Animal { public EntityChicken(Position spawnPosition) { super(EntityType.CHICKEN, spawnPosition); setBoundingBox(0.4f, 0.7f, 0.4f); diff --git a/src/main/java/net/minestom/server/entity/type/EntityCow.java b/src/main/java/net/minestom/server/entity/type/animal/EntityCow.java similarity index 63% rename from src/main/java/net/minestom/server/entity/type/EntityCow.java rename to src/main/java/net/minestom/server/entity/type/animal/EntityCow.java index a77449f45..580f915e6 100644 --- a/src/main/java/net/minestom/server/entity/type/EntityCow.java +++ b/src/main/java/net/minestom/server/entity/type/animal/EntityCow.java @@ -1,10 +1,11 @@ -package net.minestom.server.entity.type; +package net.minestom.server.entity.type.animal; import net.minestom.server.entity.EntityCreature; import net.minestom.server.entity.EntityType; +import net.minestom.server.entity.type.Animal; import net.minestom.server.utils.Position; -public class EntityCow extends EntityCreature { +public class EntityCow extends EntityCreature implements Animal { public EntityCow(Position spawnPosition) { super(EntityType.COW, spawnPosition); setBoundingBox(0.9f, 1.4f, 0.9f); diff --git a/src/main/java/net/minestom/server/entity/type/animal/EntityDolphin.java b/src/main/java/net/minestom/server/entity/type/animal/EntityDolphin.java new file mode 100644 index 000000000..aa2011c6b --- /dev/null +++ b/src/main/java/net/minestom/server/entity/type/animal/EntityDolphin.java @@ -0,0 +1,13 @@ +package net.minestom.server.entity.type.animal; + +import net.minestom.server.entity.EntityCreature; +import net.minestom.server.entity.EntityType; +import net.minestom.server.entity.type.Animal; +import net.minestom.server.utils.Position; + +public class EntityDolphin extends EntityCreature implements Animal { + public EntityDolphin(Position spawnPosition) { + super(EntityType.DOLPHIN, spawnPosition); + setBoundingBox(0.6f,0.6f,0.9f); + } +} diff --git a/src/main/java/net/minestom/server/entity/type/animal/EntityFox.java b/src/main/java/net/minestom/server/entity/type/animal/EntityFox.java new file mode 100644 index 000000000..86323ef25 --- /dev/null +++ b/src/main/java/net/minestom/server/entity/type/animal/EntityFox.java @@ -0,0 +1,13 @@ +package net.minestom.server.entity.type.animal; + +import net.minestom.server.entity.EntityCreature; +import net.minestom.server.entity.EntityType; +import net.minestom.server.entity.type.Animal; +import net.minestom.server.utils.Position; + +public class EntityFox extends EntityCreature implements Animal { + public EntityFox(Position spawnPosition) { + super(EntityType.FOX, spawnPosition); + setBoundingBox(0.6f, 0.7f, 0.6f); + } +} diff --git a/src/main/java/net/minestom/server/entity/type/EntityMooshroom.java b/src/main/java/net/minestom/server/entity/type/animal/EntityMooshroom.java similarity index 90% rename from src/main/java/net/minestom/server/entity/type/EntityMooshroom.java rename to src/main/java/net/minestom/server/entity/type/animal/EntityMooshroom.java index 1e978776b..0d2feb7ba 100644 --- a/src/main/java/net/minestom/server/entity/type/EntityMooshroom.java +++ b/src/main/java/net/minestom/server/entity/type/animal/EntityMooshroom.java @@ -1,13 +1,14 @@ -package net.minestom.server.entity.type; +package net.minestom.server.entity.type.animal; import net.minestom.server.entity.EntityCreature; import net.minestom.server.entity.EntityType; +import net.minestom.server.entity.type.Animal; import net.minestom.server.network.packet.PacketWriter; import net.minestom.server.utils.Position; import java.util.function.Consumer; -public class EntityMooshroom extends EntityCreature { +public class EntityMooshroom extends EntityCreature implements Animal { private MooshroomType mooshroomType; diff --git a/src/main/java/net/minestom/server/entity/type/animal/EntityOcelot.java b/src/main/java/net/minestom/server/entity/type/animal/EntityOcelot.java new file mode 100644 index 000000000..3b69f5522 --- /dev/null +++ b/src/main/java/net/minestom/server/entity/type/animal/EntityOcelot.java @@ -0,0 +1,13 @@ +package net.minestom.server.entity.type.animal; + +import net.minestom.server.entity.EntityCreature; +import net.minestom.server.entity.EntityType; +import net.minestom.server.entity.type.Animal; +import net.minestom.server.utils.Position; + +public class EntityOcelot extends EntityCreature implements Animal { + public EntityOcelot(Position spawnPosition) { + super(EntityType.OCELOT, spawnPosition); + setBoundingBox(0.6f, 0.7f, 0.6f); + } +} diff --git a/src/main/java/net/minestom/server/entity/type/animal/EntityPanda.java b/src/main/java/net/minestom/server/entity/type/animal/EntityPanda.java new file mode 100644 index 000000000..62308a13b --- /dev/null +++ b/src/main/java/net/minestom/server/entity/type/animal/EntityPanda.java @@ -0,0 +1,13 @@ +package net.minestom.server.entity.type.animal; + +import net.minestom.server.entity.EntityCreature; +import net.minestom.server.entity.EntityType; +import net.minestom.server.entity.type.Animal; +import net.minestom.server.utils.Position; + +public class EntityPanda extends EntityCreature implements Animal { + public EntityPanda(Position spawnPosition) { + super(EntityType.PANDA, spawnPosition); + setBoundingBox(1.3f, 1.25f, 1.3f); + } +} diff --git a/src/main/java/net/minestom/server/entity/type/EntityPig.java b/src/main/java/net/minestom/server/entity/type/animal/EntityPig.java similarity index 89% rename from src/main/java/net/minestom/server/entity/type/EntityPig.java rename to src/main/java/net/minestom/server/entity/type/animal/EntityPig.java index 50690b409..b86c9fb96 100644 --- a/src/main/java/net/minestom/server/entity/type/EntityPig.java +++ b/src/main/java/net/minestom/server/entity/type/animal/EntityPig.java @@ -1,13 +1,14 @@ -package net.minestom.server.entity.type; +package net.minestom.server.entity.type.animal; import net.minestom.server.entity.EntityCreature; import net.minestom.server.entity.EntityType; +import net.minestom.server.entity.type.Animal; import net.minestom.server.network.packet.PacketWriter; import net.minestom.server.utils.Position; import java.util.function.Consumer; -public class EntityPig extends EntityCreature { +public class EntityPig extends EntityCreature implements Animal { private boolean saddle; diff --git a/src/main/java/net/minestom/server/entity/type/EntityPolarBear.java b/src/main/java/net/minestom/server/entity/type/animal/EntityPolarBear.java similarity index 87% rename from src/main/java/net/minestom/server/entity/type/EntityPolarBear.java rename to src/main/java/net/minestom/server/entity/type/animal/EntityPolarBear.java index ac77a6663..5817b78c0 100644 --- a/src/main/java/net/minestom/server/entity/type/EntityPolarBear.java +++ b/src/main/java/net/minestom/server/entity/type/animal/EntityPolarBear.java @@ -1,13 +1,14 @@ -package net.minestom.server.entity.type; +package net.minestom.server.entity.type.animal; import net.minestom.server.entity.EntityCreature; import net.minestom.server.entity.EntityType; +import net.minestom.server.entity.type.Animal; import net.minestom.server.network.packet.PacketWriter; import net.minestom.server.utils.Position; import java.util.function.Consumer; -public class EntityPolarBear extends EntityCreature { +public class EntityPolarBear extends EntityCreature implements Animal { private boolean standingUp; diff --git a/src/main/java/net/minestom/server/entity/type/EntityRabbit.java b/src/main/java/net/minestom/server/entity/type/animal/EntityRabbit.java similarity index 86% rename from src/main/java/net/minestom/server/entity/type/EntityRabbit.java rename to src/main/java/net/minestom/server/entity/type/animal/EntityRabbit.java index f84b2afa5..bb6150154 100644 --- a/src/main/java/net/minestom/server/entity/type/EntityRabbit.java +++ b/src/main/java/net/minestom/server/entity/type/animal/EntityRabbit.java @@ -1,13 +1,14 @@ -package net.minestom.server.entity.type; +package net.minestom.server.entity.type.animal; import net.minestom.server.entity.EntityCreature; import net.minestom.server.entity.EntityType; +import net.minestom.server.entity.type.Animal; import net.minestom.server.network.packet.PacketWriter; import net.minestom.server.utils.Position; import java.util.function.Consumer; -public class EntityRabbit extends EntityCreature { +public class EntityRabbit extends EntityCreature implements Animal { private int type; diff --git a/src/main/java/net/minestom/server/entity/type/EntityArmorStand.java b/src/main/java/net/minestom/server/entity/type/decoration/EntityArmorStand.java similarity index 99% rename from src/main/java/net/minestom/server/entity/type/EntityArmorStand.java rename to src/main/java/net/minestom/server/entity/type/decoration/EntityArmorStand.java index f17830609..07bedb692 100644 --- a/src/main/java/net/minestom/server/entity/type/EntityArmorStand.java +++ b/src/main/java/net/minestom/server/entity/type/decoration/EntityArmorStand.java @@ -1,4 +1,4 @@ -package net.minestom.server.entity.type; +package net.minestom.server.entity.type.decoration; import net.minestom.server.entity.EntityType; import net.minestom.server.entity.ObjectEntity; diff --git a/src/main/java/net/minestom/server/entity/type/EntityItemFrame.java b/src/main/java/net/minestom/server/entity/type/decoration/EntityItemFrame.java similarity index 98% rename from src/main/java/net/minestom/server/entity/type/EntityItemFrame.java rename to src/main/java/net/minestom/server/entity/type/decoration/EntityItemFrame.java index 79155e424..296ec9679 100644 --- a/src/main/java/net/minestom/server/entity/type/EntityItemFrame.java +++ b/src/main/java/net/minestom/server/entity/type/decoration/EntityItemFrame.java @@ -1,4 +1,4 @@ -package net.minestom.server.entity.type; +package net.minestom.server.entity.type.decoration; import net.minestom.server.entity.EntityType; import net.minestom.server.entity.ObjectEntity; diff --git a/src/main/java/net/minestom/server/entity/type/EntityBlaze.java b/src/main/java/net/minestom/server/entity/type/monster/EntityBlaze.java similarity index 84% rename from src/main/java/net/minestom/server/entity/type/EntityBlaze.java rename to src/main/java/net/minestom/server/entity/type/monster/EntityBlaze.java index f22ebb040..6984e851a 100644 --- a/src/main/java/net/minestom/server/entity/type/EntityBlaze.java +++ b/src/main/java/net/minestom/server/entity/type/monster/EntityBlaze.java @@ -1,13 +1,14 @@ -package net.minestom.server.entity.type; +package net.minestom.server.entity.type.monster; import net.minestom.server.entity.EntityCreature; import net.minestom.server.entity.EntityType; +import net.minestom.server.entity.type.Monster; import net.minestom.server.network.packet.PacketWriter; import net.minestom.server.utils.Position; import java.util.function.Consumer; -public class EntityBlaze extends EntityCreature { +public class EntityBlaze extends EntityCreature implements Monster { public EntityBlaze(Position spawnPosition) { super(EntityType.BLAZE, spawnPosition); diff --git a/src/main/java/net/minestom/server/entity/type/EntityCaveSpider.java b/src/main/java/net/minestom/server/entity/type/monster/EntityCaveSpider.java similarity index 59% rename from src/main/java/net/minestom/server/entity/type/EntityCaveSpider.java rename to src/main/java/net/minestom/server/entity/type/monster/EntityCaveSpider.java index 680ed21b6..c00594d6a 100644 --- a/src/main/java/net/minestom/server/entity/type/EntityCaveSpider.java +++ b/src/main/java/net/minestom/server/entity/type/monster/EntityCaveSpider.java @@ -1,12 +1,14 @@ -package net.minestom.server.entity.type; +package net.minestom.server.entity.type.monster; import net.minestom.server.entity.EntityCreature; import net.minestom.server.entity.EntityType; +import net.minestom.server.entity.type.Monster; import net.minestom.server.utils.Position; -public class EntityCaveSpider extends EntityCreature { +public class EntityCaveSpider extends EntityCreature implements Monster { public EntityCaveSpider(Position spawnPosition) { super(EntityType.CAVE_SPIDER, spawnPosition); setBoundingBox(0.7f, 0.5f, 0.7f); + setEyeHeight(0.45f); } } diff --git a/src/main/java/net/minestom/server/entity/type/EntityCreeper.java b/src/main/java/net/minestom/server/entity/type/monster/EntityCreeper.java similarity index 92% rename from src/main/java/net/minestom/server/entity/type/EntityCreeper.java rename to src/main/java/net/minestom/server/entity/type/monster/EntityCreeper.java index 715bb413d..6732e7b02 100644 --- a/src/main/java/net/minestom/server/entity/type/EntityCreeper.java +++ b/src/main/java/net/minestom/server/entity/type/monster/EntityCreeper.java @@ -1,13 +1,14 @@ -package net.minestom.server.entity.type; +package net.minestom.server.entity.type.monster; import net.minestom.server.entity.EntityCreature; import net.minestom.server.entity.EntityType; +import net.minestom.server.entity.type.Monster; import net.minestom.server.network.packet.PacketWriter; import net.minestom.server.utils.Position; import java.util.function.Consumer; -public class EntityCreeper extends EntityCreature { +public class EntityCreeper extends EntityCreature implements Monster { private CreeperState creeperState; private boolean charged; diff --git a/src/main/java/net/minestom/server/entity/type/EntityEndermite.java b/src/main/java/net/minestom/server/entity/type/monster/EntityEndermite.java similarity index 59% rename from src/main/java/net/minestom/server/entity/type/EntityEndermite.java rename to src/main/java/net/minestom/server/entity/type/monster/EntityEndermite.java index d37ef50cf..f94dc59a9 100644 --- a/src/main/java/net/minestom/server/entity/type/EntityEndermite.java +++ b/src/main/java/net/minestom/server/entity/type/monster/EntityEndermite.java @@ -1,12 +1,14 @@ -package net.minestom.server.entity.type; +package net.minestom.server.entity.type.monster; import net.minestom.server.entity.EntityCreature; import net.minestom.server.entity.EntityType; +import net.minestom.server.entity.type.Monster; import net.minestom.server.utils.Position; -public class EntityEndermite extends EntityCreature { +public class EntityEndermite extends EntityCreature implements Monster { public EntityEndermite(Position spawnPosition) { super(EntityType.ENDERMITE, spawnPosition); setBoundingBox(0.4f, 0.3f, 0.4f); + setEyeHeight(0.13f); } } diff --git a/src/main/java/net/minestom/server/entity/type/EntityGhast.java b/src/main/java/net/minestom/server/entity/type/monster/EntityGhast.java similarity index 85% rename from src/main/java/net/minestom/server/entity/type/EntityGhast.java rename to src/main/java/net/minestom/server/entity/type/monster/EntityGhast.java index 16a3a9166..f876531f2 100644 --- a/src/main/java/net/minestom/server/entity/type/EntityGhast.java +++ b/src/main/java/net/minestom/server/entity/type/monster/EntityGhast.java @@ -1,19 +1,21 @@ -package net.minestom.server.entity.type; +package net.minestom.server.entity.type.monster; import net.minestom.server.entity.EntityCreature; import net.minestom.server.entity.EntityType; +import net.minestom.server.entity.type.Monster; import net.minestom.server.network.packet.PacketWriter; import net.minestom.server.utils.Position; import java.util.function.Consumer; -public class EntityGhast extends EntityCreature { +public class EntityGhast extends EntityCreature implements Monster { private boolean attacking; public EntityGhast(Position spawnPosition) { super(EntityType.GHAST, spawnPosition); setBoundingBox(4, 4, 4); + setEyeHeight(2.6f); } @Override diff --git a/src/main/java/net/minestom/server/entity/type/EntityGiant.java b/src/main/java/net/minestom/server/entity/type/monster/EntityGiant.java similarity index 63% rename from src/main/java/net/minestom/server/entity/type/EntityGiant.java rename to src/main/java/net/minestom/server/entity/type/monster/EntityGiant.java index cb062a525..dc8be9a06 100644 --- a/src/main/java/net/minestom/server/entity/type/EntityGiant.java +++ b/src/main/java/net/minestom/server/entity/type/monster/EntityGiant.java @@ -1,10 +1,11 @@ -package net.minestom.server.entity.type; +package net.minestom.server.entity.type.monster; import net.minestom.server.entity.EntityCreature; import net.minestom.server.entity.EntityType; +import net.minestom.server.entity.type.Monster; import net.minestom.server.utils.Position; -public class EntityGiant extends EntityCreature { +public class EntityGiant extends EntityCreature implements Monster { public EntityGiant(Position spawnPosition) { super(EntityType.GIANT, spawnPosition); setBoundingBox(3.6f, 10.8f, 3.6f); diff --git a/src/main/java/net/minestom/server/entity/type/EntityGuardian.java b/src/main/java/net/minestom/server/entity/type/monster/EntityGuardian.java similarity index 90% rename from src/main/java/net/minestom/server/entity/type/EntityGuardian.java rename to src/main/java/net/minestom/server/entity/type/monster/EntityGuardian.java index 4c68a1f6d..9e8652b57 100644 --- a/src/main/java/net/minestom/server/entity/type/EntityGuardian.java +++ b/src/main/java/net/minestom/server/entity/type/monster/EntityGuardian.java @@ -1,14 +1,15 @@ -package net.minestom.server.entity.type; +package net.minestom.server.entity.type.monster; import net.minestom.server.entity.Entity; import net.minestom.server.entity.EntityCreature; import net.minestom.server.entity.EntityType; +import net.minestom.server.entity.type.Monster; import net.minestom.server.network.packet.PacketWriter; import net.minestom.server.utils.Position; import java.util.function.Consumer; -public class EntityGuardian extends EntityCreature { +public class EntityGuardian extends EntityCreature implements Monster { private boolean retractingSpikes; private Entity target; diff --git a/src/main/java/net/minestom/server/entity/type/EntityPhantom.java b/src/main/java/net/minestom/server/entity/type/monster/EntityPhantom.java similarity index 86% rename from src/main/java/net/minestom/server/entity/type/EntityPhantom.java rename to src/main/java/net/minestom/server/entity/type/monster/EntityPhantom.java index cf4dc0938..559cd19c5 100644 --- a/src/main/java/net/minestom/server/entity/type/EntityPhantom.java +++ b/src/main/java/net/minestom/server/entity/type/monster/EntityPhantom.java @@ -1,13 +1,14 @@ -package net.minestom.server.entity.type; +package net.minestom.server.entity.type.monster; import net.minestom.server.entity.EntityCreature; import net.minestom.server.entity.EntityType; +import net.minestom.server.entity.type.Monster; import net.minestom.server.network.packet.PacketWriter; import net.minestom.server.utils.Position; import java.util.function.Consumer; -public class EntityPhantom extends EntityCreature { +public class EntityPhantom extends EntityCreature implements Monster { private int size; diff --git a/src/main/java/net/minestom/server/entity/type/EntitySilverfish.java b/src/main/java/net/minestom/server/entity/type/monster/EntitySilverfish.java similarity index 59% rename from src/main/java/net/minestom/server/entity/type/EntitySilverfish.java rename to src/main/java/net/minestom/server/entity/type/monster/EntitySilverfish.java index 87412dc82..ce10a6830 100644 --- a/src/main/java/net/minestom/server/entity/type/EntitySilverfish.java +++ b/src/main/java/net/minestom/server/entity/type/monster/EntitySilverfish.java @@ -1,12 +1,14 @@ -package net.minestom.server.entity.type; +package net.minestom.server.entity.type.monster; import net.minestom.server.entity.EntityCreature; import net.minestom.server.entity.EntityType; +import net.minestom.server.entity.type.Monster; import net.minestom.server.utils.Position; -public class EntitySilverfish extends EntityCreature { +public class EntitySilverfish extends EntityCreature implements Monster { public EntitySilverfish(Position spawnPosition) { super(EntityType.SILVERFISH, spawnPosition); setBoundingBox(0.4f, 0.3f, 0.4f); + setEyeHeight(0.13f); } } diff --git a/src/main/java/net/minestom/server/entity/type/EntitySlime.java b/src/main/java/net/minestom/server/entity/type/monster/EntitySlime.java similarity index 87% rename from src/main/java/net/minestom/server/entity/type/EntitySlime.java rename to src/main/java/net/minestom/server/entity/type/monster/EntitySlime.java index f7db3dd69..910e6e37c 100644 --- a/src/main/java/net/minestom/server/entity/type/EntitySlime.java +++ b/src/main/java/net/minestom/server/entity/type/monster/EntitySlime.java @@ -1,13 +1,14 @@ -package net.minestom.server.entity.type; +package net.minestom.server.entity.type.monster; import net.minestom.server.entity.EntityCreature; import net.minestom.server.entity.EntityType; +import net.minestom.server.entity.type.Monster; import net.minestom.server.network.packet.PacketWriter; import net.minestom.server.utils.Position; import java.util.function.Consumer; -public class EntitySlime extends EntityCreature { +public class EntitySlime extends EntityCreature implements Monster { private int size; diff --git a/src/main/java/net/minestom/server/entity/type/EntitySpider.java b/src/main/java/net/minestom/server/entity/type/monster/EntitySpider.java similarity index 87% rename from src/main/java/net/minestom/server/entity/type/EntitySpider.java rename to src/main/java/net/minestom/server/entity/type/monster/EntitySpider.java index f2b214f39..420611dba 100644 --- a/src/main/java/net/minestom/server/entity/type/EntitySpider.java +++ b/src/main/java/net/minestom/server/entity/type/monster/EntitySpider.java @@ -1,19 +1,21 @@ -package net.minestom.server.entity.type; +package net.minestom.server.entity.type.monster; import net.minestom.server.entity.EntityCreature; import net.minestom.server.entity.EntityType; +import net.minestom.server.entity.type.Monster; import net.minestom.server.network.packet.PacketWriter; import net.minestom.server.utils.Position; import java.util.function.Consumer; -public class EntitySpider extends EntityCreature { +public class EntitySpider extends EntityCreature implements Monster { private boolean climbing; public EntitySpider(Position spawnPosition) { super(EntityType.SPIDER, spawnPosition); setBoundingBox(1.4f, 0.9f, 1.4f); + setEyeHeight(0.65f); } @Override diff --git a/src/main/java/net/minestom/server/entity/type/EntityWitch.java b/src/main/java/net/minestom/server/entity/type/monster/EntityWitch.java similarity index 85% rename from src/main/java/net/minestom/server/entity/type/EntityWitch.java rename to src/main/java/net/minestom/server/entity/type/monster/EntityWitch.java index 07fab805f..b3d1db93c 100644 --- a/src/main/java/net/minestom/server/entity/type/EntityWitch.java +++ b/src/main/java/net/minestom/server/entity/type/monster/EntityWitch.java @@ -1,19 +1,21 @@ -package net.minestom.server.entity.type; +package net.minestom.server.entity.type.monster; import net.minestom.server.entity.EntityCreature; import net.minestom.server.entity.EntityType; +import net.minestom.server.entity.type.Monster; import net.minestom.server.network.packet.PacketWriter; import net.minestom.server.utils.Position; import java.util.function.Consumer; -public class EntityWitch extends EntityCreature { +public class EntityWitch extends EntityCreature implements Monster { private boolean drinkingPotion; public EntityWitch(Position spawnPosition) { super(EntityType.WITCH, spawnPosition); setBoundingBox(0.6f, 1.95f, 0.6f); + setEyeHeight(1.62f); } @Override diff --git a/src/main/java/net/minestom/server/entity/type/EntityZombie.java b/src/main/java/net/minestom/server/entity/type/monster/EntityZombie.java similarity index 85% rename from src/main/java/net/minestom/server/entity/type/EntityZombie.java rename to src/main/java/net/minestom/server/entity/type/monster/EntityZombie.java index 9d5dcebac..15f299ea1 100644 --- a/src/main/java/net/minestom/server/entity/type/EntityZombie.java +++ b/src/main/java/net/minestom/server/entity/type/monster/EntityZombie.java @@ -1,13 +1,14 @@ -package net.minestom.server.entity.type; +package net.minestom.server.entity.type.monster; import net.minestom.server.entity.EntityCreature; import net.minestom.server.entity.EntityType; +import net.minestom.server.entity.type.Monster; import net.minestom.server.network.packet.PacketWriter; import net.minestom.server.utils.Position; import java.util.function.Consumer; -public class EntityZombie extends EntityCreature { +public class EntityZombie extends EntityCreature implements Monster { private boolean baby; private boolean becomingDrowned; @@ -15,7 +16,6 @@ public class EntityZombie extends EntityCreature { public EntityZombie(Position spawnPosition) { super(EntityType.ZOMBIE, spawnPosition); setBoundingBox(0.6f, 1.95f, 0.6f); - setEyeHeight(1.74f); } @Override @@ -58,4 +58,9 @@ public class EntityZombie extends EntityCreature { this.becomingDrowned = becomingDrowned; sendMetadataIndex(17); } + + @Override + public float getEyeHeight() { + return isBaby() ? 0.93f : 1.74f; + } } diff --git a/src/main/java/net/minestom/server/entity/type/EntityPigZombie.java b/src/main/java/net/minestom/server/entity/type/monster/EntityZombifiedPiglin.java similarity index 84% rename from src/main/java/net/minestom/server/entity/type/EntityPigZombie.java rename to src/main/java/net/minestom/server/entity/type/monster/EntityZombifiedPiglin.java index cb79e4933..ddcdd2ac9 100644 --- a/src/main/java/net/minestom/server/entity/type/EntityPigZombie.java +++ b/src/main/java/net/minestom/server/entity/type/monster/EntityZombifiedPiglin.java @@ -1,18 +1,19 @@ -package net.minestom.server.entity.type; +package net.minestom.server.entity.type.monster; import net.minestom.server.entity.EntityCreature; import net.minestom.server.entity.EntityType; +import net.minestom.server.entity.type.Monster; import net.minestom.server.network.packet.PacketWriter; import net.minestom.server.utils.Position; import java.util.function.Consumer; -public class EntityPigZombie extends EntityCreature { +public class EntityZombifiedPiglin extends EntityCreature implements Monster { private boolean baby; private boolean becomingDrowned; - public EntityPigZombie(Position spawnPosition) { + public EntityZombifiedPiglin(Position spawnPosition) { super(EntityType.ZOMBIFIED_PIGLIN, spawnPosition); setBoundingBox(0.6f, 1.95f, 0.6f); } @@ -68,4 +69,8 @@ public class EntityPigZombie extends EntityCreature { sendMetadataIndex(17); } + @Override + public float getEyeHeight() { + return isBaby() ? 0.93f : 1.74f; + } } diff --git a/src/main/java/net/minestom/server/entity/type/EntityAreaEffectCloud.java b/src/main/java/net/minestom/server/entity/type/other/EntityAreaEffectCloud.java similarity index 98% rename from src/main/java/net/minestom/server/entity/type/EntityAreaEffectCloud.java rename to src/main/java/net/minestom/server/entity/type/other/EntityAreaEffectCloud.java index 89882b7ef..eed2067c9 100644 --- a/src/main/java/net/minestom/server/entity/type/EntityAreaEffectCloud.java +++ b/src/main/java/net/minestom/server/entity/type/other/EntityAreaEffectCloud.java @@ -1,4 +1,4 @@ -package net.minestom.server.entity.type; +package net.minestom.server.entity.type.other; import net.minestom.server.entity.EntityType; import net.minestom.server.entity.ObjectEntity; diff --git a/src/main/java/net/minestom/server/entity/type/EntityIronGolem.java b/src/main/java/net/minestom/server/entity/type/other/EntityIronGolem.java similarity index 86% rename from src/main/java/net/minestom/server/entity/type/EntityIronGolem.java rename to src/main/java/net/minestom/server/entity/type/other/EntityIronGolem.java index b3123ce81..6cfee7d27 100644 --- a/src/main/java/net/minestom/server/entity/type/EntityIronGolem.java +++ b/src/main/java/net/minestom/server/entity/type/other/EntityIronGolem.java @@ -1,13 +1,14 @@ -package net.minestom.server.entity.type; +package net.minestom.server.entity.type.other; import net.minestom.server.entity.EntityCreature; import net.minestom.server.entity.EntityType; +import net.minestom.server.entity.type.Constructable; import net.minestom.server.network.packet.PacketWriter; import net.minestom.server.utils.Position; import java.util.function.Consumer; -public class EntityIronGolem extends EntityCreature { +public class EntityIronGolem extends EntityCreature implements Constructable { private boolean playerCreated; diff --git a/src/main/java/net/minestom/server/entity/type/EntitySnowman.java b/src/main/java/net/minestom/server/entity/type/other/EntitySnowman.java similarity index 86% rename from src/main/java/net/minestom/server/entity/type/EntitySnowman.java rename to src/main/java/net/minestom/server/entity/type/other/EntitySnowman.java index c7508e7ca..bc7d87938 100644 --- a/src/main/java/net/minestom/server/entity/type/EntitySnowman.java +++ b/src/main/java/net/minestom/server/entity/type/other/EntitySnowman.java @@ -1,13 +1,14 @@ -package net.minestom.server.entity.type; +package net.minestom.server.entity.type.other; import net.minestom.server.entity.EntityCreature; import net.minestom.server.entity.EntityType; +import net.minestom.server.entity.type.Constructable; import net.minestom.server.network.packet.PacketWriter; import net.minestom.server.utils.Position; import java.util.function.Consumer; -public class EntitySnowman extends EntityCreature { +public class EntitySnowman extends EntityCreature implements Constructable { private boolean pumpkinHat; diff --git a/src/main/java/net/minestom/server/entity/type/EntityEyeOfEnder.java b/src/main/java/net/minestom/server/entity/type/projectile/EntityEyeOfEnder.java similarity index 89% rename from src/main/java/net/minestom/server/entity/type/EntityEyeOfEnder.java rename to src/main/java/net/minestom/server/entity/type/projectile/EntityEyeOfEnder.java index c20589b5a..f2a360311 100644 --- a/src/main/java/net/minestom/server/entity/type/EntityEyeOfEnder.java +++ b/src/main/java/net/minestom/server/entity/type/projectile/EntityEyeOfEnder.java @@ -1,7 +1,8 @@ -package net.minestom.server.entity.type; +package net.minestom.server.entity.type.projectile; import net.minestom.server.entity.EntityType; import net.minestom.server.entity.ObjectEntity; +import net.minestom.server.entity.type.Projectile; import net.minestom.server.item.ItemStack; import net.minestom.server.item.Material; import net.minestom.server.network.packet.PacketWriter; @@ -9,7 +10,7 @@ import net.minestom.server.utils.Position; import java.util.function.Consumer; -public class EntityEyeOfEnder extends ObjectEntity { +public class EntityEyeOfEnder extends ObjectEntity implements Projectile { private ItemStack itemStack; diff --git a/src/main/java/net/minestom/server/entity/type/EntityPotion.java b/src/main/java/net/minestom/server/entity/type/projectile/EntityPotion.java similarity index 87% rename from src/main/java/net/minestom/server/entity/type/EntityPotion.java rename to src/main/java/net/minestom/server/entity/type/projectile/EntityPotion.java index 15ee7fbf5..ce6cb0f74 100644 --- a/src/main/java/net/minestom/server/entity/type/EntityPotion.java +++ b/src/main/java/net/minestom/server/entity/type/projectile/EntityPotion.java @@ -1,14 +1,15 @@ -package net.minestom.server.entity.type; +package net.minestom.server.entity.type.projectile; import net.minestom.server.entity.EntityType; import net.minestom.server.entity.ObjectEntity; +import net.minestom.server.entity.type.Projectile; import net.minestom.server.item.ItemStack; import net.minestom.server.network.packet.PacketWriter; import net.minestom.server.utils.Position; import java.util.function.Consumer; -public class EntityPotion extends ObjectEntity { +public class EntityPotion extends ObjectEntity implements Projectile { private ItemStack potion; diff --git a/src/main/java/net/minestom/server/entity/type/EntityBoat.java b/src/main/java/net/minestom/server/entity/type/vehicle/EntityBoat.java similarity index 93% rename from src/main/java/net/minestom/server/entity/type/EntityBoat.java rename to src/main/java/net/minestom/server/entity/type/vehicle/EntityBoat.java index 5bba17117..47bff20d6 100644 --- a/src/main/java/net/minestom/server/entity/type/EntityBoat.java +++ b/src/main/java/net/minestom/server/entity/type/vehicle/EntityBoat.java @@ -1,14 +1,15 @@ -package net.minestom.server.entity.type; +package net.minestom.server.entity.type.vehicle; import net.minestom.server.entity.EntityType; import net.minestom.server.entity.ObjectEntity; +import net.minestom.server.entity.type.Vehicle; import net.minestom.server.network.packet.PacketWriter; import net.minestom.server.utils.Position; import net.minestom.server.utils.validate.Check; import java.util.function.Consumer; -public class EntityBoat extends ObjectEntity { +public class EntityBoat extends ObjectEntity implements Vehicle { private BoatType boatType; private boolean leftPaddleTurning; diff --git a/src/main/java/net/minestom/server/listener/PlayerVehicleListener.java b/src/main/java/net/minestom/server/listener/PlayerVehicleListener.java index 4409671fd..7498f80aa 100644 --- a/src/main/java/net/minestom/server/listener/PlayerVehicleListener.java +++ b/src/main/java/net/minestom/server/listener/PlayerVehicleListener.java @@ -2,7 +2,7 @@ package net.minestom.server.listener; import net.minestom.server.entity.Entity; import net.minestom.server.entity.Player; -import net.minestom.server.entity.type.EntityBoat; +import net.minestom.server.entity.type.vehicle.EntityBoat; import net.minestom.server.network.packet.client.play.ClientSteerBoatPacket; import net.minestom.server.network.packet.client.play.ClientSteerVehiclePacket; import net.minestom.server.network.packet.client.play.ClientVehicleMovePacket;