From 82f8c4ce367570897fe938671f88be7d2a8b3525 Mon Sep 17 00:00:00 2001 From: TfT_02 Date: Mon, 7 Oct 2013 15:59:20 +0200 Subject: [PATCH] Fishing Treasure Hunter overhaul --- Changelog.txt | 1 + .../commands/skills/FishingCommand.java | 88 ++- .../gmail/nossr50/config/AdvancedConfig.java | 6 - .../config/treasure/TreasureConfig.java | 65 +- .../treasure/EnchantmentTreasure.java | 29 + .../datatypes/treasure/FishingTreasure.java | 14 +- .../nossr50/datatypes/treasure/Rarity.java | 20 + .../skills/fishing/FishingManager.java | 122 ++- .../gmail/nossr50/util/EnchantmentUtils.java | 50 ++ src/main/resources/advanced.yml | 4 - .../resources/locale/locale_cs_CZ.properties | 4 +- .../resources/locale/locale_cy.properties | 4 +- .../resources/locale/locale_da.properties | 6 +- .../resources/locale/locale_de.properties | 6 +- .../resources/locale/locale_en_US.properties | 19 +- .../resources/locale/locale_es.properties | 4 +- .../resources/locale/locale_et_EE.properties | 2 +- .../resources/locale/locale_fi.properties | 4 +- .../resources/locale/locale_fr.properties | 6 +- .../resources/locale/locale_hu_HU.properties | 2 +- .../resources/locale/locale_it.properties | 4 +- .../resources/locale/locale_ko.properties | 4 +- .../resources/locale/locale_nl.properties | 4 +- .../resources/locale/locale_pl.properties | 4 +- .../resources/locale/locale_pt_BR.properties | 4 +- .../resources/locale/locale_ru.properties | 4 +- .../resources/locale/locale_sv.properties | 2 +- .../resources/locale/locale_th_TH.properties | 4 +- .../resources/locale/locale_tr_TR.properties | 2 +- .../resources/locale/locale_zh_CN.properties | 4 +- .../resources/locale/locale_zh_TW.properties | 4 +- src/main/resources/treasures.yml | 720 ++++++++++-------- 32 files changed, 755 insertions(+), 461 deletions(-) create mode 100644 src/main/java/com/gmail/nossr50/datatypes/treasure/EnchantmentTreasure.java create mode 100644 src/main/java/com/gmail/nossr50/datatypes/treasure/Rarity.java create mode 100644 src/main/java/com/gmail/nossr50/util/EnchantmentUtils.java diff --git a/Changelog.txt b/Changelog.txt index d4e488168..3c99fe160 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -45,6 +45,7 @@ Version 1.4.07-dev = Fixed a bug where wrong feedback messages were being send when using a command on an offline player = Fixed a bug where players were able to gain Herbalism XP in mine carts, even though Prevent_AFK_Leveling was enabled = Fixed a bug where players would get hit by fireworks if they leveled up while in a boat + ! Changed Fishing "Treasure Hunter" and "Magic Hunter" drop percentages ! Changed format of mod config files. (blocks.yml, tools.yml, armor.yml and entities.yml) **YOU WILL NEED TO UPDATE YOUR FILE TO THE NEW FORMAT** ! Changed format of treasures.yml. **YOU WILL NEED TO UPDATE YOUR FILE TO THE NEW FORMAT** ! Changed format of repair.vanilla.yml. **YOU WILL NEED TO UPDATE YOUR FILE TO THE NEW FORMAT** diff --git a/src/main/java/com/gmail/nossr50/commands/skills/FishingCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/FishingCommand.java index 39a57e225..cd2330382 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/FishingCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/FishingCommand.java @@ -4,7 +4,9 @@ import org.bukkit.block.Biome; import org.bukkit.entity.EntityType; import com.gmail.nossr50.config.AdvancedConfig; +import com.gmail.nossr50.config.treasure.TreasureConfig; import com.gmail.nossr50.datatypes.skills.SkillType; +import com.gmail.nossr50.datatypes.treasure.Rarity; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.skills.fishing.Fishing; import com.gmail.nossr50.skills.fishing.Fishing.Tier; @@ -13,14 +15,21 @@ import com.gmail.nossr50.util.player.UserManager; public class FishingCommand extends SkillCommand { private int lootTier; - private String magicChance; - private String magicChanceLucky; - private String chanceRaining = ""; private String shakeChance; private String shakeChanceLucky; private int fishermansDietRank; private String biteChance; + private String trapTreasure; + private String commonTreasure; + private String uncommonTreasure; + private String rareTreasure; + private String epicTreasure; + private String legendaryTreasure; + private String recordTreasure; + + private String magicChance; + private boolean canTreasureHunt; private boolean canMagicHunt; private boolean canShake; @@ -39,16 +48,24 @@ public class FishingCommand extends SkillCommand { // TREASURE HUNTER if (canTreasureHunt) { lootTier = mcMMOPlayer.getFishingManager().getLootTier(); - double enchantChance = lootTier * AdvancedConfig.getInstance().getFishingMagicMultiplier(); - if (isStorming) { - chanceRaining = LocaleLoader.getString("Fishing.Chance.Raining"); - enchantChance *= 1.1D; - } + // Item drop rates + trapTreasure = calculateAbilityDisplayValues(TreasureConfig.getInstance().getItemDropRate(lootTier, Rarity.TRAP))[0]; + commonTreasure = calculateAbilityDisplayValues(TreasureConfig.getInstance().getItemDropRate(lootTier, Rarity.COMMON))[0]; + uncommonTreasure = calculateAbilityDisplayValues(TreasureConfig.getInstance().getItemDropRate(lootTier, Rarity.UNCOMMON))[0]; + rareTreasure = calculateAbilityDisplayValues(TreasureConfig.getInstance().getItemDropRate(lootTier, Rarity.RARE))[0]; + epicTreasure = calculateAbilityDisplayValues(TreasureConfig.getInstance().getItemDropRate(lootTier, Rarity.EPIC))[0]; + legendaryTreasure = calculateAbilityDisplayValues(TreasureConfig.getInstance().getItemDropRate(lootTier, Rarity.LEGENDARY))[0]; + recordTreasure = calculateAbilityDisplayValues(TreasureConfig.getInstance().getItemDropRate(lootTier, Rarity.RECORD))[0]; - String[] treasureHunterStrings = calculateAbilityDisplayValues(enchantChance); - magicChance = treasureHunterStrings[0]; - magicChanceLucky = treasureHunterStrings[1]; + // Magic hunter drop rates + double commonEnchantment = TreasureConfig.getInstance().getEnchantmentDropRate(lootTier, Rarity.COMMON); + double uncommonEnchantment = TreasureConfig.getInstance().getEnchantmentDropRate(lootTier, Rarity.UNCOMMON); + double rareEnchantment = TreasureConfig.getInstance().getEnchantmentDropRate(lootTier, Rarity.RARE); + double epicEnchantment = TreasureConfig.getInstance().getEnchantmentDropRate(lootTier, Rarity.EPIC); + double legendaryEnchantment = TreasureConfig.getInstance().getEnchantmentDropRate(lootTier, Rarity.LEGENDARY); + + magicChance = calculateAbilityDisplayValues(commonEnchantment + uncommonEnchantment + rareEnchantment + epicEnchantment + legendaryEnchantment)[0]; } // SHAKE @@ -107,20 +124,20 @@ public class FishingCommand extends SkillCommand { player.sendMessage(LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Fishing.Effect.2"), LocaleLoader.getString("Fishing.Effect.3"))); } - if (canShake) { - player.sendMessage(LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Fishing.Effect.4"), LocaleLoader.getString("Fishing.Effect.5"))); - } - - if (canFishermansDiet) { - player.sendMessage(LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Fishing.Effect.6"), LocaleLoader.getString("Fishing.Effect.7"))); + if (canIceFish) { + player.sendMessage(LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Fishing.Effect.10"), LocaleLoader.getString("Fishing.Effect.11"))); } if (canMasterAngler) { player.sendMessage(LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Fishing.Effect.8"), LocaleLoader.getString("Fishing.Effect.9"))); } - if (canIceFish) { - player.sendMessage(LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Fishing.Effect.10"), LocaleLoader.getString("Fishing.Effect.11"))); + if (canShake) { + player.sendMessage(LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Fishing.Effect.4"), LocaleLoader.getString("Fishing.Effect.5"))); + } + + if (canFishermansDiet) { + player.sendMessage(LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Fishing.Effect.6"), LocaleLoader.getString("Fishing.Effect.7"))); } } @@ -131,16 +148,28 @@ public class FishingCommand extends SkillCommand { @Override protected void statsDisplay() { - if (canMasterAngler) { - player.sendMessage(LocaleLoader.getString("Fishing.Ability.Chance", biteChance)); - } - if (canTreasureHunt) { player.sendMessage(LocaleLoader.getString("Fishing.Ability.Rank", lootTier, Tier.EIGHT.toNumerical())); + player.sendMessage(LocaleLoader.getString("Fishing.Ability.TH.DropRate", trapTreasure, commonTreasure, uncommonTreasure, rareTreasure, epicTreasure, legendaryTreasure, recordTreasure)); } if (canMagicHunt) { - player.sendMessage(LocaleLoader.getString("Fishing.Enchant.Chance", magicChance) + chanceRaining + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", magicChanceLucky) : "")); + player.sendMessage(LocaleLoader.getString("Fishing.Ability.TH.MagicRate", magicChance)); + } + + if (canIceFish) { + int unlockLevel = AdvancedConfig.getInstance().getIceFishingUnlockLevel(); + + if (skillValue < unlockLevel) { + player.sendMessage(LocaleLoader.getString("Ability.Generic.Template.Lock", LocaleLoader.getString("Fishing.Ability.Locked.1", unlockLevel))); + } + else { + player.sendMessage(LocaleLoader.getString("Fishing.Ability.IceFishing")); + } + } + + if (canMasterAngler) { + player.sendMessage(LocaleLoader.getString("Fishing.Ability.Chance", biteChance)); } if (canShake) { @@ -157,16 +186,5 @@ public class FishingCommand extends SkillCommand { if (canFishermansDiet) { player.sendMessage(LocaleLoader.getString("Fishing.Ability.FD", fishermansDietRank)); } - - if (canIceFish) { - int unlockLevel = AdvancedConfig.getInstance().getIceFishingUnlockLevel(); - - if (skillValue < unlockLevel) { - player.sendMessage(LocaleLoader.getString("Ability.Generic.Template.Lock", LocaleLoader.getString("Fishing.Ability.Locked.1", unlockLevel))); - } - else { - player.sendMessage(LocaleLoader.getString("Fishing.Ability.IceFishing")); - } - } } } diff --git a/src/main/java/com/gmail/nossr50/config/AdvancedConfig.java b/src/main/java/com/gmail/nossr50/config/AdvancedConfig.java index e595900d6..3787d0fa6 100644 --- a/src/main/java/com/gmail/nossr50/config/AdvancedConfig.java +++ b/src/main/java/com/gmail/nossr50/config/AdvancedConfig.java @@ -199,10 +199,6 @@ public class AdvancedConfig extends AutoUpdateConfigLoader { } } - if (getFishingMagicMultiplier() <= 0) { - reason.add("Skills.Fishing.MagicHunter.Multiplier should be greater than 0!"); - } - if (getFishermanDietRankChange() < 1) { reason.add("Skills.Fishing.FishermansDiet.RankChange should be at least 1!"); } @@ -655,8 +651,6 @@ public class AdvancedConfig extends AutoUpdateConfigLoader { public double getShakeChance(Fishing.Tier tier) { return config.getDouble("Skills.Fishing.Shake_Chance.Rank_" + tier.toNumerical()); } public int getFishingVanillaXPModifier(Fishing.Tier tier) { return config.getInt("Skills.Fishing.VanillaXPMultiplier.Rank_" + tier.toNumerical()); } - public double getFishingMagicMultiplier() { return config.getDouble("Skills.Fishing.MagicHunter.Multiplier", 2.5D); } - public int getFishermanDietRankChange() { return config.getInt("Skills.Fishing.FishermansDiet.RankChange", 200); } public int getIceFishingUnlockLevel() { return config.getInt("Skills.Fishing.IceFishing.UnlockLevel", 50); } diff --git a/src/main/java/com/gmail/nossr50/config/treasure/TreasureConfig.java b/src/main/java/com/gmail/nossr50/config/treasure/TreasureConfig.java index d2355deb1..9837caf88 100644 --- a/src/main/java/com/gmail/nossr50/config/treasure/TreasureConfig.java +++ b/src/main/java/com/gmail/nossr50/config/treasure/TreasureConfig.java @@ -1,11 +1,13 @@ package com.gmail.nossr50.config.treasure; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import org.bukkit.DyeColor; import org.bukkit.Material; import org.bukkit.configuration.ConfigurationSection; +import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.EntityType; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; @@ -14,10 +16,13 @@ import org.bukkit.potion.Potion; import org.bukkit.potion.PotionType; import com.gmail.nossr50.config.ConfigLoader; +import com.gmail.nossr50.datatypes.treasure.EnchantmentTreasure; import com.gmail.nossr50.datatypes.treasure.ExcavationTreasure; import com.gmail.nossr50.datatypes.treasure.FishingTreasure; import com.gmail.nossr50.datatypes.treasure.HylianTreasure; +import com.gmail.nossr50.datatypes.treasure.Rarity; import com.gmail.nossr50.datatypes.treasure.ShakeTreasure; +import com.gmail.nossr50.util.EnchantmentUtils; public class TreasureConfig extends ConfigLoader { private static TreasureConfig instance; @@ -57,7 +62,8 @@ public class TreasureConfig extends ConfigLoader { public List shakeFromWitch = new ArrayList(); public List shakeFromZombie = new ArrayList(); - public List fishingRewards = new ArrayList(); + public HashMap> fishingRewards = new HashMap>(); + public HashMap> fishingEnchantments = new HashMap>(); private TreasureConfig() { super("treasures.yml"); @@ -82,6 +88,7 @@ public class TreasureConfig extends ConfigLoader { loadTreaures("Fishing"); loadTreaures("Excavation"); loadTreaures("Hylian_Luck"); + loadEnchantments(); for (EntityType entity : EntityType.values()) { if (entity.isAlive()) { @@ -102,6 +109,13 @@ public class TreasureConfig extends ConfigLoader { return; } + // Initialize fishing HashMap + for (Rarity rarity : Rarity.values()) { + if (!fishingRewards.containsKey(rarity)) { + fishingRewards.put(rarity, (new ArrayList())); + } + } + for (String treasureName : treasureSection.getKeys(false)) { // Validate all the things! List reason = new ArrayList(); @@ -159,17 +173,13 @@ public class TreasureConfig extends ConfigLoader { /* * Specific Types */ - int maxLevel = 0; + Rarity rarity = null; if (isFishing) { - maxLevel = config.getInt(type + "." + treasureName + ".Max_Level"); + rarity = Rarity.getRarity(config.getString(type + "." + treasureName + ".Rarity")); - if (maxLevel < -1) { - reason.add(treasureName + " has an invalid Max_Level: " + maxLevel); - } - - if (maxLevel != -1 && maxLevel < dropLevel) { - reason.add(treasureName + " Max_Level must be -1 or greater than Drop_Level!"); + if (rarity == null) { + reason.add("Invalid Rarity for item: " + treasureName); } } @@ -219,7 +229,7 @@ public class TreasureConfig extends ConfigLoader { if (noErrorsInConfig(reason)) { if (isFishing) { - fishingRewards.add(new FishingTreasure(item, xp, dropChance, dropLevel, maxLevel)); + fishingRewards.get(rarity).add(new FishingTreasure(item, xp)); } else if (isShake) { ShakeTreasure shakeTreasure = new ShakeTreasure(item, xp, dropChance, dropLevel); @@ -343,4 +353,37 @@ public class TreasureConfig extends ConfigLoader { } } } -} \ No newline at end of file + + private void loadEnchantments() { + for (Rarity rarity : Rarity.values()) { + if (rarity == Rarity.TRAP || rarity == Rarity.RECORD) { + continue; + } + + if (!fishingEnchantments.containsKey(rarity)) { + fishingEnchantments.put(rarity, (new ArrayList())); + } + + ConfigurationSection enchantmentSection = config.getConfigurationSection("Enchantments_Rarity." + rarity.toString()); + + if (enchantmentSection == null) { + return; + } + + for (String enchantmentName : enchantmentSection.getKeys(false)) { + int level = config.getInt("Enchantments_Rarity." + rarity.toString() + "." + enchantmentName); + Enchantment enchantment = EnchantmentUtils.getByName(enchantmentName); + + if (enchantment == null) { + plugin.getLogger().warning("Skipping invalid enchantment in treasures.yml: " + enchantmentName); + continue; + } + + fishingEnchantments.get(rarity).add(new EnchantmentTreasure(enchantment, level)); + } + } + } + + public double getItemDropRate(int tier, Rarity rarity) { return config.getDouble("Item_Drop_Rates.Tier_" + tier + "." + rarity.toString()); } + public double getEnchantmentDropRate(int tier, Rarity rarity) { return config.getDouble("Enchantment_Drop_Rates.Tier_" + tier + "." + rarity.toString()); } +} diff --git a/src/main/java/com/gmail/nossr50/datatypes/treasure/EnchantmentTreasure.java b/src/main/java/com/gmail/nossr50/datatypes/treasure/EnchantmentTreasure.java new file mode 100644 index 000000000..2f9d2519d --- /dev/null +++ b/src/main/java/com/gmail/nossr50/datatypes/treasure/EnchantmentTreasure.java @@ -0,0 +1,29 @@ +package com.gmail.nossr50.datatypes.treasure; + +import org.bukkit.enchantments.Enchantment; + +public class EnchantmentTreasure { + private Enchantment enchantment; + private int level; + + public EnchantmentTreasure(Enchantment enchantment, int level) { + this.setEnchantment(enchantment); + this.setLevel(level); + } + + public Enchantment getEnchantment() { + return enchantment; + } + + public void setEnchantment(Enchantment enchantment) { + this.enchantment = enchantment; + } + + public int getLevel() { + return level; + } + + public void setLevel(int level) { + this.level = level; + } +} diff --git a/src/main/java/com/gmail/nossr50/datatypes/treasure/FishingTreasure.java b/src/main/java/com/gmail/nossr50/datatypes/treasure/FishingTreasure.java index be0527389..b26975313 100644 --- a/src/main/java/com/gmail/nossr50/datatypes/treasure/FishingTreasure.java +++ b/src/main/java/com/gmail/nossr50/datatypes/treasure/FishingTreasure.java @@ -3,18 +3,8 @@ package com.gmail.nossr50.datatypes.treasure; import org.bukkit.inventory.ItemStack; public class FishingTreasure extends Treasure { - private int maxLevel; - public FishingTreasure(ItemStack drop, int xp, Double dropChance, int dropLevel, int maxLevel) { - super(drop, xp, dropChance, dropLevel); - this.setMaxLevel(maxLevel); - } - - public int getMaxLevel() { - return maxLevel; - } - - public void setMaxLevel(int maxLevel) { - this.maxLevel = maxLevel; + public FishingTreasure(ItemStack drop, int xp) { + super(drop, xp, 0, 0); } } diff --git a/src/main/java/com/gmail/nossr50/datatypes/treasure/Rarity.java b/src/main/java/com/gmail/nossr50/datatypes/treasure/Rarity.java new file mode 100644 index 000000000..85c23c305 --- /dev/null +++ b/src/main/java/com/gmail/nossr50/datatypes/treasure/Rarity.java @@ -0,0 +1,20 @@ +package com.gmail.nossr50.datatypes.treasure; + +public enum Rarity { + RECORD, + LEGENDARY, + EPIC, + RARE, + UNCOMMON, + COMMON, + TRAP; + + public static Rarity getRarity(String string) { + try { + return valueOf(string); + } + catch (IllegalArgumentException ex) { + return COMMON; + } + } +}; diff --git a/src/main/java/com/gmail/nossr50/skills/fishing/FishingManager.java b/src/main/java/com/gmail/nossr50/skills/fishing/FishingManager.java index c53a719f6..e68e5a717 100644 --- a/src/main/java/com/gmail/nossr50/skills/fishing/FishingManager.java +++ b/src/main/java/com/gmail/nossr50/skills/fishing/FishingManager.java @@ -26,10 +26,15 @@ import org.bukkit.entity.Player; import org.bukkit.entity.Sheep; import org.bukkit.entity.Skeleton; import org.bukkit.entity.Skeleton.SkeletonType; +import org.bukkit.entity.TNTPrimed; +import org.bukkit.entity.ThrownPotion; import org.bukkit.event.player.PlayerFishEvent; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; import org.bukkit.inventory.ItemStack; import org.bukkit.material.Wool; +import org.bukkit.potion.Potion; +import org.bukkit.potion.PotionType; +import org.bukkit.util.Vector; import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.config.AdvancedConfig; @@ -38,7 +43,9 @@ import com.gmail.nossr50.config.experience.ExperienceConfig; import com.gmail.nossr50.config.treasure.TreasureConfig; import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.skills.SkillType; +import com.gmail.nossr50.datatypes.treasure.EnchantmentTreasure; import com.gmail.nossr50.datatypes.treasure.FishingTreasure; +import com.gmail.nossr50.datatypes.treasure.Rarity; import com.gmail.nossr50.datatypes.treasure.ShakeTreasure; import com.gmail.nossr50.events.fake.FakeBlockBreakEvent; import com.gmail.nossr50.events.fake.FakePlayerFishEvent; @@ -62,6 +69,7 @@ public class FishingManager extends SkillManager { private int fishingTries = 0; private long fishingTimestamp = 0L; private Location fishingTarget; + private Item fishingCatch; public FishingManager(McMMOPlayer mcMMOPlayer) { super(mcMMOPlayer, SkillType.FISHING); @@ -246,8 +254,9 @@ public class FishingManager extends SkillManager { /** * Handle the Fisherman's Diet ability * - * @param rankChange The # of levels to change rank for the food + * @param rankChange The # of levels to change rank for the food * @param eventFoodLevel The initial change in hunger from the event + * * @return the modified change in hunger for the event */ public int handleFishermanDiet(int rankChange, int eventFoodLevel) { @@ -294,16 +303,18 @@ public class FishingManager extends SkillManager { * @param fishingCatch The {@link Item} initially caught */ public void handleFishing(Item fishingCatch) { + this.fishingCatch = fishingCatch; int treasureXp = 0; Player player = getPlayer(); FishingTreasure treasure = null; if (Config.getInstance().getFishingDropsEnabled() && Permissions.fishingTreasureHunter(player)) { treasure = getFishingTreasure(); + this.fishingCatch = null; } if (treasure != null) { - player.sendMessage(LocaleLoader.getString("Fishing.ItemFound")); + player.sendMessage(LocaleLoader.getString("Fishing.Ability.TH.ItemFound")); treasureXp = treasure.getXp(); ItemStack treasureDrop = treasure.getDrop().clone(); // Not cloning is bad, m'kay? @@ -339,10 +350,10 @@ public class FishingManager extends SkillManager { } if (enchanted) { - player.sendMessage(LocaleLoader.getString("Fishing.MagicFound")); + player.sendMessage(LocaleLoader.getString("Fishing.Ability.TH.MagicFound")); } - Misc.dropItem(player.getEyeLocation(), fishingCatch.getItemStack()); +// Misc.dropItem(player.getEyeLocation(), fishingCatch.getItemStack()); fishingCatch.setItemStack(treasureDrop); } } @@ -354,6 +365,7 @@ public class FishingManager extends SkillManager { * Handle the vanilla XP boost for Fishing * * @param experience The amount of experience initially awarded by the event + * * @return the modified event damage */ public int handleVanillaXpBoost(int experience) { @@ -439,28 +451,32 @@ public class FishingManager extends SkillManager { * @return The {@link FishingTreasure} found, or null if no treasure was found. */ private FishingTreasure getFishingTreasure() { - List rewards = new ArrayList(); - int skillLevel = getSkillLevel(); + double diceRoll = Misc.getRandom().nextDouble() * 100; + FishingTreasure treasure = null; - for (FishingTreasure treasure : TreasureConfig.getInstance().fishingRewards) { - int maxLevel = treasure.getMaxLevel(); + for (Rarity rarity : Rarity.values()) { + double dropRate = TreasureConfig.getInstance().getItemDropRate(getLootTier(), rarity); - if (treasure.getDropLevel() <= skillLevel && (maxLevel >= skillLevel || maxLevel <= 0)) { - rewards.add(treasure); + if (diceRoll <= dropRate) { + if (rarity == Rarity.TRAP) { + handleTraps(); + break; + } + + List fishingTreasures = TreasureConfig.getInstance().fishingRewards.get(rarity); + treasure = fishingTreasures.get(Misc.getRandom().nextInt(fishingTreasures.size())); + break; } + + diceRoll -= dropRate; } - if (rewards.isEmpty()) { + if (treasure == null) { return null; } - FishingTreasure treasure = rewards.get(Misc.getRandom().nextInt(rewards.size())); ItemStack treasureDrop = treasure.getDrop(); - if (!SkillUtils.treasureDropSuccessful(treasure.getDropChance(), activationChance)) { - return null; - } - short maxDurability = treasureDrop.getType().getMaxDurability(); if (maxDurability > 0) { @@ -470,41 +486,91 @@ public class FishingManager extends SkillManager { return treasure; } + private void handleTraps() { + Player player = getPlayer(); + + if (Misc.getRandom().nextBoolean()) { + player.sendMessage(LocaleLoader.getString("Fishing.Ability.TH.Boom")); + + TNTPrimed tnt = (TNTPrimed) player.getWorld().spawnEntity(fishingCatch.getLocation(), EntityType.PRIMED_TNT); + fishingCatch.setPassenger(tnt); + + Vector velocity = fishingCatch.getVelocity(); + double magnitude = velocity.length(); + fishingCatch.setVelocity(velocity.multiply((magnitude + 1) / magnitude)); + + tnt.setFuseTicks(3 * Misc.TICK_CONVERSION_FACTOR); + } + else { + player.sendMessage(LocaleLoader.getString("Fishing.Ability.TH.Poison")); + + ThrownPotion thrownPotion = player.getWorld().spawn(fishingCatch.getLocation(), ThrownPotion.class); + thrownPotion.setItem(new Potion(PotionType.POISON).splash().toItemStack(1)); + + fishingCatch.setPassenger(thrownPotion); + } + } + /** * Process the Magic Hunter ability * * @param treasureDrop The {@link ItemStack} to enchant + * * @return true if the item has been enchanted */ private Map handleMagicHunter(ItemStack treasureDrop) { - Player player = getPlayer(); - int activationChance = this.activationChance; + Map enchants = new HashMap(); + List fishingEnchantments = null; - if (player.getWorld().hasStorm()) { - activationChance *= Fishing.STORM_MODIFIER; + double diceRoll = Misc.getRandom().nextDouble() * 100; + + for (Rarity rarity : Rarity.values()) { + if (rarity == Rarity.TRAP || rarity == Rarity.RECORD) { + continue; + } + + double dropRate = TreasureConfig.getInstance().getEnchantmentDropRate(getLootTier(), rarity); + + if (diceRoll <= dropRate) { + fishingEnchantments = TreasureConfig.getInstance().fishingEnchantments.get(rarity); + break; + } + + diceRoll -= dropRate; } - Map enchants = new HashMap(); - - if (Misc.getRandom().nextInt(activationChance) > getLootTier() * AdvancedConfig.getInstance().getFishingMagicMultiplier()) { + if (fishingEnchantments == null) { return enchants; } - List possibleEnchantments = getPossibleEnchantments(treasureDrop); + List validEnchantments = getPossibleEnchantments(treasureDrop); + List possibleEnchants = new ArrayList(); + + for (EnchantmentTreasure enchantmentTreasure : fishingEnchantments) { + if (validEnchantments.contains(enchantmentTreasure.getEnchantment())) { + possibleEnchants.add(enchantmentTreasure); + } + } + + if (possibleEnchants.isEmpty()) { + return enchants; + } // This make sure that the order isn't always the same, for example previously Unbreaking had a lot more chance to be used than any other enchant - Collections.shuffle(possibleEnchantments, Misc.getRandom()); + Collections.shuffle(possibleEnchants, Misc.getRandom()); int specificChance = 1; - for (Enchantment possibleEnchantment : possibleEnchantments) { + for (EnchantmentTreasure enchantmentTreasure : possibleEnchants) { + Enchantment possibleEnchantment = enchantmentTreasure.getEnchantment(); + if (treasureDrop.getItemMeta().hasConflictingEnchant(possibleEnchantment) || Misc.getRandom().nextInt(specificChance) != 0) { continue; } - enchants.put(possibleEnchantment, Math.max(Misc.getRandom().nextInt(possibleEnchantment.getMaxLevel()) + 1, possibleEnchantment.getStartLevel())); + enchants.put(possibleEnchantment, enchantmentTreasure.getLevel()); - specificChance++; + specificChance *= 2; } return enchants; diff --git a/src/main/java/com/gmail/nossr50/util/EnchantmentUtils.java b/src/main/java/com/gmail/nossr50/util/EnchantmentUtils.java new file mode 100644 index 000000000..a4c493a91 --- /dev/null +++ b/src/main/java/com/gmail/nossr50/util/EnchantmentUtils.java @@ -0,0 +1,50 @@ +package com.gmail.nossr50.util; + +import java.util.HashMap; + +import org.bukkit.enchantments.Enchantment; + +public class EnchantmentUtils { + + private static final HashMap enchants = new HashMap(); + + static { + enchants.put("SHARPNESS", Enchantment.DAMAGE_ALL); + enchants.put("POWER", Enchantment.ARROW_DAMAGE); + enchants.put("FIRE_PROTECTION", Enchantment.PROTECTION_FIRE); + enchants.put("FEATHER_FALLING", Enchantment.PROTECTION_FALL); + enchants.put("PROTECTION", Enchantment.PROTECTION_ENVIRONMENTAL); + enchants.put("BLAST_PROTECTION", Enchantment.PROTECTION_EXPLOSIONS); + enchants.put("PROJECTILE_PROTECTION", Enchantment.PROTECTION_PROJECTILE); + enchants.put("RESPIRATION", Enchantment.OXYGEN); + enchants.put("INFINITY", Enchantment.ARROW_INFINITE); + enchants.put("AQUA_AFFINITY", Enchantment.WATER_WORKER); + enchants.put("UNBREAKING", Enchantment.DURABILITY); + enchants.put("SMITE", Enchantment.DAMAGE_UNDEAD); + enchants.put("BANE_OF_ARTHROPODS", Enchantment.DAMAGE_ARTHROPODS); + enchants.put("EFFICIENCY", Enchantment.DIG_SPEED); + enchants.put("FIRE_ASPECT", Enchantment.FIRE_ASPECT); + enchants.put("SILK_TOUCH", Enchantment.SILK_TOUCH); + enchants.put("FORTUNE", Enchantment.LOOT_BONUS_BLOCKS); + enchants.put("LOOTING", Enchantment.LOOT_BONUS_MOBS); + enchants.put("PUNCH", Enchantment.ARROW_KNOCKBACK); + enchants.put("FLAME", Enchantment.ARROW_FIRE); + enchants.put("KNOCKBACK", Enchantment.KNOCKBACK); + enchants.put("THORNS", Enchantment.THORNS); + } + + /** + * Method to get an {@link Enchantment} using it's Vanilla Minecraft name or Bukkit enum name + * + * @param enchantmentName Vanilla or Bukkit name of enchantment + * + * @return Enchantment or null if no enchantment was found + */ + public static Enchantment getByName(String enchantmentName) { + if (enchants.containsKey(enchantmentName)) { + return enchants.get(enchantmentName); + } + + return null; + } +} diff --git a/src/main/resources/advanced.yml b/src/main/resources/advanced.yml index bbad8098e..53497997c 100644 --- a/src/main/resources/advanced.yml +++ b/src/main/resources/advanced.yml @@ -152,10 +152,6 @@ Skills: Rank_7: 5 Rank_8: 5 - MagicHunter: - # Multiplier: Determines the chance of fishing enchanted items. The chance is calculated by getting the fishing TreasureHunt tier and multiplying it with - Multiplier: 2.5 - FishermansDiet: # This determines when Fisherman's Diet adds extra hunger recovery to food RankChange: 200 diff --git a/src/main/resources/locale/locale_cs_CZ.properties b/src/main/resources/locale/locale_cs_CZ.properties index eb7fda26d..1d3a7e06a 100644 --- a/src/main/resources/locale/locale_cs_CZ.properties +++ b/src/main/resources/locale/locale_cs_CZ.properties @@ -94,9 +94,9 @@ Fishing.Effect.10=Ryba\u0159en\u00ed v ledu Fishing.Effect.11=Umo\u017e\u0148uje v\u00e1m ryba\u0159it v ledov\u00fdch prost\u0159ed\u00edch Fishing.Enchant.Chance=[[RED]]\u0160ance na magick\u00e9ho lovce: [[YELLOW]]{0} Fishing.Chance.Raining=[[BLUE]] De\u0161\u0165ov\u00fd bonus -Fishing.ItemFound=[[GRAY]]Nasel si poklad! +Fishing.Ability.TH.ItemFound=[[GRAY]]Nasel si poklad! Fishing.Listener=Rybareni: -Fishing.MagicFound=[[GRAY]]C\u00edt\u00edte dotek magie s t\u00edmto \u00falovkem... +Fishing.Ability.TH.MagicFound=[[GRAY]]C\u00edt\u00edte dotek magie s t\u00edmto \u00falovkem... Fishing.SkillName=RYBARENI Fishing.Skillup=[[YELLOW]]Dovednost v rybareni byla navysena o {0}. Celkem ({1}) Herbalism.Ability.DoubleDropChance=[[RED]]\u0160ance na dvojn\u00e1sobn\u00fd zisk: [[YELLOW]]{0} diff --git a/src/main/resources/locale/locale_cy.properties b/src/main/resources/locale/locale_cy.properties index ca50c117c..a7debed10 100644 --- a/src/main/resources/locale/locale_cy.properties +++ b/src/main/resources/locale/locale_cy.properties @@ -86,9 +86,9 @@ Fishing.Effect.6=Fisherman\'s Diet Fishing.Effect.7=Improves hunger restored from fished foods Fishing.Enchant.Chance=[[RED]]Magic Hunter Chance: [[YELLOW]]{0} Fishing.Chance.Raining=[[BLUE]] Rain Bonus -Fishing.ItemFound=[[GRAY]]Treasure found! +Fishing.Ability.TH.ItemFound=[[GRAY]]Treasure found! Fishing.Listener=Fishing: -Fishing.MagicFound=[[GRAY]]You feel a touch of magic with this catch... +Fishing.Ability.TH.MagicFound=[[GRAY]]You feel a touch of magic with this catch... Fishing.SkillName=FISHING Fishing.Skillup=[[YELLOW]]Fishing skill increased by {0}. Total ({1}) Herbalism.Ability.DoubleDropChance=[[RED]]Double Drop Chance: [[YELLOW]]{0} diff --git a/src/main/resources/locale/locale_da.properties b/src/main/resources/locale/locale_da.properties index e20dbadab..41cf38884 100644 --- a/src/main/resources/locale/locale_da.properties +++ b/src/main/resources/locale/locale_da.properties @@ -86,9 +86,9 @@ Fishing.Effect.6=Fiskers Diet Fishing.Effect.7=Forbedrer Sult genoprettet af Fisked mad Fishing.Enchant.Chance=[[RED]]Magi J\u00e6ger Chance: [[YELLOW]]{0} Fishing.Chance.Raining=[[BLUE]] Regn Bonus -Fishing.ItemFound=[[GRAY]Du har fundet en skat! -Fishing.Listener=Fiskeri: -Fishing.MagicFound=[[GRAY]]Du f\u00f8ler et strejf a magi med denne fangst... +Fishing.Ability.TH.ItemFound=[[GRAY]Du har fundet en skat! +Fishing.Listener=Fiskeri\: +Fishing.Ability.TH.MagicFound=[[GRAY]]Du f\u00f8ler et strejf a magi med denne fangst... Fishing.SkillName=FISKER Fishing.Skillup=[[YELLOW]]Fisker evne for\u00f8get med {0}. Total ({1}) Herbalism.Ability.DoubleDropChance=[[RED]]2x Tabs Chance: [[YELLOW]]{0} diff --git a/src/main/resources/locale/locale_de.properties b/src/main/resources/locale/locale_de.properties index 7ad8ec2c3..dc2ee4153 100644 --- a/src/main/resources/locale/locale_de.properties +++ b/src/main/resources/locale/locale_de.properties @@ -86,9 +86,9 @@ Fishing.Effect.6=Fischer-Mahlzeit Fishing.Effect.7=Verbessert Effizienz von geangelter Nahrung Fishing.Enchant.Chance=[[RED]]Zauber-J\u00e4ger Chance: [[YELLOW]]{0} Fishing.Chance.Raining=[[BLUE]] Rain Bonus -Fishing.ItemFound=[[AQUA]]Du hast einen Schatz gefunden! -Fishing.Listener=Angeln: -Fishing.MagicFound=[[AQUA]]Dich ber\u00fchrt ein leichter Zauber bei diesem Fang... +Fishing.Ability.TH.ItemFound=[[AQUA]]Du hast einen Schatz gefunden! +Fishing.Listener=Angeln\: +Fishing.Ability.TH.MagicFound=[[AQUA]]Dich ber\u00fchrt ein leichter Zauber bei diesem Fang... Fishing.SkillName=ANGELN Fishing.Skillup=[[YELLOW]]Angel Skill um {0} gestiegen. Gesamt ({1}) Herbalism.Ability.DoubleDropChance=[[RED]]Chance auf Doppel-Drops: [[YELLOW]]{0} diff --git a/src/main/resources/locale/locale_en_US.properties b/src/main/resources/locale/locale_en_US.properties index 9f4b661ea..314178982 100644 --- a/src/main/resources/locale/locale_en_US.properties +++ b/src/main/resources/locale/locale_en_US.properties @@ -104,6 +104,8 @@ Fishing.Ability.Info=[[RED]]Magic Hunter: [[GRAY]] **Improves With Treasure Hunt Fishing.Ability.Locked.0=LOCKED UNTIL {0}+ SKILL (SHAKE) Fishing.Ability.Locked.1=LOCKED UNTIL {0}+ SKILL (ICE FISHING) Fishing.Ability.Rank=[[RED]]Treasure Hunter Rank: [[YELLOW]]{0}/{1} +Fishing.Ability.TH.DropRate=[[RED]] Drop Rate: [[DARK_RED]]Trap: [[YELLOW]]{0} [[GRAY]]Common: [[YELLOW]]{1} [[GREEN]]Uncommon: [[YELLOW]]{2}\n[[BLUE]]Rare: [[YELLOW]]{3} [[LIGHT_PURPLE]]Epic: [[YELLOW]]{4} [[GOLD]]Legendary: [[YELLOW]]{5} [[AQUA]]Record: [[YELLOW]]{6} +Fishing.Ability.TH.MagicRate=[[RED]]Magic Hunter Chance: [[YELLOW]]{0} Fishing.Ability.Shake=[[RED]]Shake Chance: [[YELLOW]]{0} Fishing.Ability.IceFishing=[[RED]]Ice Fishing: Go fishing in ice Fishing.Ability.FD=[[RED]]Fisherman''s Diet: [[YELLOW]]Rank {0} @@ -119,11 +121,12 @@ Fishing.Effect.8=Master Angler Fishing.Effect.9=Improves chance of getting a bite while fishing Fishing.Effect.10=Ice Fishing Fishing.Effect.11=Allows you to fish in icy biomes -Fishing.Enchant.Chance=[[RED]]Magic Hunter Chance: [[YELLOW]]{0} Fishing.Chance.Raining=[[BLUE]] Rain Bonus -Fishing.ItemFound=[[GRAY]]Treasure found! Fishing.Listener=Fishing: -Fishing.MagicFound=[[GRAY]]You feel a touch of magic with this catch... +Fishing.Ability.TH.ItemFound=[[GRAY]]Treasure found! +Fishing.Ability.TH.MagicFound=[[GRAY]]You feel a touch of magic with this catch... +Fishing.Ability.TH.Boom=[[GRAY]]BOOM TIME!!! +Fishing.Ability.TH.Poison=[[GRAY]]Something doesn't smell quite right... Fishing.SkillName=FISHING Fishing.Skillup=[[YELLOW]]Fishing skill increased by {0}. Total ({1}) @@ -655,10 +658,12 @@ Guides.Excavation.Section.5=[[DARK_AQUA]]Notes about Excavation:\n[[YELLOW]]Exca ##Fishing Guides.Fishing.Section.0=[[DARK_AQUA]]About Fishing:\n[[YELLOW]]With the Fishing skill, Fishing is exciting again!\n[[YELLOW]]Find hidden treasures, and shake items off mobs.\n\n[[DARK_AQUA]]XP GAIN:\n[[YELLOW]]Catch fish. -Guides.Fishing.Section.1=[[DARK_AQUA]]How does Treasure Hunter work?\n[[YELLOW]]This ability allows you to find treasure from fishing \n[[YELLOW]]with a small chance of the items being enchanted.\n[[YELLOW]]Every possible treasure for Fishing has its own\n[[YELLOW]]skill level requirement for it to drop.\n\n[[YELLOW]]The higher your Fishing skill is, the more\n[[YELLOW]]treasures that can be found. -Guides.Fishing.Section.2=[[DARK_AQUA]]How does Shake work?\n[[YELLOW]]This active ability allows you to shake items loose from mobs\n[[YELLOW]]by hooking them with the fishing rod. \n[[YELLOW]]Mobs will drop items they would normally drop on death.\n[[YELLOW]]It is also possible to acquire mob skulls, which are normally \n[[YELLOW]]unobtainable in survival mode. -Guides.Fishing.Section.3=[[DARK_AQUA]]How does Fisherman's Diet work?\n[[YELLOW]]This passive skill increases the amount of hunger restored \n[[YELLOW]]from eating fish. -Guides.Fishing.Section.4=[[DARK_AQUA]]Notes about Fishing:\n[[YELLOW]]Fishing drops are completely customizable,\n[[YELLOW]]so results vary server to server. +Guides.Fishing.Section.1=[[DARK_AQUA]]How does Treasure Hunter work?\n[[YELLOW]]This ability allows you to find treasure from fishing \n[[YELLOW]]with a small chance of the items being enchanted.\n[[YELLOW]]Every possible treasure for Fishing has a chance\n[[YELLOW]]to drop on any level. It depends however\n[[YELLOW]]what the rarity of the item is how often it will drop.\n[[YELLOW]]The higher your Fishing skill is, the better\n[[YELLOW]]your chances are to find better treasures. +Guides.Fishing.Section.2=[[DARK_AQUA]]How does Ice Fishing work?\n[[YELLOW]]This passive skill allows you to fish in ice lakes!\n[[YELLOW]]Cast your fishing rod in an ice lake and the ability will\n[[YELLOW]]create a small hole in the ice to fish in. +Guides.Fishing.Section.3=[[DARK_AQUA]]How does Master Angler work?\n[[YELLOW]]This passive skill increases the bite chance while fishing.\n[[YELLOW]]When you've unlocked this ability, fishing while in\n[[YELLOW]]a boat or an ocean biome will double the bite chance. +Guides.Fishing.Section.4=[[DARK_AQUA]]How does Shake work?\n[[YELLOW]]This active ability allows you to shake items loose from mobs\n[[YELLOW]]by hooking them with the fishing rod. \n[[YELLOW]]Mobs will drop items they would normally drop on death.\n[[YELLOW]]It is also possible to acquire mob skulls, which are normally \n[[YELLOW]]unobtainable in survival mode. +Guides.Fishing.Section.5=[[DARK_AQUA]]How does Fisherman's Diet work?\n[[YELLOW]]This passive skill increases the amount of hunger restored \n[[YELLOW]]from eating fish. +Guides.Fishing.Section.6=[[DARK_AQUA]]Notes about Fishing:\n[[YELLOW]]Fishing drops are completely customizable,\n[[YELLOW]]so results vary server to server. ##Herbalism Guides.Herbalism.Section.0=[[DARK_AQUA]]About Herbalism:\n[[YELLOW]]Herbalism is about collecting herbs and plants.\n\n\n[[DARK_AQUA]]XP GAIN:\n[[YELLOW]]Collect plants and herbs. diff --git a/src/main/resources/locale/locale_es.properties b/src/main/resources/locale/locale_es.properties index c74fa711e..cbf6ce4be 100644 --- a/src/main/resources/locale/locale_es.properties +++ b/src/main/resources/locale/locale_es.properties @@ -95,9 +95,9 @@ Fishing.Effect.10=Pesca de hielo Fishing.Effect.11=Te permite pescar en biomas de hielo Fishing.Enchant.Chance=[[RED]]Probabilidad de Cazador M\u00e1gico: [[YELLOW]]{0} Fishing.Chance.Raining=[[BLUE]] Lluvia de Bonus -Fishing.ItemFound=[[GRAY]]\u00a1Tesoro encontrado! +Fishing.Ability.TH.ItemFound=[[GRAY]]\u00a1Tesoro encontrado! Fishing.Listener=Pescador: -Fishing.MagicFound=[[GRAY]]Sientes un toque de magia con esta pesca... +Fishing.Ability.TH.MagicFound=[[GRAY]]Sientes un toque de magia con esta pesca... Fishing.SkillName=PESCADOR Fishing.Skillup=[[YELLOW]]Habilidad de Pescador incrementada en {0}. Total ({1}) Herbalism.Ability.DoubleDropChance=[[RED]]Probabilidad de Doble Drop: [[YELLOW]]{0} diff --git a/src/main/resources/locale/locale_et_EE.properties b/src/main/resources/locale/locale_et_EE.properties index 54cec427a..027652e6d 100644 --- a/src/main/resources/locale/locale_et_EE.properties +++ b/src/main/resources/locale/locale_et_EE.properties @@ -2,7 +2,7 @@ Acrobatics.Listener=Akrobaatika: Acrobatics.SkillName=AKROBAATIKA Acrobatics.Skillup=[[YELLOW]]Akrobaatika oskus kasvanud {0} v\u00f5rra. Kokku ({1}) Archery.Skillup=[[YELLOW]]Vibunduse oskus kasvanud {0} v\u00f5rra. Kokku ({1}) -Fishing.ItemFound=[[GRAY]]Varandus leitud! +Fishing.Ability.TH.ItemFound=[[GRAY]]Varandus leitud! Mining.Ability.Lower=[[GRAY]]**TE LANGETASITE OMA KIRKA** Mining.Ability.Ready=[[GREEN]]**TE PANITE OMA KIRKA VALMIS** Mining.Listener=Kaevandamine: diff --git a/src/main/resources/locale/locale_fi.properties b/src/main/resources/locale/locale_fi.properties index 1c57b481f..9d2727453 100644 --- a/src/main/resources/locale/locale_fi.properties +++ b/src/main/resources/locale/locale_fi.properties @@ -15,8 +15,8 @@ Excavation.Listener=Kaivuu: Excavation.SkillName=KAIVANTO Excavation.Skills.GigaDrillBreaker.On=[[GREEN]]**TEHO PORA HAJOITUS AKTIVOITU** Excavation.Skillup=[[YELLOW]]Kaivuu taito nousi {0} tasolla. Kokonaism\u00e4\u00e4r\u00e4 ({1}) -Fishing.ItemFound=[[GRAY]]Treasure found! -Fishing.MagicFound=[[GRAY]]You feel a touch of magic with this catch... +Fishing.Ability.TH.ItemFound=[[GRAY]]Treasure found! +Fishing.Ability.TH.MagicFound=[[GRAY]]You feel a touch of magic with this catch... Herbalism.Ability.GTh=[[GREEN]]**VIHERPEUKALO** Herbalism.Listener=Yrttitietous: Herbalism.Skills.GTe.Refresh=[[GREEN]]Sinun [[YELLOW]]Viherpeukalo [[GREEN]]taito on latautunut! diff --git a/src/main/resources/locale/locale_fr.properties b/src/main/resources/locale/locale_fr.properties index 246c9cf30..e5053316f 100644 --- a/src/main/resources/locale/locale_fr.properties +++ b/src/main/resources/locale/locale_fr.properties @@ -80,9 +80,9 @@ Fishing.Effect.3=Remonte des objets magiques Fishing.Effect.4=Secousse (sur monstres) Fishing.Effect.5=Fait tomber des objets des monstres avec une canne \u00e0 p\u00eache Fishing.Enchant.Chance=[[RED]]Chasse magique: [[YELLOW]]{0} -Fishing.ItemFound=[[GRAY]]Tr\u00e9sor d\u00e9couvert ! -Fishing.Listener=P\u00eache : -Fishing.MagicFound=[[GRAY]]Vous ressentez quelque chose de magique dans cette prise... +Fishing.Ability.TH.ItemFound=[[GRAY]]Tr\u00e9sor d\u00e9couvert ! +Fishing.Listener=P\u00EAche\: +Fishing.Ability.TH.MagicFound=[[GRAY]]Vous ressentez quelque chose de magique dans cette prise... Fishing.SkillName=P\u00caCHE Fishing.Skillup=[[YELLOW]]Le talent p\u00eache augmente de {0}. Total ({1}) Herbalism.Ability.DoubleDropChance=[[RED]]Double Drop: [[YELLOW]]{0} diff --git a/src/main/resources/locale/locale_hu_HU.properties b/src/main/resources/locale/locale_hu_HU.properties index e3b8b309f..0b02bf1d5 100644 --- a/src/main/resources/locale/locale_hu_HU.properties +++ b/src/main/resources/locale/locale_hu_HU.properties @@ -24,7 +24,7 @@ Excavation.Skills.GigaDrillBreaker.Refresh=[[GREEN]]A TE [[YELLOW]]Giga B\u00e1n Excavation.Skills.GigaDrillBreaker.Other.On=[[GREEN]]{0}[[DARK_GREEN]] haszn\u00e1latban [[RED]]Giga B\u00e1ny\u00e1sz Cs\u00e1k\u00e1ny! Excavation.Skillup=[[YELLOW]]\u00c1s\u00e1s fejl\u0151d\u00f6tt {0} szinttel. \u00d6sszesen: ({1}) Fishing.Effect.10=J\u00e9g Horg\u00e1szat -Fishing.ItemFound=[[GRAY]]Kincs megtal\u00e1lva! +Fishing.Ability.TH.ItemFound=[[GRAY]]Kincs megtal\u00e1lva! Fishing.Listener=Horg\u00e1szat: Fishing.SkillName=HORG\u00c1SZAT Herbalism.Ability.Lower=[[GRAY]]**LETETTED A KAP\u00c1DAT** diff --git a/src/main/resources/locale/locale_it.properties b/src/main/resources/locale/locale_it.properties index a1d23ac1f..c608880f5 100644 --- a/src/main/resources/locale/locale_it.properties +++ b/src/main/resources/locale/locale_it.properties @@ -95,9 +95,9 @@ Fishing.Effect.10=Pesca sul Ghiaccio Fishing.Effect.11=Ti permette di pescare nei biomi ghiacciati Fishing.Enchant.Chance=[[RED]]Possibilit\u00e0 di Cacciatore di Magia: [[YELLOW]]{0} Fishing.Chance.Raining=[[BLUE]] Bonus Pioggia -Fishing.ItemFound=[[GRAY]]Hai trovato un tesoro! +Fishing.Ability.TH.ItemFound=[[GRAY]]Hai trovato un tesoro! Fishing.Listener=Pesca: -Fishing.MagicFound=[[GRAY]]Senti un tocco di magia in questa cattura... +Fishing.Ability.TH.MagicFound=[[GRAY]]Senti un tocco di magia in questa cattura... Fishing.SkillName=PESCA Fishing.Skillup=[[YELLOW]]L''abilit\u00e0 Pesca \u00e8 aumentata di {0}. Totale ({1}) Herbalism.Ability.DoubleDropChance=[[RED]]Possibilit\u00e0 di Doppio Drop: [[YELLOW]]{0} diff --git a/src/main/resources/locale/locale_ko.properties b/src/main/resources/locale/locale_ko.properties index 16ef0daa8..90e9eea46 100644 --- a/src/main/resources/locale/locale_ko.properties +++ b/src/main/resources/locale/locale_ko.properties @@ -95,9 +95,9 @@ Fishing.Effect.10=\uc5bc\uc74c \ub09a\uc2dc Fishing.Effect.11=\uc5bc\uc74c \uc9c0\ud615\uc5d0\uc11c \ub09a\uc2dc\ub97c \ud560 \uc218 \uc788\uac8c \ud574\uc90d\ub2c8\ub2e4. Fishing.Enchant.Chance=[[RED]]\ub9c8\ubc95 \ubcf4\ubb3c \uc0ac\ub0e5\uafbc \ud655\ub960: [[YELLOW]]{0} Fishing.Chance.Raining=[[BLUE]] \ube44 \ubcf4\ub108\uc2a4 -Fishing.ItemFound=[[GRAY]]\ubcf4\ubb3c\uc744 \ubc1c\uacac\ud588\uc2b5\ub2c8\ub2e4! +Fishing.Ability.TH.ItemFound=[[GRAY]]\ubcf4\ubb3c\uc744 \ubc1c\uacac\ud588\uc2b5\ub2c8\ub2e4! Fishing.Listener=\ub09a\uc2dc: -Fishing.MagicFound=[[GRAY]]\uc774\ubc88 \ub09a\uc2dc\uc5d0 \ub9c8\ubc95\uc758 \uc190\uae38\uc774 \ub290\uaef4\uc9d1\ub2c8\ub2e4. +Fishing.Ability.TH.MagicFound=[[GRAY]]\uc774\ubc88 \ub09a\uc2dc\uc5d0 \ub9c8\ubc95\uc758 \uc190\uae38\uc774 \ub290\uaef4\uc9d1\ub2c8\ub2e4. Fishing.SkillName=\ub09a\uc2dc Fishing.Skillup=[[YELLOW]]\ub09a\uc2dc \uae30\uc220\uc774 {0} \uc99d\uac00\ud558\uc5ec {1}\ub808\ubca8\uc774 \ub418\uc5c8\uc2b5\ub2c8\ub2e4. Herbalism.Ability.DoubleDropChance=[[RED]]2\ubc30 \ub4dc\ub78d \ud655\ub960: [[YELLOW]]{0} diff --git a/src/main/resources/locale/locale_nl.properties b/src/main/resources/locale/locale_nl.properties index d078cd376..296949fff 100644 --- a/src/main/resources/locale/locale_nl.properties +++ b/src/main/resources/locale/locale_nl.properties @@ -30,9 +30,9 @@ Excavation.Skills.GigaDrillBreaker.On=[[GREEN]]**GIGA DRILL BREKER GEACTIVEERD** Excavation.Skillup=[[YELLOW]]Uitgravings ervaring toegenomen met {0}. Totaal ({1}) Fishing.Effect.8=Meester Hengelaar Fishing.Chance.Raining=[[BLUE]] Regen Bonus -Fishing.ItemFound=[[GRAY]]Schat gevonden! +Fishing.Ability.TH.ItemFound=[[GRAY]]Schat gevonden! Fishing.Listener=Vissen: -Fishing.MagicFound=[[GRAY]]Jij voelt een vleugje magie met deze vangst... +Fishing.Ability.TH.MagicFound=[[GRAY]]Jij voelt een vleugje magie met deze vangst... Herbalism.Ability.GTh=[[GREEN]]**GROEN DUIMPJE** Herbalism.Effect.10=Hylian Geluk Herbalism.Effect.11=Geeft een kleine kans om zeldzame voorwerpen te vinden diff --git a/src/main/resources/locale/locale_pl.properties b/src/main/resources/locale/locale_pl.properties index d980d914e..907dc863f 100644 --- a/src/main/resources/locale/locale_pl.properties +++ b/src/main/resources/locale/locale_pl.properties @@ -93,9 +93,9 @@ Fishing.Effect.10=Lodowe lowienie ryb Fishing.Effect.11=Pozwala na lowienie ryb w zimowych biomach Fishing.Enchant.Chance=[[RED]]Szanse na Magicznego \u0141owc\u0119: [[YELLOW]]{0} Fishing.Chance.Raining=[[BLUE]] Bonus od Deszczu -Fishing.ItemFound=[[GRAY]]Znaleziono skarb! +Fishing.Ability.TH.ItemFound=[[GRAY]]Znaleziono skarb! Fishing.Listener=Rybactwo -Fishing.MagicFound=[[GRAY]]Wyczuwasz w pobli\u017cu \u017ar\u00f3d\u0142o magii... +Fishing.Ability.TH.MagicFound=[[GRAY]]Wyczuwasz w pobli\u017cu \u017ar\u00f3d\u0142o magii... Fishing.SkillName=RYBACTWO Fishing.Skillup=[[YELLOW]]Umiej\u0119tno\u015b\u0107 \u0142owienia wzros\u0142a o {0}. Razem ({1}) Herbalism.Ability.DoubleDropChance=[[RED]]Szansa na Podw\u00f3jny Drop: [[YELLOW]]{0} diff --git a/src/main/resources/locale/locale_pt_BR.properties b/src/main/resources/locale/locale_pt_BR.properties index 6ead63153..a1955e7dc 100644 --- a/src/main/resources/locale/locale_pt_BR.properties +++ b/src/main/resources/locale/locale_pt_BR.properties @@ -29,8 +29,8 @@ Excavation.Effect.3=Habilidade de cavar tesouros Excavation.Listener=Escava\u00e7\u00e3o: Excavation.SkillName=Escava\u00e7\u00e3o Excavation.Skillup=[[AMARELO]]Habilidade Escava\u00e7\u00e3o aumentada em {0}. Total ({1}) -Fishing.ItemFound=[[GRAY]]Tesouro encontrado! -Fishing.MagicFound=[[GRAY]]You feel a touch of magic with this catch... +Fishing.Ability.TH.ItemFound=[[GRAY]]Tesouro encontrado! +Fishing.Ability.TH.MagicFound=[[GRAY]]You feel a touch of magic with this catch... Fishing.SkillName=PESCARIA Herbalism.Ability.GTh=[[GREEN]]**DED\u00c3O VERDE** Herbalism.Ability.Lower=[[GRAY]]**VOC\u00ca ABAIXA SUA ENXADA** diff --git a/src/main/resources/locale/locale_ru.properties b/src/main/resources/locale/locale_ru.properties index 499eb1341..79e49124d 100644 --- a/src/main/resources/locale/locale_ru.properties +++ b/src/main/resources/locale/locale_ru.properties @@ -95,9 +95,9 @@ Fishing.Effect.10=\u041f\u043e\u0434\u043b\u0435\u0434\u043d\u0430\u044f \u0420\ Fishing.Effect.11=\u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u0430\u043c \u0440\u044b\u0431\u0430\u0447\u0438\u0442\u044c \u0432 \u0441\u043d\u0435\u0436\u043d\u044b\u0445 \u0431\u0438\u043e\u043c\u0430\u0445 Fishing.Enchant.Chance=[[RED]]\u0428\u0430\u043d\u0441 \u041e\u0445\u043e\u0442\u043d\u0438\u043a\u0430 \u0417\u0430 \u041c\u0430\u0433\u0438\u0435\u0439: [[YELLOW]]{0} Fishing.Chance.Raining=[[BLUE]] \u0411\u043e\u043d\u0443\u0441 \u0414\u043e\u0436\u0434\u044f -Fishing.ItemFound=[[GRAY]]\u041d\u0430\u0439\u0434\u0435\u043d\u043e \u0441\u043e\u043a\u0440\u043e\u0432\u0438\u0449\u0435! +Fishing.Ability.TH.ItemFound=[[GRAY]]\u041d\u0430\u0439\u0434\u0435\u043d\u043e \u0441\u043e\u043a\u0440\u043e\u0432\u0438\u0449\u0435! Fishing.Listener=\u0420\u044b\u0431\u043e\u043b\u043e\u0432\u0441\u0442\u0432\u043e: -Fishing.MagicFound=[[GRAY]]\u0412\u044b \u043f\u043e\u0447\u0443\u0432\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0438 \u043c\u0430\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u0440\u0438\u043a\u043e\u0441\u043d\u043e\u0432\u0435\u043d\u0438\u0435 \u0441 \u044d\u0442\u0438\u043c \u0443\u043b\u043e\u0432\u043e\u043c... +Fishing.Ability.TH.MagicFound=[[GRAY]]\u0412\u044b \u043f\u043e\u0447\u0443\u0432\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0438 \u043c\u0430\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u0440\u0438\u043a\u043e\u0441\u043d\u043e\u0432\u0435\u043d\u0438\u0435 \u0441 \u044d\u0442\u0438\u043c \u0443\u043b\u043e\u0432\u043e\u043c... Fishing.SkillName=\u0420\u042b\u0411\u041e\u041b\u041e\u0412\u0421\u0422\u0412\u041e Fishing.Skillup=[[YELLOW]]\u0423\u0440\u043e\u0432\u0435\u043d\u044c \u043d\u0430\u0432\u044b\u043a\u0430 \"\u0420\u044b\u0431\u043e\u043b\u043e\u0432\u0441\u0442\u0432\u043e\" \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d \u043d\u0430 {0}. \u0412\u0441\u0435\u0433\u043e ({1}) Herbalism.Ability.DoubleDropChance=[[RED]]\u0428\u0430\u043d\u0441 \u0414\u0432\u043e\u0439\u043d\u043e\u0433\u043e \u0414\u0440\u043e\u043f\u0430: [[YELLOW]]{0} % diff --git a/src/main/resources/locale/locale_sv.properties b/src/main/resources/locale/locale_sv.properties index dffd4e319..9b1bbb792 100644 --- a/src/main/resources/locale/locale_sv.properties +++ b/src/main/resources/locale/locale_sv.properties @@ -15,7 +15,7 @@ Excavation.Listener=Gr\u00e4vning: Excavation.SkillName=Gr\u00e4vning Excavation.Skills.GigaDrillBreaker.On=[[GREEN]]**GIGA BORR KROSSAREN AKTIVERAD** Excavation.Skillup=[[YELLOW]]Gr\u00e4vningsf\u00e4rdigheten har \u00f6kat med {0}. Totalt ({1}) -Fishing.ItemFound=[[GRAY]]Skatt hittad! +Fishing.Ability.TH.ItemFound=[[GRAY]]Skatt hittad! Herbalism.Ability.GTh=[[GREEN]]**GR\u00d6NA FINGRAR** Herbalism.Listener=V\u00e4xtk\u00e4nnedom: Herbalism.Skills.GTe.Refresh=[[GREEN]]Dina[[YELLOW]]Gr\u00f6na fingrar [[GREEN]]f\u00f6rm\u00e5ga \u00e4r vederkvickad! diff --git a/src/main/resources/locale/locale_th_TH.properties b/src/main/resources/locale/locale_th_TH.properties index d0ab0d46f..300c5fca2 100644 --- a/src/main/resources/locale/locale_th_TH.properties +++ b/src/main/resources/locale/locale_th_TH.properties @@ -94,9 +94,9 @@ Fishing.Effect.10=Ice Fishing Fishing.Effect.11=\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e34\u0e43\u0e2b\u0e49\u0e15\u0e01\u0e1b\u0e25\u0e32\u0e43\u0e19\u0e19\u0e49\u0e33\u0e41\u0e02\u0e47\u0e07 Fishing.Enchant.Chance=[[RED]]Magic Hunter \u0e42\u0e2d\u0e01\u0e32\u0e2a: [[YELLOW]]{0} Fishing.Chance.Raining=[[BLUE]] Rain Bonus -Fishing.ItemFound=[[GRAY]]\u0e44\u0e14\u0e49\u0e1e\u0e1a\u0e2a\u0e21\u0e1a\u0e31\u0e15\u0e34! +Fishing.Ability.TH.ItemFound=[[GRAY]]\u0e44\u0e14\u0e49\u0e1e\u0e1a\u0e2a\u0e21\u0e1a\u0e31\u0e15\u0e34! Fishing.Listener=\u0e17\u0e31\u0e01\u0e29\u0e30 Fishing: -Fishing.MagicFound=[[GRAY]]\u0e04\u0e38\u0e13\u0e23\u0e39\u0e49\u0e2a\u0e36\u0e01\u0e44\u0e14\u0e49\u0e16\u0e36\u0e07\u0e2a\u0e31\u0e21\u0e1c\u0e31\u0e2a\u0e02\u0e2d\u0e07\u0e40\u0e27\u0e17\u0e21\u0e19\u0e15\u0e23\u0e4c\u0e14\u0e49\u0e27\u0e22\u0e01\u0e32\u0e23\u0e08\u0e31\u0e1a\u0e2a\u0e34\u0e48\u0e07\u0e19\u0e35\u0e49 ... +Fishing.Ability.TH.MagicFound=[[GRAY]]\u0e04\u0e38\u0e13\u0e23\u0e39\u0e49\u0e2a\u0e36\u0e01\u0e44\u0e14\u0e49\u0e16\u0e36\u0e07\u0e2a\u0e31\u0e21\u0e1c\u0e31\u0e2a\u0e02\u0e2d\u0e07\u0e40\u0e27\u0e17\u0e21\u0e19\u0e15\u0e23\u0e4c\u0e14\u0e49\u0e27\u0e22\u0e01\u0e32\u0e23\u0e08\u0e31\u0e1a\u0e2a\u0e34\u0e48\u0e07\u0e19\u0e35\u0e49 ... Fishing.SkillName=FISHING Fishing.Skillup=[[YELLOW]]\u0e17\u0e31\u0e01\u0e29\u0e30 Fishing \u0e40\u0e1e\u0e34\u0e48\u0e21\u0e02\u0e36\u0e49\u0e19 {0}. \u0e21\u0e35\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14 ({1}) Herbalism.Ability.DoubleDropChance=[[RED]]Double Drop \u0e42\u0e2d\u0e01\u0e32\u0e2a: [[YELLOW]]{0} diff --git a/src/main/resources/locale/locale_tr_TR.properties b/src/main/resources/locale/locale_tr_TR.properties index e22d81651..b1621a5dc 100644 --- a/src/main/resources/locale/locale_tr_TR.properties +++ b/src/main/resources/locale/locale_tr_TR.properties @@ -10,7 +10,7 @@ Axes.Effect.2=Kritik Vuruslar Axes.SkillName=BALTALAR Excavation.Ability.Lower=[[GRAY]]**K\u00dcREGINI INDIRIYORSUN** Excavation.SkillName=KAZMA -Fishing.ItemFound=[[GRAY]]Hazine bulundu! +Fishing.Ability.TH.ItemFound=[[GRAY]]Hazine bulundu! Fishing.SkillName=BALIK TUTMA Herbalism.Ability.Lower=[[GRAY]]**\u00c7APANI INDIRIYORSUN** Herbalism.Ability.Ready=[[GREEN]]**\u00c7APANI HAZIRLIYORSUN** diff --git a/src/main/resources/locale/locale_zh_CN.properties b/src/main/resources/locale/locale_zh_CN.properties index 0dabfed30..ab33e54ad 100644 --- a/src/main/resources/locale/locale_zh_CN.properties +++ b/src/main/resources/locale/locale_zh_CN.properties @@ -95,9 +95,9 @@ Fishing.Effect.10=\u51b0\u6e14 Fishing.Effect.11=\u5141\u8bb8\u4f60\u5728\u51b0\u51b7\u7684\u73af\u5883\u4e0b\u9493\u9c7c Fishing.Enchant.Chance=[[RED]]\u9b54\u6cd5\u730e\u4eba\u51e0\u7387: [[YELLOW]]{0} Fishing.Chance.Raining=[[BLUE]] \u5927\u91cf\u5956\u52b1 -Fishing.ItemFound=[[GRAY]]\u53d1\u73b0\u5b9d\u7269\u4e86\uff01 +Fishing.Ability.TH.ItemFound=[[GRAY]]\u53d1\u73b0\u5b9d\u7269\u4e86\uff01 Fishing.Listener=\u9493\u9c7c(Fishing): -Fishing.MagicFound=[[GRAY]]\u4f60\u611f\u5230\u4e00\u80a1\u9b54\u529b\u7684\u6ce2\u52a8... +Fishing.Ability.TH.MagicFound=[[GRAY]]\u4f60\u611f\u5230\u4e00\u80a1\u9b54\u529b\u7684\u6ce2\u52a8... Fishing.SkillName=\u9493\u9c7c Fishing.Skillup=[[YELLOW]]\u9493\u9c7c\u6280\u80fd\u63d0\u5347\u4e86 {0}. \u603b\u5171 ({1}) Herbalism.Ability.DoubleDropChance=[[RED]]\u53cc\u500d\u6389\u843d\u51e0\u7387: [[YELLOW]]{0} diff --git a/src/main/resources/locale/locale_zh_TW.properties b/src/main/resources/locale/locale_zh_TW.properties index d2bebabe5..786f04931 100644 --- a/src/main/resources/locale/locale_zh_TW.properties +++ b/src/main/resources/locale/locale_zh_TW.properties @@ -95,9 +95,9 @@ Fishing.Effect.10=\u51b0\u91e3 Fishing.Effect.11=\u5141\u8a31\u4f60\u5728\u51b0\u5929\u96ea\u5730\u88e1\u91e3\u9b5a Fishing.Enchant.Chance=[[RED]]\u9b54\u6cd5\u7375\u4eba\u6a5f\u7387: [[YELLOW]]{0} Fishing.Chance.Raining=[[BLUE]] \u5927\u91cf\u734e\u52f5 -Fishing.ItemFound=[[GRAY]]\u767c\u73fe\u5bf6\u7269\u4e86\uff01 +Fishing.Ability.TH.ItemFound=[[GRAY]]\u767c\u73fe\u5bf6\u7269\u4e86\uff01 Fishing.Listener=\u91e3\u9b5a: -Fishing.MagicFound=[[GRAY]]\u4f60\u611f\u53d7\u5230\u9b54\u529b\u7684\u6ce2\u52d5... +Fishing.Ability.TH.MagicFound=[[GRAY]]\u4f60\u611f\u53d7\u5230\u9b54\u529b\u7684\u6ce2\u52d5... Fishing.SkillName=\u91e3\u9b5a Fishing.Skillup=[[YELLOW]]\u91e3\u9b5a\u6280\u80fd\u4e0a\u5347\u4e86 {0}! \u7e3d\u7b49\u7d1a ({1})! Herbalism.Ability.DoubleDropChance=[[RED]]\u96d9\u500d\u6389\u843d\u6a5f\u7387: [[YELLOW]]{0} diff --git a/src/main/resources/treasures.yml b/src/main/resources/treasures.yml index 269e8451c..955a03d7d 100644 --- a/src/main/resources/treasures.yml +++ b/src/main/resources/treasures.yml @@ -6,351 +6,433 @@ Fishing: LEATHER_BOOTS: Amount: 1 XP: 200 - Drop_Chance: 20.0 - Drop_Level: 0 - Max_Level: 400 + Rarity: COMMON LEATHER_HELMET: Amount: 1 XP: 200 - Drop_Chance: 20.0 - Drop_Level: 0 - Max_Level: 400 + Rarity: COMMON LEATHER_LEGGINGS: Amount: 1 XP: 200 - Drop_Chance: 20.0 - Drop_Level: 0 - Max_Level: 400 + Rarity: COMMON LEATHER_CHESTPLATE: Amount: 1 XP: 200 - Drop_Chance: 20.0 - Drop_Level: 0 - Max_Level: 400 + Rarity: COMMON WOOD_SWORD: Amount: 1 XP: 200 - Drop_Chance: 20.0 - Drop_Level: 0 - Max_Level: 200 + Rarity: COMMON WOOD_SPADE: Amount: 1 XP: 200 - Drop_Chance: 20.0 - Drop_Level: 0 - Max_Level: 200 + Rarity: COMMON WOOD_PICKAXE: Amount: 1 XP: 200 - Drop_Chance: 20.0 - Drop_Level: 0 - Max_Level: 200 + Rarity: COMMON WOOD_AXE: Amount: 1 XP: 200 - Drop_Chance: 20.0 - Drop_Level: 0 - Max_Level: 200 + Rarity: COMMON WOOD_HOE: Amount: 1 XP: 200 - Drop_Chance: 20.0 - Drop_Level: 0 - Max_Level: 200 - STONE_SWORD: - Amount: 1 - XP: 200 - Drop_Chance: 20.0 - Drop_Level: 0 - Max_Level: 400 - STONE_SPADE: - Amount: 1 - XP: 200 - Drop_Chance: 20.0 - Drop_Level: 0 - Max_Level: 400 - STONE_PICKAXE: - Amount: 1 - XP: 200 - Drop_Chance: 20.0 - Drop_Level: 0 - Max_Level: 400 - STONE_AXE: - Amount: 1 - XP: 200 - Drop_Chance: 20.0 - Drop_Level: 0 - Max_Level: 400 - STONE_HOE: - Amount: 1 - XP: 200 - Drop_Chance: 20.0 - Drop_Level: 0 - Max_Level: 400 - IRON_SWORD: - Amount: 1 - XP: 200 - Drop_Chance: 25.0 - Drop_Level: 200 - Max_Level: -1 - IRON_SPADE: - Amount: 1 - XP: 200 - Drop_Chance: 25.0 - Drop_Level: 200 - Max_Level: -1 - IRON_PICKAXE: - Amount: 1 - XP: 200 - Drop_Chance: 25.0 - Drop_Level: 200 - Max_Level: -1 - IRON_AXE: - Amount: 1 - XP: 200 - Drop_Chance: 25.0 - Drop_Level: 200 - Max_Level: -1 - IRON_HOE: - Amount: 1 - XP: 200 - Drop_Chance: 25.0 - Drop_Level: 200 - Max_Level: -1 - IRON_BOOTS: - Amount: 1 - XP: 200 - Drop_Chance: 25.0 - Drop_Level: 200 - Max_Level: -1 - IRON_HELMET: - Amount: 1 - XP: 200 - Drop_Chance: 25.0 - Drop_Level: 200 - Max_Level: -1 - IRON_LEGGINGS: - Amount: 1 - XP: 200 - Drop_Chance: 25.0 - Drop_Level: 200 - Max_Level: -1 - IRON_CHESTPLATE: - Amount: 1 - XP: 200 - Drop_Chance: 25.0 - Drop_Level: 200 - Max_Level: -1 - ENDER_PEARL: - Amount: 1 - XP: 200 - Drop_Chance: 25.0 - Drop_Level: 200 - Max_Level: -1 - GOLD_SWORD: - Amount: 1 - XP: 200 - Drop_Chance: 30.0 - Drop_Level: 400 - Max_Level: -1 - GOLD_SPADE: - Amount: 1 - XP: 200 - Drop_Chance: 30.0 - Drop_Level: 400 - Max_Level: -1 - GOLD_PICKAXE: - Amount: 1 - XP: 200 - Drop_Chance: 30.0 - Drop_Level: 400 - Max_Level: -1 - GOLD_AXE: - Amount: 1 - XP: 200 - Drop_Chance: 30.0 - Drop_Level: 400 - Max_Level: -1 - GOLD_HOE: - Amount: 1 - XP: 200 - Drop_Chance: 30.0 - Drop_Level: 400 - Max_Level: -1 - GOLD_BOOTS: - Amount: 1 - XP: 200 - Drop_Chance: 30.0 - Drop_Level: 400 - Max_Level: -1 - GOLD_HELMET: - Amount: 1 - XP: 200 - Drop_Chance: 30.0 - Drop_Level: 400 - Max_Level: -1 - GOLD_LEGGINGS: - Amount: 1 - XP: 200 - Drop_Chance: 30.0 - Drop_Level: 400 - Max_Level: -1 - GOLD_CHESTPLATE: - Amount: 1 - XP: 200 - Drop_Chance: 30.0 - Drop_Level: 400 - Max_Level: -1 - BLAZE_ROD: - Amount: 1 - XP: 200 - Drop_Chance: 30.0 - Drop_Level: 400 - Max_Level: -1 - RECORD_3: - Amount: 1 - XP: 200 - Drop_Chance: 30.0 - Drop_Level: 400 - Max_Level: -1 - RECORD_4: - Amount: 1 - XP: 200 - Drop_Chance: 30.0 - Drop_Level: 400 - Max_Level: -1 - RECORD_5: - Amount: 1 - XP: 200 - Drop_Chance: 30.0 - Drop_Level: 400 - Max_Level: -1 - DIAMOND_SWORD: - Amount: 1 - XP: 200 - Drop_Chance: 35.0 - Drop_Level: 600 - Max_Level: -1 - DIAMOND_SPADE: - Amount: 1 - XP: 200 - Drop_Chance: 35.0 - Drop_Level: 600 - Max_Level: -1 - DIAMOND_PICKAXE: - Amount: 1 - XP: 200 - Drop_Chance: 35.0 - Drop_Level: 600 - Max_Level: -1 - DIAMOND_AXE: - Amount: 1 - XP: 200 - Drop_Chance: 35.0 - Drop_Level: 600 - Max_Level: -1 - DIAMOND_HOE: - Amount: 1 - XP: 200 - Drop_Chance: 35.0 - Drop_Level: 600 - Max_Level: -1 - DIAMOND_BOOTS: - Amount: 1 - XP: 200 - Drop_Chance: 35.0 - Drop_Level: 600 - Max_Level: -1 - DIAMOND_HELMET: - Amount: 1 - XP: 200 - Drop_Chance: 35.0 - Drop_Level: 600 - Max_Level: -1 - DIAMOND_LEGGINGS: - Amount: 1 - XP: 200 - Drop_Chance: 35.0 - Drop_Level: 600 - Max_Level: -1 - DIAMOND_CHESTPLATE: - Amount: 1 - XP: 200 - Drop_Chance: 35.0 - Drop_Level: 600 - Max_Level: -1 - RECORD_6: - Amount: 1 - XP: 200 - Drop_Chance: 35.0 - Drop_Level: 600 - Max_Level: -1 - RECORD_7: - Amount: 1 - XP: 200 - Drop_Chance: 35.0 - Drop_Level: 600 - Max_Level: -1 - RECORD_8: - Amount: 1 - XP: 200 - Drop_Chance: 35.0 - Drop_Level: 600 - Max_Level: -1 - RECORD_9: - Amount: 1 - XP: 200 - Drop_Chance: 35.0 - Drop_Level: 600 - Max_Level: -1 - RECORD_10: - Amount: 1 - XP: 200 - Drop_Chance: 35.0 - Drop_Level: 600 - Max_Level: -1 - RECORD_11: - Amount: 1 - XP: 200 - Drop_Chance: 35.0 - Drop_Level: 600 - Max_Level: -1 - RECORD_12: - Amount: 1 - XP: 200 - Drop_Chance: 35.0 - Drop_Level: 600 - Max_Level: -1 - GHAST_TEAR: - Amount: 1 - XP: 200 - Drop_Chance: 35.0 - Drop_Level: 600 - Max_Level: -1 - DIAMOND: - Amount: 5 - XP: 200 - Drop_Chance: 40.0 - Drop_Level: 800 - Max_Level: -1 - IRON_INGOT: - Amount: 5 - XP: 200 - Drop_Chance: 40.0 - Drop_Level: 800 - Max_Level: -1 - GOLD_INGOT: - Amount: 5 - XP: 200 - Drop_Chance: 40.0 - Drop_Level: 800 - Max_Level: -1 + Rarity: COMMON INK_SACK_BLUE: Amount: 20 XP: 200 - Drop_Chance: 40.0 - Drop_Level: 800 - Max_Level: -1 + Rarity: COMMON + STONE_SWORD: + Amount: 1 + XP: 200 + Rarity: UNCOMMON + STONE_SPADE: + Amount: 1 + XP: 200 + Rarity: UNCOMMON + STONE_PICKAXE: + Amount: 1 + XP: 200 + Rarity: UNCOMMON + STONE_AXE: + Amount: 1 + XP: 200 + Rarity: UNCOMMON + STONE_HOE: + Amount: 1 + XP: 200 + Rarity: UNCOMMON + GOLD_SWORD: + Amount: 1 + XP: 200 + Rarity: UNCOMMON + GOLD_SPADE: + Amount: 1 + XP: 200 + Rarity: UNCOMMON + GOLD_PICKAXE: + Amount: 1 + XP: 200 + Rarity: UNCOMMON + GOLD_AXE: + Amount: 1 + XP: 200 + Rarity: UNCOMMON + GOLD_HOE: + Amount: 1 + XP: 200 + Rarity: UNCOMMON + GOLD_BOOTS: + Amount: 1 + XP: 200 + Rarity: UNCOMMON + GOLD_HELMET: + Amount: 1 + XP: 200 + Rarity: UNCOMMON + GOLD_LEGGINGS: + Amount: 1 + XP: 200 + Rarity: UNCOMMON + GOLD_CHESTPLATE: + Amount: 1 + XP: 200 + Rarity: UNCOMMON + IRON_INGOT: + Amount: 5 + XP: 200 + Rarity: UNCOMMON + GOLD_INGOT: + Amount: 5 + XP: 200 + Rarity: UNCOMMON + IRON_SWORD: + Amount: 1 + XP: 200 + Rarity: RARE + IRON_SPADE: + Amount: 1 + XP: 200 + Rarity: RARE + IRON_PICKAXE: + Amount: 1 + XP: 200 + Rarity: RARE + IRON_AXE: + Amount: 1 + XP: 200 + Rarity: RARE + IRON_HOE: + Amount: 1 + XP: 200 + Rarity: RARE + ENDER_PEARL: + Amount: 1 + XP: 200 + Rarity: RARE + BLAZE_ROD: + Amount: 1 + XP: 200 + Rarity: RARE + IRON_BOOTS: + Amount: 1 + XP: 200 + Rarity: EPIC + IRON_HELMET: + Amount: 1 + XP: 200 + Rarity: EPIC + IRON_LEGGINGS: + Amount: 1 + XP: 200 + Rarity: EPIC + IRON_CHESTPLATE: + Amount: 1 + XP: 200 + Rarity: EPIC + GHAST_TEAR: + Amount: 1 + XP: 200 + Rarity: EPIC + DIAMOND: + Amount: 5 + XP: 200 + Rarity: EPIC + DIAMOND_SWORD: + Amount: 1 + XP: 200 + Rarity: LEGENDARY + DIAMOND_SPADE: + Amount: 1 + XP: 200 + Rarity: LEGENDARY + DIAMOND_PICKAXE: + Amount: 1 + XP: 200 + Rarity: LEGENDARY + DIAMOND_AXE: + Amount: 1 + XP: 200 + Rarity: LEGENDARY + DIAMOND_HOE: + Amount: 1 + XP: 200 + Rarity: LEGENDARY + DIAMOND_BOOTS: + Amount: 1 + XP: 200 + Rarity: LEGENDARY + DIAMOND_HELMET: + Amount: 1 + XP: 200 + Rarity: LEGENDARY + DIAMOND_LEGGINGS: + Amount: 1 + XP: 200 + Rarity: LEGENDARY + DIAMOND_CHESTPLATE: + Amount: 1 + XP: 200 + Rarity: LEGENDARY + RECORD_3: + Amount: 1 + XP: 200 + Rarity: RECORD + RECORD_4: + Amount: 1 + XP: 200 + Rarity: RECORD + RECORD_5: + Amount: 1 + XP: 200 + Rarity: RECORD + RECORD_6: + Amount: 1 + XP: 200 + Rarity: RECORD + RECORD_7: + Amount: 1 + XP: 200 + Rarity: RECORD + RECORD_8: + Amount: 1 + XP: 200 + Rarity: RECORD + RECORD_9: + Amount: 1 + XP: 200 + Rarity: RECORD + RECORD_10: + Amount: 1 + XP: 200 + Rarity: RECORD + RECORD_11: + Amount: 1 + XP: 200 + Rarity: RECORD + RECORD_12: + Amount: 1 + XP: 200 + Rarity: RECORD +# +# Fishing drop rates +### +Item_Drop_Rates: + Tier_1: + TRAP: 7.68 + COMMON: 7.50 + UNCOMMON: 1.25 + RARE: 0.25 + EPIC: 0.10 + LEGENDARY: 0.01 + RECORD: 0.01 + Tier_2: + TRAP: 2.50 + COMMON: 6.50 + UNCOMMON: 1.75 + RARE: 0.75 + EPIC: 0.50 + LEGENDARY: 0.05 + RECORD: 0.01 + Tier_3: + TRAP: 1.50 + COMMON: 3.50 + UNCOMMON: 2.75 + RARE: 1.25 + EPIC: 1.00 + LEGENDARY: 0.10 + RECORD: 0.01 + Tier_4: + TRAP: 1.00 + COMMON: 2.00 + UNCOMMON: 3.50 + RARE: 2.25 + EPIC: 1.50 + LEGENDARY: 1.00 + RECORD: 0.01 + Tier_5: + TRAP: 0.25 + COMMON: 1.50 + UNCOMMON: 3.75 + RARE: 2.50 + EPIC: 2.00 + LEGENDARY: 1.00 + RECORD: 0.01 + Tier_6: + TRAP: 0.10 + COMMON: 1.00 + UNCOMMON: 3.25 + RARE: 3.75 + EPIC: 2.50 + LEGENDARY: 1.50 + RECORD: 0.05 + Tier_7: + TRAP: 0.05 + COMMON: 0.25 + UNCOMMON: 2.75 + RARE: 4.00 + EPIC: 5.00 + LEGENDARY: 2.50 + RECORD: 0.10 + Tier_8: + TRAP: 0.01 + COMMON: 0.10 + UNCOMMON: 1.50 + RARE: 6.00 + EPIC: 7.50 + LEGENDARY: 5.00 + RECORD: 0.25 +# +# Fishing enchantment drop rates +### +Enchantments_Rarity: + COMMON: + EFFICIENCY: 1 + UNBREAKING: 1 + FORTUNE: 1 + PROTECTION: 1 + FIRE_PROTECTION: 1 + FEATHER_FALLING: 1 + BLAST_PROTECTION: 1 + PROJECTILE_PROTECTION: 1 + RESPIRATION: 1 + THORNS: 1 + SHARPNESS: 1 + SMITE: 1 + BANE_OF_ARTHROPODS: 1 + POWER: 1 + UNCOMMON: + EFFICIENCY: 2 + PROTECTION: 2 + FIRE_PROTECTION: 2 + FEATHER_FALLING: 2 + BLAST_PROTECTION: 2 + PROJECTILE_PROTECTION: 2 + SHARPNESS: 2 + SMITE: 2 + BANE_OF_ARTHROPODS: 2 + KNOCKBACK: 1 + LOOTING: 1 + POWER: 2 + PUNCH: 1 + RARE: + EFFICIENCY: 3 + UNBREAKING: 2 + PROTECTION: 3 + FIRE_PROTECTION: 3 + FEATHER_FALLING: 3 + BLAST_PROTECTION: 3 + PROJECTILE_PROTECTION: 3 + RESPIRATION: 2 + SHARPNESS: 3 + SMITE: 3 + BANE_OF_ARTHROPODS: 3 + FIRE_ASPECT: 1 + LOOTING: 2 + POWER: 3 + EPIC: + EFFICIENCY: 4 + FORTUNE: 2 + AQUA_AFFINITY: 1 + THORNS: 2 + SHARPNESS: 4 + SMITE: 4 + BANE_OF_ARTHROPODS: 4 + POWER: 4 + FLAME: 1 + LEGENDARY: + EFFICIENCY: 5 + UNBREAKING: 3 + FORTUNE: 3 + PROTECTION: 4 + FIRE_PROTECTION: 4 + FEATHER_FALLING: 4 + BLAST_PROTECTION: 4 + PROJECTILE_PROTECTION: 4 + RESPIRATION: 3 + AQUA_AFFINITY: 2 + THORNS: 3 + SHARPNESS: 5 + SMITE: 5 + BANE_OF_ARTHROPODS: 5 + KNOCKBACK: 2 + FIRE_ASPECT: 2 + LOOTING: 3 + SILK_TOUCH: 1 + POWER: 5 + PUNCH: 2 + INFINITY: 1 + +Enchantment_Drop_Rates: + Tier_1: + COMMON: 5.00 + UNCOMMON: 1.00 + RARE: 0.10 + EPIC: 0.01 + LEGENDARY: 0.01 + Tier_2: + COMMON: 7.50 + UNCOMMON: 1.00 + RARE: 0.10 + EPIC: 0.01 + LEGENDARY: 0.01 + Tier_3: + COMMON: 7.50 + UNCOMMON: 2.50 + RARE: 0.25 + EPIC: 0.10 + LEGENDARY: 0.01 + Tier_4: + COMMON: 10.0 + UNCOMMON: 2.75 + RARE: 0.50 + EPIC: 0.10 + LEGENDARY: 0.05 + Tier_5: + COMMON: 10.0 + UNCOMMON: 4.00 + RARE: 0.75 + EPIC: 0.25 + LEGENDARY: 0.10 + Tier_6: + COMMON: 9.50 + UNCOMMON: 5.50 + RARE: 1.75 + EPIC: 0.50 + LEGENDARY: 0.25 + Tier_7: + COMMON: 8.50 + UNCOMMON: 7.50 + RARE: 2.75 + EPIC: 0.75 + LEGENDARY: 0.50 + Tier_8: + COMMON: 7.50 + UNCOMMON: 10.0 + RARE: 5.25 + EPIC: 1.50 + LEGENDARY: 0.75 # # Settings for Excavation ### @@ -826,4 +908,4 @@ Shake: Amount: 1 XP: 0 Drop_Chance: 98.0 - Drop_Level: 0 \ No newline at end of file + Drop_Level: 0