Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

Hello everyone,

my problem right now is that I simply want to change the tool u need to harvest iron ore. So normally you need a stone pickaxe to mine iron and you are good to go. I want to add some more tools, and decided to set the harvestLevel of iron to 3. Which means that normally you should not be able to mine it with stone. Bad news: I can still mine it with stone.

Am I missing something totally retarded?

 

Part of my Init method, and yes it is beeing called, since a syso on getHarvestTool gives me pickaxe and getHarvestLevel gets me 3.

 Blocks.iron_ore.setHarvestLevel("pickaxe", 3); 

  • Author
package de.failender.basewars;

import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.Mod.Instance;
import net.minecraftforge.fml.common.SidedProxy;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.event.FMLServerStartingEvent;
import net.minecraftforge.fml.common.network.NetworkRegistry;
import net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper;
import net.minecraftforge.fml.common.registry.GameRegistry;
import de.failender.basewars.items.Modules;
import de.failender.basewars.network.NetworkHandler;
import de.failender.basewars.proxies.CommonProxy;
import de.failender.basewars.tileentities.TileEntityBase;
import de.failender.basewars.util.BaseHandler;
import de.failender.basewars.util.BaseUtils;
import de.failender.basewars.util.GuiHandler;


@Mod(version=BaseWars.VERSION, name=BaseWars.NAME , modid = BaseWars.MODID)
public class BaseWars {

public static final String NAME ="Base Wars";
public static final String VERSION ="0.1";
public static final String MODID = "basewars";

public static final short BASEGUIID = 0;
public static final short FURNACESID=2;
public static final short BASEFURNACEID=1;

public static CreativeTabs baseWarTab = new CreativeTabs("basewartab") {

	@Override
	public Item getTabIconItem() {
		return Item.getItemFromBlock(BaseWarBlocks.base);
	}
};


@SidedProxy(clientSide="de.failender.basewars.proxies.ClientProxy", serverSide="de.failender.basewars.proxies.CommonProxy")
public static CommonProxy proxy;

@Instance
public static BaseWars instance;

@EventHandler
public void preInit(FMLPreInitializationEvent event)
{
	NetworkHandler.initialize();
}

@EventHandler
public void Init(FMLInitializationEvent event)
{
	BaseWarBlocks.register();
	BaseWarItems.register();
	Modules.finishStartup();
	GameRegistry.registerTileEntity(TileEntityBase.class, "tileentitybase");
	BaseUtils.RemoveRecipe(new ItemStack(Items.stone_pickaxe));

	GameRegistry.addShapedRecipe(new ItemStack(Items.stone_pickaxe), "TTT"," S "," S ", 'S', Items.stick, 'T', Blocks.stone);

	Blocks.iron_ore.setHarvestLevel("pickaxe", 3);
	System.out.println(Blocks.iron_ore.getHarvestLevel(Blocks.iron_ore.getDefaultState()));

	proxy.registerRenderer();

	NetworkRegistry.INSTANCE.registerGuiHandler(instance, new GuiHandler());
	MinecraftForge.EVENT_BUS.register(new BaseHandler());
}

@EventHandler
public void postInit(FMLPostInitializationEvent event)
{

}
}

Hi

 

This link talks more about mining blocks.

http://greyminecraftcoder.blogspot.ch/2015/01/mining-blocks-with-tools.html

 

When you say "I can still mine it with stone." do you mean

a) "The block breaks when I stone pickaxe it"

or

b) "The block breaks when I stone pickaxe it, and gives me ore".

 

setHarvestLevel should stop (b) but not (a)

 

-TGG

Do you think it might be possible that vanilla blocks are setting their information after Init? That is the only think I can think of that could be causing this.

  • 1 month later...

If you suspect that the vanilla blocks are setting their info after init, then wouldn't you want to move yours to postInit (not preInit)?

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...

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.