Jump to content

Recommended Posts

Posted (edited)

Dear mcforge forums,

 

I recently started working on a machine that would clone an Entity, 

this is what ive got so far:

if(entity != null) {
	NBTTagCompound data = entity.writeToNBT(new NBTTagCompound());
	entity = EntityRegistry.instance().getEntry(entity.getClass()).newInstance(world);
	entity.readFromNBT(data);
	entity.setUniqueId(new UUID(entity.getUniqueID().getMostSignificantBits(), entity.getUniqueID().getLeastSignificantBits()));
	entity.setPositionAndUpdate(out.getX() + 0.5, out.getY(), out.getZ() + 0.5);
	if(!world.isRemote)
		world.spawnEntity(entity);
}

 

the whole Block:

https://hastebin.com/enudoligay.java

 

the block's base class:

https://hastebin.com/ujoleladof.java

 

but the problem is that i get this error in console:

Quote

[Server thread/WARN]: Keeping entity minecraft:zombie that already exists with UUID b557c578-f59d-44bb-a2c1-6d1f908b5a43

I tried adding a different UUID etc. i have debugged it but i couldn't find a way of cloning entities.

 

Thanks,

tebreca

Edited by tebreca
marked it solved
Posted (edited)
28 minutes ago, tebreca said:

new UUID(entity.getUniqueID().getMostSignificantBits(), entity.getUniqueID().getLeastSignificantBits())

"Hey, give me a new UUID, here's the current one that I want you to construct the new one from"

And then you complain in surprise when they match.

Edited by Draco18s

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Posted (edited)

What do you want to do? if you CLONE an Entity , they would be in the same place in eachother , do the same walk and the same things. They would go to the same Cords on the same time.

I think you would NOT even see the secound one. 

 

Try to create a NEW Entity with the same conditions.

 

Edited by NextInima
Posted (edited)
12 hours ago, Draco18s said:

"Hey, give me a new UUID, here's the current one that I want you to construct the new one from"

And then you complain in surprise when they match.

Alright my bad, i should've taken a deeper look into the UUID's

 

35 minutes ago, diesieben07 said:
  • I don't think you understand the unique part of Universally unique identifier (UUID). They must be unique, otherwise they are not UUIDs. So no, you can't have two entities with the same UUID.
  • You must use Entity::writeToNBTOptional and EntityList.createEntityFromNBT only to interact with entity NBT. Do not use any other methods.
  • After reading the entity call Entity::setUniqueId with a random UUID (Use MathHelper.getRandomUUID instead of UUID.randomUUID as the latter uses a secure random generator, which is slower and not needed here).

Thanks! that will definetly help me.

 

9 hours ago, NextInima said:

What do you want to do? if you CLONE an Entity , they would be in the same place in eachother , do the same walk and the same things. They would go to the same Cords on the same time.

I think you would NOT even see the secound one. 

 

Try to create a NEW Entity with the same conditions.

 

Im sorry but if you've seen my code you should've known that im using EntityLivingBase.

I don't know what entity im cloning, neither am i going to check that as i would lose compatability with entities not inside my mod building workspace.

And if i did call the constructor of it,  i would make a EntityLivingBase object. Which i can't upcast to the original entity object type.

 

Also EntityLivingBase is abstract.

Thanks for trying to help me atleast.

But please get your facts straight,

i literally made a new object and was trying to pass the same NBT in it, that would affect the position but i could move it, as i did do and the other entity wouldn't move with it as its AI is created at the object-specific method for AI.

Edited by tebreca

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



×
×
  • Create New...

Important Information

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