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 1.7 I had an item called "Lunchbox" which you could put in a crafting table with food items to fill up. You could then "eat" the lunchbox in order to take some food stored from it. In my item class the onEaten method from Item was overridden, in 1.8 however the onFoodEaten method is in the ItemFood class so I decided to switch to onItemUseFinish (Changing to extending ItemFood would cause more problems for me)

 

This is the method I have

@Override public ItemStack onItemUseFinish(ItemStack stack, World world, EntityPlayer player) {
	int PlayerFood = player.getFoodStats().getFoodLevel();
	if (PlayerFood < 20) {
		float StoredFoodA = 0F;
		if (stack.getTagCompound() == null) {
			stack.setTagCompound(new NBTTagCompound());
		}
		try {
			StoredFoodA = stack.getTagCompound().getFloat("Food_Stored");
		} catch (NullPointerException e) {
			StoredFoodA = 0F;
		}
		int StoredFood = (int) Math.floor(StoredFoodA);
		int FoodToGive = 20 - PlayerFood;
		LogHelper.warn("*****");
		LogHelper.warn(StoredFood + "Food Stored");
		LogHelper.warn(FoodToGive + "FTG");
		if (FoodToGive > StoredFood) {
			LogHelper.warn("Exceeds stored food");
			FoodToGive = StoredFood;
			LogHelper.warn(FoodToGive + "FTG");
		}
		LogHelper.warn("*****");
		player.getFoodStats().addStats(PlayerFood + FoodToGive, FoodToGive > 0 ? 20F : 0F);
		stack.getTagCompound().setFloat("Food_Stored", StoredFood - FoodToGive);
	}
	return stack;
}

 

In the console this is spit out after "eating" once

[08:17:54] [server thread/WARN] [RandomUtilities]: *****
[08:17:54] [server thread/WARN] [RandomUtilities]: 12Food Stored
[08:17:54] [server thread/WARN] [RandomUtilities]: 20FTG
[08:17:54] [server thread/WARN] [RandomUtilities]: Exceeds stored food
[08:17:54] [server thread/WARN] [RandomUtilities]: 12FTG
[08:17:54] [server thread/WARN] [RandomUtilities]: *****
[08:17:54] [Client thread/WARN] [RandomUtilities]: *****
[08:17:54] [Client thread/WARN] [RandomUtilities]: 12Food Stored
[08:17:54] [Client thread/WARN] [RandomUtilities]: 20FTG
[08:17:54] [Client thread/WARN] [RandomUtilities]: Exceeds stored food
[08:17:54] [Client thread/WARN] [RandomUtilities]: 12FTG
[08:17:54] [Client thread/WARN] [RandomUtilities]: *****

 

Any help appreciated

  • Author

That makes sense. Should have looked harder, however what I can't figure out is why the hunger is being overfilled then... I'll have to check that out, thanks for pointing that out.

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.