--- a/net/minecraft/world/inventory/FurnaceResultSlot.java
+++ b/net/minecraft/world/inventory/FurnaceResultSlot.java
@@ -7,6 +7,7 @@
 import net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity;
 
 public class FurnaceResultSlot extends Slot {
+
     private final Player player;
     private int removeCount;
 
@@ -23,7 +24,7 @@
     @Override
     public ItemStack remove(int amount) {
         if (this.hasItem()) {
-            this.removeCount = this.removeCount + Math.min(amount, this.getItem().getCount());
+            this.removeCount += Math.min(amount, this.getItem().getCount());
         }
 
         return super.remove(amount);
@@ -44,8 +45,14 @@
     @Override
     protected void checkTakeAchievements(ItemStack stack) {
         stack.onCraftedBy(this.player.level(), this.player, this.removeCount);
-        if (this.player instanceof ServerPlayer serverPlayer && this.container instanceof AbstractFurnaceBlockEntity abstractFurnaceBlockEntity) {
-            abstractFurnaceBlockEntity.awardUsedRecipesAndPopExperience(serverPlayer);
+        Player entityhuman = this.player;
+
+        if (entityhuman instanceof ServerPlayer entityplayer) {
+            Container iinventory = this.container;
+
+            if (iinventory instanceof AbstractFurnaceBlockEntity tileentityfurnace) {
+                tileentityfurnace.awardUsedRecipesAndPopExperience(entityplayer, stack, this.removeCount); // CraftBukkit
+            }
         }
 
         this.removeCount = 0;
