|
@@ -211,7 +211,7 @@ public class SalvageManager extends SkillManager {
|
|
|
Player player = getPlayer();
|
|
|
|
|
|
if (!RankUtils.hasUnlockedSubskill(player, SubSkillType.SALVAGE_ARCANE_SALVAGE) || !Permissions.arcaneSalvage(player)) {
|
|
|
- mcMMO.getNotificationManager().sendPlayerInformation(player, NotificationType.SUBSKILL_MESSAGE_FAILED, "Salvage.Skills.ArcaneFailed");
|
|
|
+ mcMMO.getNotificationManager().sendPlayerInformationChatOnly(player, "Salvage.Skills.ArcaneFailed");
|
|
|
return null;
|
|
|
}
|
|
|
|
|
@@ -222,25 +222,38 @@ public class SalvageManager extends SkillManager {
|
|
|
int arcaneFailureCount = 0;
|
|
|
|
|
|
for (Entry<Enchantment, Integer> enchant : enchants.entrySet()) {
|
|
|
+
|
|
|
+ int enchantLevel = enchant.getValue();
|
|
|
+
|
|
|
+ if(!mcMMO.getConfigManager().getConfigExploitPrevention().getConfigSectionExploitSkills().getConfigSectionExploitSalvage().isAllowUnsafeEnchants()) {
|
|
|
+ if(enchantLevel > enchant.getKey().getMaxLevel()) {
|
|
|
+ enchantLevel = enchant.getKey().getMaxLevel();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
if (!Salvage.arcaneSalvageEnchantLoss
|
|
|
|| Permissions.hasSalvageEnchantBypassPerk(player)
|
|
|
|| RandomChanceUtil.checkRandomChanceExecutionSuccess(new RandomChanceSkillStatic(getExtractFullEnchantChance(), getPlayer(), SubSkillType.SALVAGE_ARCANE_SALVAGE))) {
|
|
|
- enchantMeta.addStoredEnchant(enchant.getKey(), enchant.getValue(), true);
|
|
|
- } else if (enchant.getValue() > 1
|
|
|
+
|
|
|
+ enchantMeta.addStoredEnchant(enchant.getKey(), enchantLevel, true);
|
|
|
+ }
|
|
|
+ else if (enchantLevel > 1
|
|
|
&& Salvage.arcaneSalvageDowngrades
|
|
|
&& RandomChanceUtil.checkRandomChanceExecutionSuccess(new RandomChanceSkillStatic(getExtractPartialEnchantChance(), getPlayer(), SubSkillType.SALVAGE_ARCANE_SALVAGE))) {
|
|
|
- enchantMeta.addStoredEnchant(enchant.getKey(), enchant.getValue() - 1, true);
|
|
|
+ enchantMeta.addStoredEnchant(enchant.getKey(), enchantLevel - 1, true);
|
|
|
downgraded = true;
|
|
|
} else {
|
|
|
arcaneFailureCount++;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if (failedAllEnchants(arcaneFailureCount, enchants.entrySet().size())) {
|
|
|
- mcMMO.getNotificationManager().sendPlayerInformation(player, NotificationType.SUBSKILL_MESSAGE_FAILED, "Salvage.Skills.ArcaneFailed");
|
|
|
+ if(failedAllEnchants(arcaneFailureCount, enchants.entrySet().size()))
|
|
|
+ {
|
|
|
+ mcMMO.getNotificationManager().sendPlayerInformationChatOnly(player, "Salvage.Skills.ArcaneFailed");
|
|
|
return null;
|
|
|
- } else if (downgraded) {
|
|
|
- mcMMO.getNotificationManager().sendPlayerInformation(player, NotificationType.SUBSKILL_MESSAGE_FAILED, "Salvage.Skills.ArcanePartial");
|
|
|
+ } else if(downgraded)
|
|
|
+ {
|
|
|
+ mcMMO.getNotificationManager().sendPlayerInformationChatOnly(player, "Salvage.Skills.ArcanePartial");
|
|
|
}
|
|
|
|
|
|
book.setItemMeta(enchantMeta);
|