poopoodice Posted February 24, 2020 Share Posted February 24, 2020 My entity was not showing up at the beginning, then I noticed that I need to override IPacket<?> createSpawnPacket() After I change whatever it was returning to NetworkHooks.getEntitySpawningPacket(this) The entity appeared, but it is a pig, the debug UI (f3) also tells me that the id of the entity is minecraft:pig, but I pretty sure my entity exist on server side because I can see things I added in tick() executing. Which kind of packet do I need? Quote Link to comment Share on other sites More sharing options...
poopoodice Posted February 24, 2020 Author Share Posted February 24, 2020 //Registry Class @SubscribeEvent public static void onEntitiesRegister(RegistryEvent.Register<EntityType<?>> event) { EntityType<?> bullet = EntityType.Builder.<Bullet>create(Bullet::new, EntityClassification.MISC) .size(0.1f, 0.1f) .setCustomClientFactory((packet, world) -> new Bullet(world)) .build("bullet") .setRegistryName(Reference.MODID, "bullet"); event.getRegistry().register(bullet); } //Bullet Class public Bullet(World world) { super((EntityType<? extends Bullet>) getEntityType(), world); } public static EntityType<?> getEntityType() { return ForgeRegistries.ENTITIES.getValue(new ResourceLocation(Reference.MODID + "bullet")); } Quote Link to comment Share on other sites More sharing options...
poopoodice Posted February 25, 2020 Author Share Posted February 25, 2020 18 hours ago, diesieben07 said: Why? This never returns something, because the ResourceLocation is wrong. I've changed the way of registering to what Cadiboo has suggested me //Registry Class public static final DeferredRegister<EntityType<?>> ENTITY_TYPES = new DeferredRegister<>(ForgeRegistries.ENTITIES, Reference.MODID); public static final RegistryObject<EntityType<Bullet>> BULLET = ENTITY_TYPES.register("bullet", () -> EntityType.Builder.<Bullet>create(Bullet::new, EntityClassification.CREATURE) .size(0.1F, 0.1F) .build(new ResourceLocation(Reference.MODID, "bullet").toString()) ); Since you said that the getEntityType() wouldn't work, I tried to summon the entity with command (/summon), but it only shows "Unable to summon entity" and "Tried to add entity modid:bullet but it was marked as removed already", what does it mean? Is the entity registered correctly? Quote Link to comment Share on other sites More sharing options...
poopoodice Posted February 25, 2020 Author Share Posted February 25, 2020 (edited) 11 hours ago, diesieben07 said: Show your updated entity class. public class Bullet extends AbstractBullet { private float damage; public Bullet(EntityType<? extends Bullet> entityType, World worldIn) { super(entityType, worldIn); } public Bullet(EntityType<? extends Bullet> entityType, World worldIn, PlayerEntity shooter) { this(entityType, worldIn); this.setPosition(shooter.posX, shooter.posY, shooter.posZ); } @Override protected void registerData(){} @Override public IPacket<?> createSpawnPacket() { return NetworkHooks.getEntitySpawningPacket(this); } } public abstract class AbstractBullet extends DamagingProjectileEntity { protected AbstractBullet(EntityType<? extends AbstractBullet> entityType, World worldIn) { super(entityType, worldIn); } @Override public boolean canBeCollidedWith() { return false;} @Override public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_){ return false;} @Override protected boolean isFireballFiery(){ return false;} } Here you are ? Edited February 25, 2020 by poopoodice Quote Link to comment Share on other sites More sharing options...
poopoodice Posted February 26, 2020 Author Share Posted February 26, 2020 1 minute ago, diesieben07 said: This means your entity is not registered properly. Are you registering the DeferredRegister? Show where. Registry.ENTITY_TYPES.register(FMLJavaModLoadingContext.get().getModEventBus()); In the constructor of the main class Quote Link to comment Share on other sites More sharing options...
poopoodice Posted February 26, 2020 Author Share Posted February 26, 2020 26 minutes ago, diesieben07 said: Okay. Well, I can't tell whats wrong from just staring at the code. Post a working Git repo. https://github.com/poopoodice/ava/tree/master/src/main/java/com/poopoodice/ava Link to the repo Quote Link to comment Share on other sites More sharing options...
poopoodice Posted February 26, 2020 Author Share Posted February 26, 2020 10 hours ago, diesieben07 said: This is why you always need to post your complete code and not just snippets of what you think is important. And what's especially bad is that you made those snippets look like they are the complete thing. DO NOT DO THIS. It doesn't help anything. Sorry for doing that, appreciate for ur patient ? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.