Jump to content

[1.7.10] Changing the harvest level of oak wood


DrD

Recommended Posts

It's me again. I have the following line in my code.

 

Blocks.log.setHarvestLevel("axe", 1);

 

The idea is that oak and birch trees are harder to mine than other wood logs because in real life they are harder as for example spruce or akacia trees. Therefor I want to add a function that only changes oak and birch logs to a higher harvest level. If you don't have the needed harvest level it drops nothing. That's what happens if you mine stone per hand.

 

The code has two problems:

 

1.) Here I change all wood logs. How do I add the metadata 0 to change only the oak wood? Is that possible without adding a new block to the game?

 

2.) The block is still mineable by hand and a pickaxe seems to be recognized as a valid tool as it breaks the wood faster. How do I change that?

Link to comment
Share on other sites

you may be able to use the event

PlayerEvent.BreakSpeed

to achieve what you want

 

something to consider, most of the trees are oak and birch,  so how do you get wood to make an axe , if you cant find any other trees within a few thousand meters (think about large biomes)

 

Link to comment
Share on other sites

Thank you, I will look at it. There will be some custom trees (Natura/BoP) so the risk is not that bigger than in vanilla minecraft where you can also spawn in a desert with no trees around. But the general idea is to make minecraft a lot harder to play so I do not care about the risk. :-D

Link to comment
Share on other sites

I don't want to make the block harder. I want it to be unharvestable by hand. This does exactly, what I want:

 

@SubscribeEvent
public void onHarvestDropsEvent(HarvestDropsEvent event)
{
// Oak Wood logs
if(event.block.toString().contains("net.minecraft.block.BlockOldLog") && event.blockMetadata == 0)
{
	// Mined by a player
	if(event.harvester != null)
	{
		// Get the current tool of the player
		if(event.harvester.getCurrentEquippedItem() != null)
		{
			String tool = event.harvester.getCurrentEquippedItem().toString();

			// No TiCo Tools => no oak
			if(!tool.contains("item.InfiTool.Axe") && !tool.contains("item.InfiTool.LumberAxe") && !tool.contains("item.InfiTool.Battleaxe") && !tool.contains("item.InfiTool.Mattock"))
			{
				// Delete all drops
				event.drops.clear();
			}
		}
		else
		{
			// Delete all drops
			event.drops.clear();
		}
	}
}
}

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.