I'm trying to get an event where it harms the player when a certain block is broken, but it doesn't seem to work. Here is my main class and event. Sorry about the formatting, not used to using forums.
@Mod(modid = Reference.MOD_ID, name = Reference.NAME, version = Reference.VERSION, acceptedMinecraftVersions = Reference.ACCEPTED_VERSIONS)
public class FallDamageOre {
@Instance
public static FallDamageOre instance;
@SidedProxy(clientSide = Reference.CLIENT_PROXY_CLASS, serverSide = Reference.SERVER_PROXY_CLASS)
public static CommonProxy proxy;
@EventHandler
public void preInit(FMLPreInitializationEvent event)
{
System.out.println("Pre Initialization Phase");
RegistryHandler.preInitRegistries();
}
@EventHandler
public void init(FMLInitializationEvent event)
{
System.out.println("Initialization Phase");
I'm trying to get an event where it harms the player when a certain block is broken, but it doesn't seem to work. Here is my main class and event. Sorry about the formatting, not used to using forums.
package soii.fdo;
import net.minecraft.creativetab.CreativeTabs;
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 soii.fdo.handlers.OreHandler;
import soii.fdo.handlers.RegistryHandler;
import soii.fdo.init.ModItems;
import soii.fdo.init.ModSmeltingRecipes;
import soii.fdo.proxy.CommonProxy;
@Mod(modid = Reference.MOD_ID, name = Reference.NAME, version = Reference.VERSION, acceptedMinecraftVersions = Reference.ACCEPTED_VERSIONS)
public class FallDamageOre {
@Instance
public static FallDamageOre instance;
@SidedProxy(clientSide = Reference.CLIENT_PROXY_CLASS, serverSide = Reference.SERVER_PROXY_CLASS)
public static CommonProxy proxy;
@EventHandler
public void preInit(FMLPreInitializationEvent event)
{
System.out.println("Pre Initialization Phase");
RegistryHandler.preInitRegistries();
}
@EventHandler
public void init(FMLInitializationEvent event)
{
System.out.println("Initialization Phase");
MinecraftForge.EVENT_BUS.register(new OreHandler());
ModSmeltingRecipes.init();
}
@EventHandler
public void postInit(FMLPostInitializationEvent event)
{
System.out.println("Post Initialization Phase");
}
public static CreativeTabs tabFDO = new CreativeTabs("tab_fdo") {
@Override
public ItemStack getTabIconItem() {
return new ItemStack(ModItems.FDO_NUGGET);
}
};
}
package soii.fdo.handlers;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.DamageSource;
import net.minecraftforge.event.world.BlockEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import soii.fdo.init.ModBlocks;
public class OreHandler {
@SubscribeEvent
public static void onBreakEvent(BlockEvent.BreakEvent event) {
if(event.getState().getBlock() == ModBlocks.FDO_ORE)
{
EntityPlayer player = event.getPlayer();
player.attackEntityFrom(DamageSource.FALL, 1.0F);
}
}
}
You're registering an instance of your class, but the method in it is static, make the method an instance method (public
staticvoid).You use MCreator? Don't.