diff --git a/src/main/java/net/minestom/server/entity/metadata/arrow/ArrowMeta.java b/src/main/java/net/minestom/server/entity/metadata/arrow/ArrowMeta.java index 19a96afb4..d02f96cdc 100644 --- a/src/main/java/net/minestom/server/entity/metadata/arrow/ArrowMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/arrow/ArrowMeta.java @@ -2,12 +2,11 @@ package net.minestom.server.entity.metadata.arrow; import net.minestom.server.entity.Entity; import net.minestom.server.entity.Metadata; -import net.minestom.server.entity.metadata.EntityMeta; import net.minestom.server.entity.metadata.ObjectDataProvider; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -public class ArrowMeta extends EntityMeta implements ObjectDataProvider { +public class ArrowMeta extends AbstractArrowMeta implements ObjectDataProvider { private Entity shooter; diff --git a/src/main/java/net/minestom/server/entity/type/projectile/AbstractProjectile.java b/src/main/java/net/minestom/server/entity/type/projectile/AbstractProjectile.java index 5adf4d6f1..c4ad5c8eb 100644 --- a/src/main/java/net/minestom/server/entity/type/projectile/AbstractProjectile.java +++ b/src/main/java/net/minestom/server/entity/type/projectile/AbstractProjectile.java @@ -8,12 +8,13 @@ import net.minestom.server.utils.Position; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -public abstract class AbstractProjectile extends ObjectEntity implements Projectile { +public abstract class AbstractProjectile extends Entity implements Projectile { private final Entity shooter; public AbstractProjectile(@Nullable Entity shooter, @NotNull EntityType entityType, @NotNull Position spawnPosition) { super(entityType, spawnPosition); + setGravity(0.02f, 0.04f, 1.96f); this.shooter = shooter; } diff --git a/src/main/java/net/minestom/server/entity/type/projectile/EntityAbstractArrow.java b/src/main/java/net/minestom/server/entity/type/projectile/EntityAbstractArrow.java index 32af51d08..bab55e201 100644 --- a/src/main/java/net/minestom/server/entity/type/projectile/EntityAbstractArrow.java +++ b/src/main/java/net/minestom/server/entity/type/projectile/EntityAbstractArrow.java @@ -119,10 +119,4 @@ public class EntityAbstractArrow extends AbstractProjectile { return false; } - @Override - public int getObjectData() { - Entity shooter = getShooter(); - return shooter == null ? 0 : shooter.getEntityId() + 1; - } - } diff --git a/src/main/java/net/minestom/server/entity/type/projectile/EntityArrow.java b/src/main/java/net/minestom/server/entity/type/projectile/EntityArrow.java index a82d7ca0d..a5a3efc21 100644 --- a/src/main/java/net/minestom/server/entity/type/projectile/EntityArrow.java +++ b/src/main/java/net/minestom/server/entity/type/projectile/EntityArrow.java @@ -3,6 +3,7 @@ package net.minestom.server.entity.type.projectile; import net.minestom.server.entity.Entity; import net.minestom.server.entity.EntityType; import net.minestom.server.entity.Metadata; +import net.minestom.server.entity.metadata.arrow.ArrowMeta; import net.minestom.server.utils.Position; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -11,6 +12,7 @@ public class EntityArrow extends EntityAbstractArrow { public EntityArrow(@Nullable Entity shooter, @NotNull Position spawnPosition) { super(shooter, EntityType.ARROW, spawnPosition); + ((ArrowMeta) getEntityMeta()).setShooter(shooter); } } diff --git a/src/main/java/net/minestom/server/entity/type/projectile/EntityEyeOfEnder.java b/src/main/java/net/minestom/server/entity/type/projectile/EntityEyeOfEnder.java index 79a4637f8..609a87377 100644 --- a/src/main/java/net/minestom/server/entity/type/projectile/EntityEyeOfEnder.java +++ b/src/main/java/net/minestom/server/entity/type/projectile/EntityEyeOfEnder.java @@ -40,8 +40,4 @@ public class EntityEyeOfEnder extends AbstractProjectile { this.metadata.setIndex((byte) 7, Metadata.Slot(itemStack)); } - @Override - public int getObjectData() { - return 0; - } } diff --git a/src/main/java/net/minestom/server/entity/type/projectile/EntityPotion.java b/src/main/java/net/minestom/server/entity/type/projectile/EntityPotion.java index 7c0ba2b4f..f7b9f17de 100644 --- a/src/main/java/net/minestom/server/entity/type/projectile/EntityPotion.java +++ b/src/main/java/net/minestom/server/entity/type/projectile/EntityPotion.java @@ -20,11 +20,6 @@ public class EntityPotion extends AbstractProjectile { setPotion(potion); } - @Override - public int getObjectData() { - return 0; - } - @NotNull public ItemStack getPotion() { return metadata.getIndex((byte) 7, ItemStack.getAirItem()); diff --git a/src/main/java/net/minestom/server/entity/type/projectile/EntitySpectralArrow.java b/src/main/java/net/minestom/server/entity/type/projectile/EntitySpectralArrow.java index 944b13690..21b958d41 100644 --- a/src/main/java/net/minestom/server/entity/type/projectile/EntitySpectralArrow.java +++ b/src/main/java/net/minestom/server/entity/type/projectile/EntitySpectralArrow.java @@ -2,6 +2,7 @@ package net.minestom.server.entity.type.projectile; import net.minestom.server.entity.Entity; import net.minestom.server.entity.EntityType; +import net.minestom.server.entity.metadata.arrow.SpectralArrowMeta; import net.minestom.server.utils.Position; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -10,6 +11,7 @@ public class EntitySpectralArrow extends EntityAbstractArrow { public EntitySpectralArrow(@Nullable Entity shooter, @NotNull Position spawnPosition) { super(shooter, EntityType.SPECTRAL_ARROW, spawnPosition); + ((SpectralArrowMeta) getEntityMeta()).setShooter(shooter); } }