Browse Source

Merge branch 'master' of github.com:mcMMO-Dev/mcMMO

nossr50 5 years ago
parent
commit
d1b7e88b7e

+ 4 - 2
src/main/java/com/gmail/nossr50/skills/repair/RepairManager.java

@@ -128,6 +128,9 @@ public class RepairManager extends SkillManager {
         int baseRepairAmount = repairable.getBaseRepairDurability(item); // Did they send me daughters?
         short newDurability = repairCalculate(startDurability, baseRepairAmount); // When I asked for sons?
 
+        // toRemove should be refreshed before the event call.
+        toRemove = inventory.getItem(inventory.first(repairMaterial)).clone();
+        
         // Call event
         if (EventUtils.callRepairCheckEvent(player, (short) (startDurability - newDurability), toRemove, item).isCancelled()) {
             return;
@@ -139,7 +142,6 @@ public class RepairManager extends SkillManager {
         }
 
         // Remove the item
-        toRemove = inventory.getItem(inventory.first(repairMaterial)).clone();
         toRemove.setAmount(1);
 
         inventory.removeItem(toRemove);
@@ -393,4 +395,4 @@ public class RepairManager extends SkillManager {
     public void actualizeLastAnvilUse() {
         lastClick = (int) (System.currentTimeMillis() / Misc.TIME_CONVERSION_FACTOR);
     }
-}
+}

+ 2 - 1
src/main/java/com/gmail/nossr50/skills/salvage/SalvageManager.java

@@ -100,7 +100,6 @@ public class SalvageManager extends SkillManager {
 
         potentialSalvageYield = Math.min(potentialSalvageYield, getSalvageLimit()); // Always get at least something back, if you're capable of salvaging it.
 
-        player.getInventory().setItemInMainHand(new ItemStack(Material.AIR));
         location.add(0.5, 1, 0.5);
 
         Map<Enchantment, Integer> enchants = item.getEnchantments();
@@ -140,6 +139,8 @@ public class SalvageManager extends SkillManager {
             return;
         }
 
+        player.getInventory().setItemInMainHand(new ItemStack(Material.AIR));
+
         Location anvilLoc = location.clone();
         Location playerLoc = player.getLocation().clone();
         double distance = anvilLoc.distance(playerLoc);