Jump to content

Trying to make wood be unbreakable by hand unless right tools


Mr.sKrabs

Recommended Posts

I've been going around attemping to make wood unbreakable by hand unless you have some sort of the basics axe including wood.

Its around 10 hours on the subject and my brain is exploading,I've hoped some of you guys can help me figure out how to do it.

and guide me :(

Link to comment
Share on other sites

In the vanilla class? i do not want to overwrite plus it protected,and i do not know what the heck to write what class to create i am new to modding and simply telling me what to do makes me understand but wont let me in anyway make me know what to do writing-wise,creating-wise

Link to comment
Share on other sites

Okay in my case I need the most used Event handler?

MinecraftForge.EVENT_BUS?

 

To determine which bus an event is fired on, look at its doc comment or use your IDE's Find Usages/Call Hierarchy feature.

 

In this case, all the events you need are fired on MinecraftForge.EVENT_BUS.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

Okay,I successfuly did the Event Handler thing, now i need to write the line of code that makes the wood not give items.

Now I have a question i need the exact same handler Forge for another thing,I want to make so it drops twigs from leaves

and so i need to use an event

 

I've tried this but I only got error in the if event.block

https://gist.github.com/anonymous/2fb367a5f8f97cfbbf50

 

My question is do i need to make multiple event handlers?.

Link to comment
Share on other sites

You can either subscribe to the event multiple times or subscribe to it once and check for each condition.

 

BlockEvent and the events that extend from it don't have a block field in 1.8, they have a state field (of type IBlockState) instead. Use IBlockState#getBlock to get the Block.

 

Your IDE should bring up a list of fields and methods when you type a dot after a variable. You should also be able to view the source of any Minecraft/Forge class in your IDE to see which fields and methods it has.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

package com.drunksmanknife.harshnature;

 

import com.drunksmanknife.harshnature.init.HarshNatureItems;

 

import net.minecraft.init.Blocks;

import net.minecraft.init.Items;

import net.minecraft.item.ItemStack;

import net.minecraft.util.EnumChatFormatting;

import net.minecraftforge.event.world.BlockEvent;

import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;

 

 

public class HNEventHandler {

 

@SubscribeEvent

public void onBlockDropItems(BlockEvent.HarvestDropsEvent event) {

 

if (event.state == Blocks.leaves) {

 

ItemStack stack = new ItemStack(HarshNatureItems.Twigs, 2);

event.drops.add(stack);

}

}

}

 

crashes my minecraft when i try to load it

https://gist.github.com/anonymous/983603b5a7a0ecb5d4a0

 

Link to comment
Share on other sites

event.state is an IBlockState object. It will never be equal to a Block object like Blocks.leaves. Use the method I described in my previous post to get the Block from the IBlockState.

 

java.lang.NullPointerException: Initializing game

at com.drunksmanknife.harshnature.init.HarshNatureItems.register(HarshNatureItems.java:46)

at com.drunksmanknife.harshnature.HarshNature.preInit(HarshNature.java:43)

 

Your crash has nothing to do with this class, the exception is being thrown on line 46 of HarshNatureItems. Post that class on Gist and link it here.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

You didn't post the class where the crash is happening (HarshNatureItems).

 

For future reference, you can add multiple files to a single Gist and give each file the proper extension to enable syntax highlighting.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

Are you still comparing

event.state

directly to a

Block

, or have you fixed that? If you've fixed it, post the latest

HNEvents

code on Gist with syntax highlighting (give the file the .java extension).

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

That should work for Oak, Spruce, Birch and Jungle leaves (

Blocks.leaves

); but it won't work for Acacia, Dark Oak (

Blocks.leaves2

) or any modded leaves.

 

You should use

Block#isLeaves

to determine if the

Block

is a leaves block.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

I have a working solution here.

 

The

BreakSpeed

handler should prevent a log from being broken by a player without the correct tool (the block will never actually start to break, like bedrock), but if that somehow fails the

BreakEvent

handler will revert the block to its original state when broken.

 

If you only cancel

BreakEvent

, the player will appear to be able to break the block and the block breaking particles will be spawned; but the block will revert to its original state immediately after it's broken.

 

I haven't tested this in every possible situation, so I can't guarantee that it will always work.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

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...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.