Jump to content

[SOLVED] Give Player Item when one Item dropped in lava or exploded?


shadoskill

Recommended Posts

I am wanting to find a way to drop Items into lava and have dropped items exploded by TnT give the player a different Item.

So like If I drop Items A, B, and C into a lava block It will consume those 3 and give the player Item D, and If I drop Item A and explode it with TnT it will drop item B.

Link to comment
Share on other sites

You could maybe mess around with the ItemTossEvent, that might work. I'm not sure if ItemExpireEvent gets called when it /expires/ or just whenever the EntityItem dies.

 

Otherwise, you can do what I had to do a while back. Using the WorldTickEvent event, iterate through the event.world.loadedEntityList, if the entity is an instanceof EntityItem, do your checks (handleLavaMovement() is for lava), and if there are whatever other EntityItems of the type you want (EntityItem#getEntityItem and ItemStack#getItem), then remove the entities and spawn the one you want.

 

There probably is a better way to do it, but that's all I can think of right now :P

BEFORE ASKING FOR HELP READ THE EAQ!

 

I'll help if I can. Apologies if I do something obviously stupid. :D

 

If you don't know basic Java yet, go and follow these tutorials.

Link to comment
Share on other sites

I was actually wrong, you don't even need a custom Item, because EntityItem's track who threw them already (didn't know that, it's new in 1.7). So you can use func_145800_j on the Item to get the player who threw the Item, then you don't need a custom Item. Sorry for the wrong advice.

Yeah I ended up with a entity item didn't need to really check who threw it, onUpdate checking if its in lava and preventing it from taking damage, and attackEntityFrom i got TnT working etc.. Now just trying to figure why when I throw the Item it looks like a stone block and it doesn't arc and travel a distance like vanilla items.

Link to comment
Share on other sites

Did you register this entity class ?

 

this.itemIcon = iconRegister.registerIcon(Reference.MODID.toLowerCase() + ":" + (this.getUnlocalizedName().substring(5)));

And did you put your item texture in the correct lowercase folder ? Or is this unlocalized name set ?

 

Is your entity supposed to reduce another entity item stacksize if close-by ?

Link to comment
Share on other sites

In your constructor that takes the ItemStack you call the wrong super-constructor. For the "arc" of the Item you need to also copy the motion. I also suggestion copying delayBeforeCanPickup for less glitchy behavior when using /give.

Yeah the constructor was the cause of everything.. noob mistake there on my part. But everything is working now and I learned a few things that's all that matters!

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



×
×
  • Create New...

Important Information

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