my arrow wont move at all it would stay mid air and show no collision
my Entity class:
package net.jeezedboi.epicraft.entity.custom;
import net.jeezedboi.epicraft.init.ModItems;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.projectile.AbstractArrowEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.network.IPacket;
import net.minecraft.util.math.EntityRayTraceResult;
import net.minecraft.world.Explosion;
import net.minecraft.world.World;
import net.minecraftforge.fml.network.NetworkHooks;
public class ExplosiveArrowEntity extends AbstractArrowEntity {
// default constructor, required to register the entity
public ExplosiveArrowEntity(EntityType<ExplosiveArrowEntity> entityType, World world) {
super(entityType, world);
}
public ExplosiveArrowEntity(EntityType<ExplosiveArrowEntity> entityType, double x, double y, double z, World world) {
super(entityType, x, y, z, world);
}
// the constructor used by the ArrowItem
public ExplosiveArrowEntity(EntityType<ExplosiveArrowEntity> entityType, LivingEntity shooter, World world) {
super(entityType, shooter, world);
}
// the item stack to give the player when they walk over your arrow stuck in the ground
@Override
protected ItemStack getArrowStack() {
return new ItemStack(ModItems.EXPLOSIVE_ARROW.get());
}
@Override
protected void onEntityHit(EntityRayTraceResult result) {
super.onEntityHit(result);
// this, x, y, z, explosionStrength, setsFires, breakMode (NONE, BREAK, DESTROY)
this.world.createExplosion(this, this.getPosX(), this.getPosY(), this.getPosZ(), 4.0f, true, Explosion.Mode.BREAK);
}
// called each tick while in the ground
@Override
public void tick() {
if (this.timeInGround > 60){
this.world.createExplosion(this, this.getPosX(), this.getPosY(), this.getPosZ(), 4.0f, true, Explosion.Mode.BREAK);
this.remove();
}
}
// syncs to the client
@Override
public IPacket<?> createSpawnPacket() {
return NetworkHooks.getEntitySpawningPacket(this);
}
}
my item class :
package net.jeezedboi.epicraft.item.custom;
import net.jeezedboi.epicraft.entity.custom.ExplosiveArrowEntity;
import net.jeezedboi.epicraft.init.ModEntityTypes;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.projectile.AbstractArrowEntity;
import net.minecraft.item.ArrowItem;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
public class ExplosiveArrowItem extends ArrowItem {
public ExplosiveArrowItem(Properties props) {
super(props);
}
@Override
public AbstractArrowEntity createArrow(World world, ItemStack ammoStack, LivingEntity shooter) {
ExplosiveArrowEntity explosiveArrowEntity = new ExplosiveArrowEntity(ModEntityTypes.EXPLOSIVE_ARROW.get(), shooter, world);
return explosiveArrowEntity;
}
}
other stuffs:
public static final RegistryObject<Item> EXPLOSIVE_ARROW = ITEMS.register("explosive_arrow",
() -> new ExplosiveArrowItem(new Item.Properties().group(ModItemGroup.Epic_Items)));
public static final RegistryObject<EntityType<ExplosiveArrowEntity>> EXPLOSIVE_ARROW =
ENTITY_TYPES.register("explosive_arrow",
() -> EntityType.Builder.create((EntityType.IFactory<ExplosiveArrowEntity>) ExplosiveArrowEntity::new, EntityClassification.MISC)
.size(0.5F, 0.5F).build("explosive_arrow"));
mappings channel: 'snapshot', version: '20210309-1.16.5'