mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-30 00:56:47 +01:00
Cleaned up the fishing enchantment checks.
This commit is contained in:
parent
ea2615aeae
commit
9ef1c3b5bf
@ -2,6 +2,7 @@ package com.gmail.nossr50.skills;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.bukkit.DyeColor;
|
||||
import org.bukkit.Location;
|
||||
@ -131,44 +132,28 @@ public class Fishing {
|
||||
|
||||
player.sendMessage(mcLocale.getString("Fishing.ItemFound"));
|
||||
if (Repair.isArmor(fishingResults) || Repair.isTools(fishingResults)) {
|
||||
|
||||
if (Math.random() * 100 <= ENCHANTMENT_CHANCE) {
|
||||
for (Enchantment enchantment : Enchantment.values()) {
|
||||
if (enchantment.canEnchantItem(fishingResults)) {
|
||||
for (Enchantment newEnchant : Enchantment.values()) {
|
||||
if (newEnchant.canEnchantItem(fishingResults)) {
|
||||
Map<Enchantment, Integer> resultEnchantments = fishingResults.getEnchantments();
|
||||
|
||||
//TODO: Clean this up. It's ugly & unreadable.
|
||||
//Prevent impossible enchantment combinations
|
||||
if ((fishingResults.containsEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL) || fishingResults.containsEnchantment(Enchantment.PROTECTION_EXPLOSIONS) ||
|
||||
fishingResults.containsEnchantment(Enchantment.PROTECTION_FIRE) || fishingResults.containsEnchantment(Enchantment.PROTECTION_PROJECTILE)) &&
|
||||
(enchantment.equals(Enchantment.PROTECTION_EXPLOSIONS) || enchantment.equals(Enchantment.PROTECTION_PROJECTILE) || enchantment.equals(Enchantment.PROTECTION_FIRE) || enchantment.equals(Enchantment.PROTECTION_ENVIRONMENTAL))){
|
||||
return;
|
||||
}
|
||||
|
||||
//More impossible enchantment combinations
|
||||
else if ((fishingResults.containsEnchantment(Enchantment.DAMAGE_ALL) || fishingResults.containsEnchantment(Enchantment.DAMAGE_ARTHROPODS) || fishingResults.containsEnchantment(Enchantment.DAMAGE_UNDEAD)) &&
|
||||
(enchantment.equals(Enchantment.DAMAGE_ALL) || enchantment.equals(Enchantment.DAMAGE_ARTHROPODS) || enchantment.equals(Enchantment.DAMAGE_UNDEAD))){
|
||||
return;
|
||||
}
|
||||
|
||||
//Even more impossible enchantment combinations
|
||||
else if ((fishingResults.containsEnchantment(Enchantment.SILK_TOUCH) || fishingResults.containsEnchantment(Enchantment.LOOT_BONUS_BLOCKS)) &&
|
||||
(enchantment.equals(Enchantment.SILK_TOUCH) || enchantment.equals(Enchantment.LOOT_BONUS_BLOCKS))){
|
||||
return;
|
||||
}
|
||||
|
||||
else {
|
||||
//Actual chance to have an enchantment is related to your fishing skill
|
||||
if (Math.random() * 15 < Fishing.getFishingLootTier(PP)) {
|
||||
enchanted = true;
|
||||
int randomEnchantLevel = (int)(Math.random() * enchantment.getMaxLevel()) + 1;
|
||||
|
||||
if (randomEnchantLevel == 0) {
|
||||
randomEnchantLevel = 1;
|
||||
}
|
||||
|
||||
fishingResults.addEnchantment(enchantment, randomEnchantLevel);
|
||||
for (Enchantment oldEnchant : resultEnchantments.keySet()) {
|
||||
if (oldEnchant.conflictsWith(newEnchant)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/* Actual chance to have an enchantment is related to your fishing skill */
|
||||
if (Math.random() * 15 < Fishing.getFishingLootTier(PP)) {
|
||||
enchanted = true;
|
||||
int randomEnchantLevel = (int) (Math.random() * newEnchant.getMaxLevel()) + 1;
|
||||
|
||||
if (randomEnchantLevel == 0) {
|
||||
randomEnchantLevel = 1;
|
||||
}
|
||||
|
||||
fishingResults.addEnchantment(newEnchant, randomEnchantLevel);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user