Posted March 9, 201312 yr Hi, The spawnEntityIntoClientWorld() function in FMLClientHandler does not work properly for multi-part entities (Entity.getParts() != null). entity.entityId will be set before the offsets are calculated for the parts. This leads to getEntityByID() in NetServerHandler always returning a wrong entity (or null in most cases) for those parts. A simple solution is to move the assignment of the entity ID after the assignments of the parts' ids. public Entity spawnEntityIntoClientWorld(EntityRegistration er, EntitySpawnPacket packet){ /*snip*/ entity = (Entity)(cls.getConstructor(World.class).newInstance(wc)); entity.entityId = packet.entityId; /*snip*/ Entity parts[] = entity.getParts(); if (parts != null) { int i = packet.entityId - entity.entityId; //<- will always be 0 for (int j = 0; j < parts.length; j++) { parts[j].entityId += i; } } /*snip*/ }
March 9, 201312 yr https://github.com/MinecraftForge/FML/commit/1642bad402efe819f4e763bf4b460d8c04194849 I do Forge for free, however the servers to run it arn't free, so anything is appreciated. Consider supporting the team on Patreon
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.