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

Posted

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 :(

use break speed and harvestdrops event.

in break speed divide the speed by a specific amount ( i think vanilla is using 5..?)

 

in harvest drops clear the list if the block is wood and the equipped item isnt an axe

  • Author

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

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.

  • Author

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

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.

  • Author

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

 

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.

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.

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.

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.

  • Author

Thank you so much!!! :D

Now i'm kinda new but I want to make as i said wood unpunchable

I sort of understood i need to do it with events,can you guide me step by step what to do? its my first time changing vanilla block.

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.

  • Author

I love you so much!!! :D

You've helped me alot Works!.

I made another event for this class in my main class and it worked!

 

Please lock this topic and i hope if anyone is wandering how to do it here is the solution :D

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.