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

In the past, i'm used to working with 1.6 and 1.7, using mcp standalone, without forge. I have some basic understanding of how forge works, and most of my issues so far have been with the lack of documentation regarding forge classes and events and stuff not being up-to-date in the slightest. (most documentation seems to have been last updated several years ago.)

 

What i want to do:

 

Make blocks drop multiple different (non-block) items based on the tools they were harvested with.

 

(ex. toolA drops 4 of object A, toolB drops 4 of object B.)

 

There are like seventeen 'onharvest' 'onharvestbyplayer' 'onblockbreak' 'onblockharvest' and similar methods that all appear synonymous with eachother. In the past, i've been able to just go to minecraft.block or whatever and read the code, in order to understand what the methods are each used for. But this seems to have been made impossible with forge.

There's nothing stopping you from reading the Minecraft and Forge code in your IDE if you've set up your workspace correctly. This page explains how to do that.

 

In most cases, you can override

Block#getDrops

(or the vanilla methods called by it) to control the drops of a block; but this doesn't give you access to the player who broke the block or the tool they used to break it.

 

The best way to have drops vary based on the tool used to break the block is probably to subscribe to

BlockEvent.HarvestDropsEvent

, check the block is yours, check which tool the player is holding and add the appropriate drops to the event's drop list.

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.

There's also

public boolean removedByPlayer(IBlockState state, World world, BlockPos pos, EntityPlayer player, boolean willHarvest)

or

public void harvestBlock(World worldIn, EntityPlayer player, BlockPos pos, IBlockState state, @Nullable TileEntity te, @Nullable ItemStack stack)

?

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.

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.