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.



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Please share a link to your crash report on https://paste.ee, as explained in the FAQ. Dumping it directly into the thread often triggers the anti-spam and makes it hard to read due to word wrapping
    • Hi all, I'm running a 1.20.1 Minecraft Forge server with a hosting website and something seems to have gone wrong. It started as an occasional crash that has now become extremely frequent and I don't know what exactly is causing it. I already tried disabling watchdog but the server crashes anyway. Oddly it only occasionally generates a crash report after a crash occurs. Based on viewing the server console's research usage it seems that the CPU spikes astronomically high (100% usage), especially when chunks are being loaded or when a new person joins the server. I downloaded Spark to create a profile (https://spark.lucko.me/bBlWe7ou29) but I lack experience with this mod and don't understand what I'm looking at/how this should help me diagnose the issue. I am using a lot of mods so I'm guessing there is some sort of issue there or a corrupted chunk (although MCRF found no chunk errors). We actually don't experience any lag until the crash occurs, so it's some sort of sudden spike in resource usage. Based on the crash report I've already tried removing Canary and Modernfix but there was no change. Thanks for any help you can provide. Specs:  4 cores x 4200MHz AMD Ryzen 9 5950X 4GB RAM Crash report:  
    • will test that once i get home, thanks
    • I am getting this exception (I am new and just trying to create an item) Caused by: java.io.FileNotFoundException: abrasmagics:models/item/ingot_test.json at net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadableResourceManager.java:69) ~[SimpleReloadableResourceManager.class:?] at net.minecraft.client.renderer.block.model.ModelBakery.loadModel(ModelBakery.java:334) ~[ModelBakery.class:?] at net.minecraftforge.client.model.ModelLoader.access$1400(ModelLoader.java:115) ~[ModelLoader.class:?] at net.minecraftforge.client.model.ModelLoader$VanillaLoader.loadModel(ModelLoader.java:861) ~[ModelLoader$VanillaLoader.class:?] at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:157) ~[ModelLoaderRegistry.class:?]   However the directory is set up correctly and the file does exist   idk how to upload images so here is a treeview of the directories:   src ├───main │ ├───java │ │ └───net │ │ └───abrasmods │ │ └───abrasmagics │ │ ├───init │ │ ├───items │ │ └───utils │ │ ├───handlers │ │ ├───misc │ │ └───proxy │ └───resources │ └───assets │ └───abrasmagics │ ├───models │ │ ├───block │ │ └───item │ └───textures └───test ├───java └───resources   the file ingot_test.json is under models/item. The directory seems fine and the file does exist so anyone plz help.   i am using intellij and is coding for 1.12.2
  • Topics

×
×
  • Create New...

Important Information

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