Jump to content

[1.12.2] Issue can't see custom mobs


theCVDH

Recommended Posts

Hello i need your help i try to register and Spawn "Custom Mobs" with Vanilla id. Its a Serverside only mod.

Registration

    @SubscribeEvent
    public void entityRegistration(final RegistryEvent.Register<EntityEntry> event)
    {
   (I try both seperat) 	EntityRegistry.registerModEntity(new ResourceLocation("minecraft", "bat"), NEntityBat.class, "superBat", 65, this, 100, 20, false);
    (I try both seperat)	event.getRegistry().register( EntityEntryBuilder.create().entity(NEntityBat.class).name("superBat").id(new ResourceLocation("minecraft", "bat"), 65).tracker(160, 2, false).build());

    }

(NEntityBat  extents EntityBat)

Spawning

NEntityBat bat = new NEntityBat(world);
bat.setPosition(loc.getX(),loc.getY(),loc.getZ());
world.spawnEntity(bat);

 

the Entity flyes arround and is Alive (Debug output from NEntityBat#onUpdate()) but Clintside nothing Happens

Edited by theCVDH
Link to comment
Share on other sites

35 minutes ago, theCVDH said:

Serverside

 

35 minutes ago, theCVDH said:

Clintside nothing Happens

You cannot make any new objects on one side and expect the other to know what the hell is going on.
Rendering is done on the client. Here, there's no renderer for, nor any idea what the hell an NEntityBat is.

Further more, this will break Entities for other mods.
Server & Client each have their own registry with entities. What you're doing, is de-syncing the entity registries between server & client. The entity-type at position X in the registry on the server should always equal the same entity-type at position X on the client.
This will lead to issues for other mods registering their entities after you.

 

TL;DR
What you're doing is not possible, not without breaking Minecraft

Also previously known as eAndPi.

"Pi, is there a station coming up where we can board your train of thought?" -Kronnn

Published Mods: Underworld

Handy links: Vic_'s Forge events Own WIP Tutorials.

Link to comment
Share on other sites

@Matryoshika

But it was Possible in 1.8 By using global ids. It also has the Default rederer for Bat an i use the correct Networkid so the client should think its a typical Bat.

 

Is there another way to Manipulate entities (Only behavior) that don't need to extens them?

Edited by theCVDH
Link to comment
Share on other sites

1 minute ago, diesieben07 said:

Yes. Depends on the type of behavior you want to change. The AI task controllers (EntityLiving::tasks and EntityLiving::targetTasks) are public and can be changed, the event for this would be EntityJoinWorldEvent.

If that does not suit your needs, post specifics about what you want to change.

I need to manipulate NBT writing and need Acsess to the OnUpdate method but why its impossible to Handle it serverside like NEntityBat and Clientside as EntityBat how i have to maipulate the Registry that server Send it as EntityBat to client but handle it like NEntityBat and why it worked in lower versions like 1.8 but not in 1.12.2 what changed?

Link to comment
Share on other sites

I whant to Update my Hologram API therefore i create Armourstands items and Slimes as Touchhandler
They sould be able to move softly around (Dont jump) i currently do this inside the OnUpdateMethod also they have to die without passanger

Link to comment
Share on other sites

Sorry for bad English :D
Where in the Forgecode the Server tells the client Witch Class to use to handle for example entity spawning. I thought the Entity NetworkID tells the Client how to handle the Packet and what kind of mob it is

Link to comment
Share on other sites

Ah i see

if (net.minecraftforge.fml.common.registry.EntityRegistry.instance().tryTrackingEntity(this, entityIn)) return;

 

this line is the Reason for the "Problem" or? So if this Line would be modify to

if (!(entityIn instanceof NEntityBat)&& net.minecraftforge.fml.common.registry.EntityRegistry.instance().tryTrackingEntity(this, entityIn)) return;

 

it will handled as Vanilla bat?

Link to comment
Share on other sites

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • I had an amazing experience with The Hack Angels. I had given up hope, but they managed to recover my bitcoins from an online scammer. I was able to retrieve what I had thought was lost forever because of their knowledge and commitment. I heartily endorse the services of The Hack Angels to anyone in need of help recovering cryptocurrency. They really are authorities in their domain.  (Web: https://thehackangels.com)     Whats Ap; +1 520) - 200, 23  20 ) ,  Mail Box; support@thehackangels. com
    • I got my model to render from the models renderToBuffer method. But still not quite what I want. I want to render the model from my renderer's render method. I feel that having access to the renderer and it's methods will open some doors for me later down the line. //EntityRendererProvider.Context pContext = ; I want this //ToaPlayerRenderer render = new ToaPlayerRenderer(pContext, false); // if I can get the above line to work, having the methods from the renderer class would be incredibly helpful down the line RenderType rendertype = model.renderType(p.getSkinTextureLocation()); // this should be something like render.getTextureLocation() VertexConsumer vertexconsumer = buffer.getBuffer(rendertype); model.renderToBuffer(stack, vertexconsumer, paLights, 1, 1, 1, 1, 1); // I don't want the render to happen here since it doesn't use the renderer //model.render(p, 1f, pTicks, stack, buffer, paLights); I want to render the model using this It is certainly getting closer though. Probably. I am still worried that even if pContext is initialized this new instance of the renderer class will still hit me with the classic and all too familiar "can't use static method in non-static context"
    • Hello, I am learning how to create Multipart Entities and I tried creating a PartEntity based on the EnderDragonPart code. However, when I tested summoning the entity in the game, the PartEntity appeared at position x 0, y 0, z 0 within the game. I tried to make it follow the main entity, and after testing again, the part entity followed the main entity but seemed to teleport back to x 0, y 0, z 0 every tick (I'm just guessing). I don't know how to fix this can someone help me? My github https://github.com/SteveKK666/Forge-NewWorld-1.20.1/tree/master/src/main/java/net/kk/newworldmod/entity/custom Illustration  https://drive.google.com/file/d/157SPvyQCE8GcsRXyQQkD4Dyhalz6LjBn/view?usp=drive_link Sorry for my English; I’m not very good at it. 
    • its still crashing with the same message
  • Topics

  • Who's Online (See full list)

    • There are no registered users currently online
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.