Posted August 22, 201411 yr 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?
August 22, 201411 yr 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)
August 22, 201411 yr Author 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
August 22, 201411 yr Author After searching around I think HarvestDropsEvent might be a better choice as it gives me all needed information. The only question is how do I find out what tool was used?
August 22, 201411 yr Author Thank you! I already found it but could not update my post as the forum was somehow unavailable. :-)
August 22, 201411 yr I think the HarvestBlocksEvent fires after the block is already decided to break (i.e. finished mining). I don't think you can easily use this to make a block "harder" to mine. Check out my tutorials here: http://jabelarminecraft.blogspot.com/
August 22, 201411 yr Author 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(); } } } }
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.