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

Subscribe to the LivingDropsEvent event

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

  • Author

Is this supose to be 100% drop because it didnt drop my item

 

Code:

 

package wearethewarriorsmod;

 

import wearethewarriorsmod.item.ItemAncientsword;

import wearethewarriorsmod.item.ItemDragonsword;

import wearethewarriorsmod.item.ItemSwordofcorruptedsouls;

import wearethewarriorsmod.worldgen.souloreWG;

import net.minecraft.block.Block;

import net.minecraft.block.material.Material;

import net.minecraft.creativetab.CreativeTabs;

import net.minecraft.entity.boss.EntityWither;

import net.minecraft.entity.item.EntityItem;

import net.minecraft.init.Items;

import net.minecraft.item.Item;

import net.minecraft.item.ItemStack;

import net.minecraft.util.WeightedRandomChestContent;

import net.minecraftforge.common.ChestGenHooks;

import net.minecraftforge.common.util.EnumHelper;

import net.minecraftforge.event.entity.living.LivingDropsEvent;

import cpw.mods.fml.common.Mod;

import cpw.mods.fml.common.Mod.EventHandler;

import cpw.mods.fml.common.event.FMLInitializationEvent;

import cpw.mods.fml.common.event.FMLPostInitializationEvent;

import cpw.mods.fml.common.event.FMLPreInitializationEvent;

import cpw.mods.fml.common.eventhandler.EventPriority;

import cpw.mods.fml.common.eventhandler.SubscribeEvent;

import cpw.mods.fml.common.registry.GameRegistry;

 

@Mod(modid = "watwm", name = "We Are The Warriors Mod", version = "1.0")

 

 

public class WeAreTheWarriorsMod {

 

@SubscribeEvent(priority=EventPriority.NORMAL, receiveCanceled=true)

public void onEvent(LivingDropsEvent event)

{

    if (event.entity instanceof EntityWither)

    {

        // DEBUG

        System.out.println("EntityWither drops event");

        ItemStack itemStackToDrop = new ItemStack(itemcorruptedsoul, 1);

        event.drops.add(new EntityItem(event.entity.worldObj, event.entity.posX,

              event.entity.posY, event.entity.posZ, itemStackToDrop));

    }

}

 

//items

public static Item itemsoulshard;

public static Item itemcorruptedsoulgem;

public static Item itemdragonrod;

public static Item itemflamedust;

public static Item itemcorruptedsoul;

 

//Blocks

public static Block blocksoulore;

 

//swords

public static Item swordofcorruptedsouls;

public static Item dragonsword;

public static Item ancientsword;

 

public static final Item.ToolMaterial corruptedToolMaterial = EnumHelper.addToolMaterial("corruptedToolMaterial", 0, 200000, 1.0F, 45.0F, 100);

public static final Item.ToolMaterial dragonToolMaterial = EnumHelper.addToolMaterial("dragonToolMaterial", 0, 20000, 1.0F, 20.0F, 100);

public static final Item.ToolMaterial ancientToolMaterial = EnumHelper.addToolMaterial("ancientToolMaterial", 0, 100, 0.0F, 1.0F, 0);

 

    @EventHandler

    public void preInit(FMLPreInitializationEvent event) {

   

    //Items

itemsoulshard = new Itemsoulshard().setUnlocalizedName("Itemsoulshard").setTextureName("watwm:soul_shard").setCreativeTab(tabWeAreTheWarriorsMod);

    itemcorruptedsoulgem = new Itemcorruptedsoulgem().setUnlocalizedName("Itemcorruptedsoulgem").setTextureName("watwm:corrupted_soul_gem").setCreativeTab(tabWeAreTheWarriorsMod);

    itemdragonrod = new Itemdragonrod().setUnlocalizedName("Itemdragonrod").setTextureName("watwm:dragon_rod").setCreativeTab(tabWeAreTheWarriorsMod);

    itemflamedust = new Itemflamedust().setUnlocalizedName("Itemflamedust").setTextureName("watwm:flame_dust").setCreativeTab(tabWeAreTheWarriorsMod);

    itemcorruptedsoul = new itemcorruptedsoul().setUnlocalizedName("Itemcorruptedsoul").setTextureName("watwm:corrupted_soul").setCreativeTab(tabWeAreTheWarriorsMod);

   

    GameRegistry.registerItem(itemsoulshard, itemsoulshard.getUnlocalizedName().substring(5));

    GameRegistry.registerItem(itemcorruptedsoulgem, itemcorruptedsoulgem.getUnlocalizedName().substring(5));

    GameRegistry.registerItem(itemdragonrod, itemdragonrod.getUnlocalizedName().substring(5));

    GameRegistry.registerItem(itemflamedust, itemflamedust.getUnlocalizedName().substring(5));

    GameRegistry.registerItem(itemcorruptedsoul, itemcorruptedsoul.getUnlocalizedName().substring(5));

   

    //Blocks

    blocksoulore = new blocksoulore(Material.rock).setBlockName("Blocksoulore").setBlockTextureName("watwm:soul_ore").setCreativeTab(tabWeAreTheWarriorsMod);

   

    GameRegistry.registerBlock(blocksoulore, blocksoulore.getUnlocalizedName().substring(5));

   

    //Swords

    swordofcorruptedsouls = new ItemSwordofcorruptedsouls(corruptedToolMaterial).setUnlocalizedName("ItemSwordofcorruptedsouls").setTextureName("watwm:sword_of_corrupted_souls").setCreativeTab(tabWeAreTheWarriorsMod);

    dragonsword = new ItemDragonsword(dragonToolMaterial).setUnlocalizedName("ItemDragonsword").setTextureName("watwm:dragon_sword").setCreativeTab(tabWeAreTheWarriorsMod);

    ancientsword = new ItemAncientsword(ancientToolMaterial).setUnlocalizedName("ItemAncientsword").setTextureName("watwm:ancient_sword").setCreativeTab(tabWeAreTheWarriorsMod);

   

    GameRegistry.registerItem(swordofcorruptedsouls, swordofcorruptedsouls.getUnlocalizedName().substring(5));

    GameRegistry.registerItem(dragonsword, dragonsword.getUnlocalizedName().substring(5));

    GameRegistry.registerItem(ancientsword, ancientsword.getUnlocalizedName().substring(5));

   

    //Ores

    souloreWG worldgen1 = new souloreWG();

    GameRegistry.registerWorldGenerator(worldgen1, 1);

   

    //Recipes

    GameRegistry.addRecipe(new ItemStack(itemcorruptedsoulgem, 1), new Object[]{"AAA", "ABA", "AAA", Character.valueOf('A'), new ItemStack(itemsoulshard, 1, 0),Character.valueOf('B'), new ItemStack(itemcorruptedsoul, 1, 0)});

    GameRegistry.addRecipe(new ItemStack(itemflamedust, 1), new Object[] {" A ", "AAA", " A ", Character.valueOf('A'), new ItemStack(Items.blaze_rod, 1, 0)});

    GameRegistry.addRecipe(new ItemStack(itemdragonrod, 1), new Object [] {" A ", " A ", " A ", Character.valueOf('A'), new ItemStack(itemflamedust, 1, 0)});

    GameRegistry.addRecipe(new ItemStack(swordofcorruptedsouls, 1), new Object [] {" A ", " A ", " X ", Character.valueOf('A'), new ItemStack(itemcorruptedsoulgem, 1, 0), Character.valueOf('X'), Items.stick});

    GameRegistry.addRecipe(new ItemStack(dragonsword, 1), new Object [] {" A ", " A ", " X ", Character.valueOf('A'), new ItemStack(itemdragonrod, 1, 0), Character.valueOf('X'), Items.blaze_rod});

   

    //Custom Dungeon Loot

    ChestGenHooks.getInfo(ChestGenHooks.DUNGEON_CHEST).addItem(new WeightedRandomChestContent(new ItemStack(ancientsword),1,1,5));

}

@EventHandler

    public void postInit(FMLPostInitializationEvent event) {

    }

    public static CreativeTabs tabWeAreTheWarriorsMod = new CreativeTabs("tabWeAreTheWarriorsMod"){

    @Override

    public Item getTabIconItem(){

    return itemcorruptedsoulgem;

    }

   

    };

    }

 

 

No... You have the @SubscribeEvent annotation, you now need you actually register the event, there are tutorials on how to do this, and I believe you need a proxy for it.

 

MinecraftForge.EVENT_BUS.register(new YourEventClassName());

Remove that onEvent method from your WeAreTheWarriorsMod class, then create a new class called ForgeEventHandler (or something like that), and add the following method to it:

 

@SubscribeEvent

public void onLivingItemDropped(LivingDropsEvent event){}

 

You can handle the item drops in that method. Then in your @Mod class, create a new public static ForgeEventHandler object, then register it in your postInit method with MinecraftForge.EVENT_BUS.register(forgeEventHandler).

Potato's have skin. I have skin. Therefore, i am a potato.

 

Follow me on Twitter!

http://www.twitter.com/I_Mod_Minecraft

  • Author

I added this to the postInit:

 

MinecraftForge.EVENT_BUS.register(new EntityWither());

 

and it says "add argument to match "EntityWither(World)"" and I clicked on it and it adds a null, so I took it out but thats the only fix it says

MinecraftForge.EVENT_BUS.register() takes your event handler class as a parameter, not a Entity class. Handle the item drops in your newly created "onLivingItemDropped" method.

Potato's have skin. I have skin. Therefore, i am a potato.

 

Follow me on Twitter!

http://www.twitter.com/I_Mod_Minecraft

Create a class called "EventHandler". After that add this method:

 

@SubscribeEvent
public void onLivingDrop(LivingDropsEvent event) {
	if(event.entity instanceof EntityWither) {
		ItemStack itemStackToDrop = new ItemStack(itemcorruptedsoul, 1);
           event.drops.add(new EntityItem(event.entity.worldObj, event.entity.posX, event.entity.posY, event.entity.posZ, itemStackToDrop));
	}
}

 

Next, go into your main class and go into the init method and register your event handler:

 

@EventHandler //MAKE SURE YOU HAVE THIS ANNOTATION 
public void init(FMLInitializationEvent event) {
	MinecraftForge.EVENT_BUS.register(new EventHandler());
	FMLCommonHandler.instance().bus().register(new EventHandler()); //Only add this if your event doesn't fire with the first register.
}

 

Now go run your mod and see if it works. I encourage you to learn more about Java so you can have a understanding on how the game works. Don't go looking around for copy and paste code. Go on the wonderful journey of trial and error until you finally figure out your problem and smile at the accomplishment.

I am not a cat. I know my profile picture is sexy and amazing beyond anything you could imagine but my cat like features only persist in my fierce eyes. I might be a cat.

  • Author

thanks for that I will try to learn java more, at the moment i just find it a bit hard to understand how the say it in articles, im more a visual learner like from vids and stuff. havent seen if it works yet because :

}

    @EventHandler

    public void Init(FMLInitializationEvent event) {

    MinecraftForge.EVENT_BUS.register(new EventHandler());

    FMLCommonHandler.instance().bus().register(new EventHandler());

   

    }

The two EventHandlers in the brackets are underlined and say: cant Instintaite the type Mod.EventHandler

Did you import it? Also, you made EventHandler a separate class, right? If that is all true, then make sure you're registering your EventHandler CLASS and not the method.

I am not a cat. I know my profile picture is sexy and amazing beyond anything you could imagine but my cat like features only persist in my fierce eyes. I might be a cat.

  • Author

package wearethewarriorsmod;

 

import cpw.mods.fml.common.eventhandler.SubscribeEvent;

import net.minecraft.entity.boss.EntityWither;

import net.minecraft.entity.item.EntityItem;

import net.minecraft.item.ItemStack;

import net.minecraftforge.event.entity.living.LivingDropsEvent;

 

my EventHolder class:

 

public class EventHandler {

@SubscribeEvent

public void onLivingDrop(LivingDropsEvent event) {

if(event.entity instanceof EntityWither) {

ItemStack itemStackToDrop = new ItemStack(itemcorruptedsoul, 1);

          event.drops.add(new EntityItem(event.entity.worldObj, event.entity.posX, event.entity.posY, event.entity.posZ, itemStackToDrop));

}

}

}

Instead of doing "itemcorruptedsoul" do "yourmod.itemcorruptedsoul". Also, I suggest organizing classes into different packages.

I am not a cat. I know my profile picture is sexy and amazing beyond anything you could imagine but my cat like features only persist in my fierce eyes. I might be a cat.

If it won't show your item, make sure the item is static in the main mod class.

I am not a cat. I know my profile picture is sexy and amazing beyond anything you could imagine but my cat like features only persist in my fierce eyes. I might be a cat.

  • Author

Im sorry with my lack of knowledge with java, Im just starting with my first mod and im only 14, I thought it would be some fun and that I might be a ble to get some help but some people just judge and Im not someone that can just read a tutorial, im more a visual learner so thats why i find it a bit tough. but thank you to those that have helped, its very appreciated

I was in your position 3 years ago (I was 12) and, honestly a lot people expect you to know a good amount about Minecraft mod creation before posting. My first mod I just added everything I could think of. Might seem stupid but, it broadened my knowledge to a very far extent. Now I am creating a Java game just from trial and error. Keep going and never give up even when the going gets tough!

I am not a cat. I know my profile picture is sexy and amazing beyond anything you could imagine but my cat like features only persist in my fierce eyes. I might be a cat.

Just a note:

a lot people expect you to know a good amount about Minecraft mod creation before posting.

Java*, bro, Java.

 

As to other "never give up stuff" - true that.

1.7.10 is no longer supported by forge, you are on your own.

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.