Posted March 25, 201510 yr I've looked around and I cant seem to find any code on how to add a drop to a vanilla mob. The Creator of the We Are The Warriors Mod https://scontent-sjc.xx.fbcdn.net/hphotos-xpf1/v/t1.0-9/10985858_1068047526542843_8233581795453767454_n.png?oh=aad9679e5ae8470bbd9a58236c0e391b&oe=55AAFDC7[/img]
March 25, 201510 yr 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.
March 25, 201510 yr Author how do I do that.(Im only a beginer with my first mod) The Creator of the We Are The Warriors Mod https://scontent-sjc.xx.fbcdn.net/hphotos-xpf1/v/t1.0-9/10985858_1068047526542843_8233581795453767454_n.png?oh=aad9679e5ae8470bbd9a58236c0e391b&oe=55AAFDC7[/img]
March 25, 201510 yr I have a tutorial on this here: http://jabelarminecraft.blogspot.com/p/minecraft-forge-172-changing-drops-for.html Check out my tutorials here: http://jabelarminecraft.blogspot.com/
March 25, 201510 yr 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; } }; } The Creator of the We Are The Warriors Mod https://scontent-sjc.xx.fbcdn.net/hphotos-xpf1/v/t1.0-9/10985858_1068047526542843_8233581795453767454_n.png?oh=aad9679e5ae8470bbd9a58236c0e391b&oe=55AAFDC7[/img]
March 25, 201510 yr No that won't work because you never registered your event handler, take a look at http://jabelarminecraft.blogspot.ca/p/minecraft-forge-172-event-handling.html to see how to do proxys and event registration.
March 25, 201510 yr Author so do i just put in @EventHandler somewhere like at the top The Creator of the We Are The Warriors Mod https://scontent-sjc.xx.fbcdn.net/hphotos-xpf1/v/t1.0-9/10985858_1068047526542843_8233581795453767454_n.png?oh=aad9679e5ae8470bbd9a58236c0e391b&oe=55AAFDC7[/img]
March 25, 201510 yr Author or is it one like LivingDeathEvent The Creator of the We Are The Warriors Mod https://scontent-sjc.xx.fbcdn.net/hphotos-xpf1/v/t1.0-9/10985858_1068047526542843_8233581795453767454_n.png?oh=aad9679e5ae8470bbd9a58236c0e391b&oe=55AAFDC7[/img]
March 25, 201510 yr 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());
March 25, 201510 yr or is it one like LivingDeathEvent Did you really not see my post above where I link you to a tutorial specifically about how to change drops for vanilla entities? Check out my tutorials here: http://jabelarminecraft.blogspot.com/
March 25, 201510 yr 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
March 26, 201510 yr 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 The Creator of the We Are The Warriors Mod https://scontent-sjc.xx.fbcdn.net/hphotos-xpf1/v/t1.0-9/10985858_1068047526542843_8233581795453767454_n.png?oh=aad9679e5ae8470bbd9a58236c0e391b&oe=55AAFDC7[/img]
March 26, 201510 yr 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
March 26, 201510 yr Author is this correct for making the method: public static int onLivingItemDropped(int a, int b) { return b; } and if it is how do I edit the drops The Creator of the We Are The Warriors Mod https://scontent-sjc.xx.fbcdn.net/hphotos-xpf1/v/t1.0-9/10985858_1068047526542843_8233581795453767454_n.png?oh=aad9679e5ae8470bbd9a58236c0e391b&oe=55AAFDC7[/img]
March 26, 201510 yr Author if anyone can help then please do. thanks The Creator of the We Are The Warriors Mod https://scontent-sjc.xx.fbcdn.net/hphotos-xpf1/v/t1.0-9/10985858_1068047526542843_8233581795453767454_n.png?oh=aad9679e5ae8470bbd9a58236c0e391b&oe=55AAFDC7[/img]
March 26, 201510 yr 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.
March 26, 201510 yr 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 The Creator of the We Are The Warriors Mod https://scontent-sjc.xx.fbcdn.net/hphotos-xpf1/v/t1.0-9/10985858_1068047526542843_8233581795453767454_n.png?oh=aad9679e5ae8470bbd9a58236c0e391b&oe=55AAFDC7[/img]
March 26, 201510 yr 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.
March 26, 201510 yr 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)); } } } The Creator of the We Are The Warriors Mod https://scontent-sjc.xx.fbcdn.net/hphotos-xpf1/v/t1.0-9/10985858_1068047526542843_8233581795453767454_n.png?oh=aad9679e5ae8470bbd9a58236c0e391b&oe=55AAFDC7[/img]
March 26, 201510 yr Author but the itemcorruptedsoul wont link with my itemcorruptedsoul in my main class or item class The Creator of the We Are The Warriors Mod https://scontent-sjc.xx.fbcdn.net/hphotos-xpf1/v/t1.0-9/10985858_1068047526542843_8233581795453767454_n.png?oh=aad9679e5ae8470bbd9a58236c0e391b&oe=55AAFDC7[/img]
March 26, 201510 yr 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.
March 26, 201510 yr 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.
March 26, 201510 yr 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 The Creator of the We Are The Warriors Mod https://scontent-sjc.xx.fbcdn.net/hphotos-xpf1/v/t1.0-9/10985858_1068047526542843_8233581795453767454_n.png?oh=aad9679e5ae8470bbd9a58236c0e391b&oe=55AAFDC7[/img]
March 26, 201510 yr 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.
March 26, 201510 yr 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.