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 recently added a config to my mod to make an item drop only when silk touched. The config works.

The silk touch doesn't. Whether I am using a Silk Touch pick or a normal one the HarvestDropsEvent.isSilkTouching is always false.

From looking at calls to post a new HarvestDropsEvent, it looks like the game is only passing true to the isSilkTouching if the block could normally be silk touched.

 

I need to be able to tell if a BlockMobSpawner is silk touched or not.

 

My current SubscribeEvent looks like this:

 

@SubscribeEvent
public void onBlockDrops(HarvestDropsEvent event)
{
	if (event.block instanceof BlockMobSpawner)
	{
            System.out.println("BlockMobSpawner broken");
            if (ConfigurationHandler.spawnerDropRequireSilk)
            {
                System.out.println("spawnerDropRequireSilk");
                if (event.isSilkTouching)
                {
                    System.out.println("isSilkTouching");
                    event.drops.add(new ItemStack(SCBlocks.mobCage, 1));
                } else {
                    System.out.println("isntSilkTouching");
                }
            }
            else
            {
                System.out.println("spawnerDropDoesntRequireSilk");
                event.drops.add(new ItemStack(SCBlocks.mobCage, 1));
            }
	}
}

 

My full mod can be found here: https://github.com/CAD97/SpawnerCraft

 

I am using forge 1.7.10-10.13.0.1188

  • Author

It took me a while to find, but I got it.

 

I'd looked before for the solution you suggested, jabelar, by going through the event.harvester options, but not found it.

 

Looking at the stacktrace for event.isSilkTouching, though, I was able to find the call required:

EnchantmentHelper.getSilkTouchModifier(event.harvester)

.

 

Looking more at isSilkTouching it does only seem to be true for silktouch-able blocks.

Guest
This topic is now closed to further replies.

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.