qpwoeiruty
Members-
Posts
159 -
Joined
-
Last visited
Everything posted by qpwoeiruty
-
Hi to pretty much complete the first version of my mod, I require a way to make it so the when the player breaks a leaf block it drops a stick. Everywhere I have looked previously has supplied me with very contrasting information and so I thought I would try here as all the topics I have previously read have been very useful. Any help at all would great, thanks.
-
I can't thank you all enough, this has been bugging me for a while and to finally get to a stage where the basics actually work is fantastic. Is there a simpler way than listing every single block to only have select blocks able to be broken, as I could just list every block but it would be very inefficient. Edit: This does work (just listing all the blocks I want) so it is technically solved but anyone with any better ideas feel free to post them.
-
Thanks for the very detailed explanation, I understand far better what a NullPointerException is now, however, how to fix it is still quite confusing as I am trying to take in a lot of new information at once. Would have to somewhere say that getCurrentEquippedItem() != null then, or have I misunderstood?
-
Hahaha yeah, both are working, but I am now getting a crash when I try and break a block with my fist but everything else works great. I believe it may have something to do with this error... FML has detected a mod that is using a package name based on 'net.minecraft.src' : net.minecraft.src.FMLRenderAccessLibrary. This is generally a severe programming error. There should be no mod code in the minecraft namespace. MOVE YOUR MOD! If you're in eclipse, select your source code and 'refactor' it into a new package. Go on. DO IT NOW! ...which sounds fairly bad, however I don't believe I am using a package based on 'net.minecraft.src' so I am confused. Edit: Actually I don't think it does as when I remover the MinecraftForge.EVENT_BUS.register(new WSPEventHandler()); everything works fine, so I now I believe it is something to do with this line: if(ForgeHooks.isToolEffective(event.entityPlayer.getCurrentEquippedItem(), event.block, event.metadata)) { Its within this class: package com.willr27survivalplus.handler; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraftforge.common.ForgeHooks; import net.minecraftforge.event.entity.player.PlayerEvent; import net.minecraftforge.event.world.BlockEvent; import cpw.mods.fml.common.eventhandler.SubscribeEvent; public class WSPEventHandler { @SubscribeEvent public void setBreakSpeed(PlayerEvent.BreakSpeed event) { if(ForgeHooks.isToolEffective(event.entityPlayer.getCurrentEquippedItem(), event.block, event.metadata)) { event.setCanceled(true); } else { event.setCanceled(false); } } }
-
Now the problem arises that they can't break blocks when they nothing in their hand but they can say if they had a dirt block. So would I have to specify which blocks can be used with which tools? As in if the block they are mining equals stone and if they have a diamond pickaxe, allow them to break it.
-
Alright will do thanks... I am using this and don't really understand whats wrong with it: private boolean objectInHand = true; @SubscribeEvent public void objectInHand(EntityPlayer event) { if(event.getCurrentEquippedItem() != null) { objectInHand = false; } } @SubscribeEvent public void setBreakSpeed(PlayerEvent.BreakSpeed event) { if(objectInHand = false) { event.setCanceled(true); } else { event.setCanceled(false); } }
-
Wow, thanks again for another quick reply, I will try that out now... Well that was certainly one step in the right direction something is actually happening; the player can no longer break any blocks. However, they can't break any blocks with tools either which is not exactly what I wanted. Considering I entered one line of code inside my method I'm sure there is a way around this. @SubscribeEvent public void setBreakSpeed(PlayerEvent.BreakSpeed event) { event.setCanceled(true); }
-
Firstly, thanks for the fast reply, but I am quite new to modding and events seem to be something I cannot get my head round. Could you show me how I would go about this as I have tried some events before and couldn't get them working. Sorry if this is really simple, I just have a poor understanding of events.
-
I am trying to create a mod that makes the game more challenging, and so I would like to be able to remove the feature in vanilla Minecraft that allows the player to harvest wood through the power of their fist. However, I am not entirely sure how this would be possible as everywhere I looks seems to lead me back to changing the harvest level of the vanilla blocks, but this doesn't seem to do anything or I cannot get it working correctly. So I am wondering if anyone knew how this could be done, or could link me to any useful sources. If so this would be highly appreciated, thanks.