Jump to content

Recommended Posts

Posted

This code here makes it so that cobblestone instead drops stone if they are wearing the specific pickaxe, however I have found out there's a glitch with this, when a creeper explodes (and the explosion hits the cobblestone) it crashes the game, does anyone know how to fix this?

@SubscribeEvent
public void addBlockDrop1(HarvestDropsEvent event) {
	if (event.state.getBlock() == Blocks.cobblestone) {
		ItemStack holding = event.harvester.inventory.getStackInSlot(event.harvester.inventory.currentItem);
		if (holding != null && holding.getItem() instanceof FirePickaxe) {
			event.drops.clear();
			event.drops.add(new ItemStack(Blocks.stone));
		}
	}
}

 

 

Here's my crash log:

 

 

  Reveal hidden contents

 

Posted

Before doing anything else, check to make sure the harvester is a player.

 

public void addBlockDrop1(HarvestDropsEvent event) {

if (!(event.harvester instanceof EntityPlayer)) return;

// Your Code

}

Posted

HarvestDropsEvent#harvester

is a field of type

EntityPlayer

, so it will always be a player.

 

It may be

null

, though; the doc comments of the event explain this.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Posted
  On 6/8/2016 at 1:02 PM, 61352151511 said:

Before doing anything else, check to make sure the harvester is a player.

 

public void addBlockDrop1(HarvestDropsEvent event) {

if (!(event.harvester instanceof EntityPlayer)) return;

// Your Code

}

 

Oh, I see that makes sense just I thought that it being an instanceof my pickaxe it would only work from using that and nothing else, but oh well, thank you. :)

Posted
  On 6/8/2016 at 1:30 PM, Choonster said:

HarvestDropsEvent#harvester

is a field of type

EntityPlayer

, so it will always be a player.

 

It may be

null

, though; the doc comments of the event explain this.

 

Ah, I wasn't aware as I didn't have the time to check, I just kind of guessed that this was the problem based on the error. However doing the instanceof check also makes sure it isn't null, so that should fix it either way.

Posted
  On 6/8/2016 at 1:34 PM, Recable said:

Oh, I see that makes sense just I thought that it being an instanceof my pickaxe it would only work from using that and nothing else, but oh well, thank you. :)

 

HarvestDropsEvent fires any time a block that drops an item does that.  Water breaking tall grass causes it to fire.

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.

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.