|
@@ -1,5 +1,18 @@
|
|
|
package com.gmail.nossr50.skills.salvage;
|
|
|
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Map.Entry;
|
|
|
+
|
|
|
+import org.bukkit.Location;
|
|
|
+import org.bukkit.Material;
|
|
|
+import org.bukkit.enchantments.Enchantment;
|
|
|
+import org.bukkit.entity.Player;
|
|
|
+import org.bukkit.inventory.ItemStack;
|
|
|
+import org.bukkit.inventory.meta.Damageable;
|
|
|
+import org.bukkit.inventory.meta.EnchantmentStorageMeta;
|
|
|
+import org.bukkit.inventory.meta.ItemMeta;
|
|
|
+
|
|
|
+import com.gmail.nossr50.mcMMO;
|
|
|
import com.gmail.nossr50.config.AdvancedConfig;
|
|
|
import com.gmail.nossr50.config.Config;
|
|
|
import com.gmail.nossr50.config.experience.ExperienceConfig;
|
|
@@ -8,7 +21,6 @@ import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
|
|
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
|
|
import com.gmail.nossr50.datatypes.skills.SubSkillType;
|
|
|
import com.gmail.nossr50.locale.LocaleLoader;
|
|
|
-import com.gmail.nossr50.mcMMO;
|
|
|
import com.gmail.nossr50.skills.SkillManager;
|
|
|
import com.gmail.nossr50.skills.salvage.salvageables.Salvageable;
|
|
|
import com.gmail.nossr50.util.EventUtils;
|
|
@@ -22,15 +34,6 @@ import com.gmail.nossr50.util.skills.RankUtils;
|
|
|
import com.gmail.nossr50.util.skills.SkillUtils;
|
|
|
import com.gmail.nossr50.util.sounds.SoundManager;
|
|
|
import com.gmail.nossr50.util.sounds.SoundType;
|
|
|
-import org.bukkit.Location;
|
|
|
-import org.bukkit.Material;
|
|
|
-import org.bukkit.enchantments.Enchantment;
|
|
|
-import org.bukkit.entity.Player;
|
|
|
-import org.bukkit.inventory.ItemStack;
|
|
|
-import org.bukkit.inventory.meta.EnchantmentStorageMeta;
|
|
|
-
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Map.Entry;
|
|
|
|
|
|
public class SalvageManager extends SkillManager {
|
|
|
private boolean placedAnvil;
|
|
@@ -65,8 +68,9 @@ public class SalvageManager extends SkillManager {
|
|
|
Player player = getPlayer();
|
|
|
|
|
|
Salvageable salvageable = mcMMO.getSalvageableManager().getSalvageable(item.getType());
|
|
|
-
|
|
|
- if (item.getItemMeta() != null && item.getItemMeta().isUnbreakable()) {
|
|
|
+ ItemMeta meta = item.getItemMeta();
|
|
|
+
|
|
|
+ if (meta != null && meta.isUnbreakable()) {
|
|
|
NotificationManager.sendPlayerInformation(player, NotificationType.SUBSKILL_MESSAGE_FAILED, "Anvil.Unbreakable");
|
|
|
return;
|
|
|
}
|
|
@@ -91,7 +95,8 @@ public class SalvageManager extends SkillManager {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- int potentialSalvageYield = Salvage.calculateSalvageableAmount(item.getDurability(), salvageable.getMaximumDurability(), salvageable.getMaximumQuantity());
|
|
|
+ int durability = meta instanceof Damageable ? ((Damageable) meta).getDamage(): 0;
|
|
|
+ int potentialSalvageYield = Salvage.calculateSalvageableAmount(durability, salvageable.getMaximumDurability(), salvageable.getMaximumQuantity());
|
|
|
|
|
|
if (potentialSalvageYield <= 0) {
|
|
|
NotificationManager.sendPlayerInformation(player, NotificationType.SUBSKILL_MESSAGE_FAILED, "Salvage.Skills.TooDamaged");
|