Jump to content

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


Recommended Posts

Posted

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.

Posted

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.

Posted

So I managed to get it working with tnt or lava yay! The only issues are, It looks like stone, doesn't get consumed and when I toss it it goes straight up and doesn't arc like normal items.

Posted

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.

Posted

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 ?

Posted

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!

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.