Posted October 17, 201212 yr Alright, so I have made many posts about how I could make a new ability on a pickaxe, and I found it! but the problem is that I do not know how to check what item is in your hand! Please tell me what I need to have for me to be able to access that command, and where I should put it: load() method, or another method that I would have to make? The Korecraft Mod
October 17, 201212 yr I think you need to put it in a class which mplements ITickHandler. http://www.minecraftforge.net/wiki/Tutorials/Upgrading_To_Forge_for_1.3.1#Ticking this should explain how to make a client ticker. then all you need to do is add a new method to the clientTicker. public Item getCurrentItemEquipped(EntityPlayer entityplayer) throws NullPointerException{ return entityplayer.inventory.getCurrentItem().getItem(); } and add this to the onTickInGame method: EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer; Item item = getCurrentItemEquipped(player); if(item != null){ if(item.shiftedIndex == "Your Item ID"){ //Perfom Action } } http://www.minecraftforum.net/topic/1937703-162smpforge-pet-mastery-hatch-level-battle/
October 17, 201212 yr Author alright, so I did that and now when I do it I added a method for the ability and one for the item, so the Console says Using item with ability ability ERROR MESSAGE 2012-10-17 15:50:56 [iNFO] [sTDOUT] MinecraftForge v4.0.0.200 Initialized Using item.AdvBloodstonePickaxe With Flame 2012-10-17 15:50:57 [iNFO] [sTDERR] java.lang.NullPointerException 2012-10-17 15:50:57 [iNFO] [sTDERR] at net.minecraft.src.RenderItem.doRenderItem(RenderItem.java:101) 2012-10-17 15:50:57 [iNFO] [sTDERR] at net.minecraft.src.RenderItem.doRender(RenderItem.java:415) 2012-10-17 15:50:57 [iNFO] [sTDERR] at net.minecraft.src.RenderManager.renderEntityWithPosYaw(RenderManager.java:188) 2012-10-17 15:50:57 [iNFO] [sTDERR] at net.minecraft.src.RenderManager.renderEntity(RenderManager.java:175) 2012-10-17 15:50:57 [iNFO] [sTDERR] at net.minecraft.src.RenderGlobal.renderEntities(RenderGlobal.java:434) 2012-10-17 15:50:57 [iNFO] [sTDERR] at net.minecraft.src.EntityRenderer.renderWorld(EntityRenderer.java:1037) 2012-10-17 15:50:57 [iNFO] [sTDERR] at net.minecraft.src.EntityRenderer.updateCameraAndRender(EntityRenderer.java:898) 2012-10-17 15:50:57 [iNFO] [sTDERR] at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:868) 2012-10-17 15:50:57 [iNFO] [sTDERR] at net.minecraft.client.Minecraft.run(Minecraft.java:761) 2012-10-17 15:50:57 [iNFO] [sTDERR] at java.lang.Thread.run(Unknown Source) 2012-10-17 15:51:07 [iNFO] [sTDOUT] Stopping! 2012-10-17 15:51:07 [iNFO] [sTDOUT] SoundSystem shutting down... 2012-10-17 15:51:07 [iNFO] [sTDOUT] Author: Paul Lamb, www.paulscode.com 2012-10-17 15:51:19 [iNFO] [sTDERR] Someone is closing me! Alright, so the code I have is: package korcraft; import net.minecraft.src.Block; import net.minecraft.src.EntityItem; import net.minecraft.src.EntityPlayer; import net.minecraft.src.EnumToolMaterial; import net.minecraft.src.InventoryPlayer; import net.minecraft.src.Item; import net.minecraft.src.ItemStack; import net.minecraft.src.ItemTool; import net.minecraft.src.Material; public class ItemPickaxe extends ItemTool { public static final Block[] blocksEffectiveAgainst = new Block[] {Block.cobblestone, Block.stoneDoubleSlab, Block.stoneSingleSlab, Block.stone, Block.sandStone, Block.cobblestoneMossy, Block.oreIron, Block.blockSteel, Block.oreCoal, Block.blockGold, Block.oreGold, Block.oreDiamond, Block.blockDiamond, Block.ice, Block.netherrack, Block.oreLapis, Block.blockLapis, Block.oreRedstone, Block.oreRedstoneGlowing, Block.rail, Block.railDetector, Block.railPowered}; public boolean canHarvestBlock(Block par1Block){ return par1Block == Block.obsidian ? this.toolMaterial.getHarvestLevel() == 3 : (par1Block != Block.blockDiamond && par1Block != Block.oreDiamond ? (par1Block == Block.oreEmerald ? this.toolMaterial.getHarvestLevel() >= 2 : (par1Block != Block.blockGold && par1Block != Block.oreGold ? (par1Block != Block.blockSteel && par1Block != Block.oreIron ? (par1Block != Block.blockLapis && par1Block != Block.oreLapis ? (par1Block != Block.oreRedstone && par1Block != Block.oreRedstoneGlowing ? (par1Block.blockMaterial == Material.rock ? true : par1Block.blockMaterial == Material.iron) : this.toolMaterial.getHarvestLevel() >= 2) : this.toolMaterial.getHarvestLevel() >= 1) : this.toolMaterial.getHarvestLevel() >= 1) : this.toolMaterial.getHarvestLevel() >= 2)) : this.toolMaterial.getHarvestLevel() >= 2); } public ItemPickaxe(int par1, EnumToolMaterial par2EnumToolMaterial){ super(par1, 2, par2EnumToolMaterial, blocksEffectiveAgainst); } public float getStrVsBlock(ItemStack par1ItemStack, Block par2Block){ return par2Block != null && (par2Block.blockMaterial == Material.iron || par2Block.blockMaterial == Material.rock) ? this.efficiencyOnProperMaterial : super.getStrVsBlock(par1ItemStack, par2Block); } public String getTextureFile() { return "/KorCraftTextures/Items.png"; } static String pickaxeAbility = ""; public void test(){ System.out.println("Working"); } /** * Ability Finder based on current item in inventory */ public static String getPickaxeAbility(EntityPlayer entityplayer){ if(entityplayer.inventory.getCurrentItem().getItem()==KorCraftBase.AdvBloodstonePick){ return "Flame"; }else if(entityplayer.inventory.getCurrentItem().getItem()==KorCraftBase.AdvDiopsidePick){ return "Speed"; }else if(entityplayer.inventory.getCurrentItem().getItem()==KorCraftBase.AdvKyanitePick){ return "Silktouch"; }else if(entityplayer.inventory.getCurrentItem().getItem()==KorCraftBase.AdvSapphirePick){ return "Fortune"; } return ""; } public boolean onBlockStartBreak(ItemStack itemstack, int x, int y, int z, EntityPlayer entityplayer) { String currentItem = entityplayer.inventory.getCurrentItem().getItemName(); String currentAbility = ItemPickaxe.getPickaxeAbility(entityplayer); System.out.println("Using " + currentItem + "\twith ability " + currentAbility); int getID = entityplayer.worldObj.getBlockId(x,y,z); //Finding block if(currentAbility == "Flame") { if (getID == Block.oreIron.blockID || getID == Block.oreGold.blockID || getID == Block.stone.blockID || getID == Block.wood.blockID) { EntityItem flamed = new EntityItem(null); if(getID == Block.oreIron.blockID) { flamed = new EntityItem(entityplayer.worldObj, x, y, z, new ItemStack(Item.ingotIron, 1, entityplayer.worldObj.getBlockMetadata(x, y, z))); flamed.delayBeforeCanPickup = 10; entityplayer.worldObj.spawnEntityInWorld(flamed); }else if(getID == Block.oreGold.blockID) { flamed = new EntityItem(entityplayer.worldObj, x, y, z, new ItemStack(Item.ingotGold, 1, entityplayer.worldObj.getBlockMetadata(x, y, z))); flamed.delayBeforeCanPickup = 10; entityplayer.worldObj.spawnEntityInWorld(flamed); }else if(getID == Block.stone.blockID) { flamed = new EntityItem(entityplayer.worldObj, x, y, z, new ItemStack(Block.stone, 1, entityplayer.worldObj.getBlockMetadata(x, y, z))); flamed.delayBeforeCanPickup = 10; entityplayer.worldObj.spawnEntityInWorld(flamed); }else if(getID == Block.wood.blockID) { flamed = new EntityItem(entityplayer.worldObj, x, y, z, new ItemStack(Item.coal.getMetadata(1), 1, entityplayer.worldObj.getBlockMetadata(x, y, z))); flamed.delayBeforeCanPickup = 10; entityplayer.worldObj.spawnEntityInWorld(flamed); } } return true; } return false; } } The Korecraft Mod
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.