Browse Source

Fishing now uses custom drops. ("Attack of the Giant Config File")

GJ 13 years ago
parent
commit
9ef9ffd16f

+ 1 - 0
Changelog.txt

@@ -3,6 +3,7 @@ Changelog:
 
 Version 1.3.00-dev
  - Added ability to customize drops for Excavation skill
+ - Added ability to customize drops for Fishing skill
  - Added player notification for when they stop Bleeding
  - Added configuration option to control mcMMO reporting damage events
  - Added hunger regain bonuses to Herbalism skill

+ 14 - 39
src/main/java/com/gmail/nossr50/config/LoadProperties.java

@@ -48,10 +48,7 @@ public class LoadProperties {
 			enableCobbleToMossy, useMySQL, toolsLoseDurabilityFromAbilities,
 			pvpxp, miningrequirespickaxe, excavationRequiresShovel,
 			woodcuttingrequiresaxe, anvilmessages, mayDowngradeEnchants,
-			mayLoseEnchants, fishingDrops, leatherArmor, ironArmor, goldArmor,
-			diamondArmor, woodenTools, stoneTools, ironTools, goldTools,
-			diamondTools, enderPearl, blazeRod, records, glowstoneDust,
-			fishingDiamonds, aDisplayNames, pDisplayNames, enableSmoothToMossy,
+			mayLoseEnchants, fishingDrops, aDisplayNames, pDisplayNames, enableSmoothToMossy,
 			enableDirtToGrass, statsTracking, eventCallback, herbalismHungerBonus;
 
 	public static String MySQLtablePrefix, MySQLuserName,
@@ -70,9 +67,7 @@ public class LoadProperties {
 			repairdiamondlevel, rWood, rStone, rIron, rGold, rDiamond, rString,
 			rLeather, downgradeRank1, downgradeRank2, downgradeRank3,
 			downgradeRank4, keepEnchantsRank1, keepEnchantsRank2,
-			keepEnchantsRank3, keepEnchantsRank4, fishingDropChanceTier1,
-			fishingDropChanceTier2, fishingDropChanceTier3,
-			fishingDropChanceTier4, fishingDropChanceTier5, mnetherwart,
+			keepEnchantsRank3, keepEnchantsRank4, mnetherwart,
 			mvines, mlilypad, mendstone, mmossstone,
 			levelCapAcrobatics, levelCapArchery, levelCapAxes, levelCapExcavation,
 			levelCapFishing, levelCapHerbalism, levelCapMining, levelCapRepair,
@@ -89,7 +84,7 @@ public class LoadProperties {
 			unarmed_r, unarmed_g, unarmed_b, woodcutting_r, woodcutting_g,
 			woodcutting_b, pvpxprewardmodifier, tamingxpmodifier,
 			miningxpmodifier, repairxpmodifier, woodcuttingxpmodifier,
-			sorceryxpmodifier, unarmedxpmodifier, herbalismxpmodifier,
+			fishingxpmodifier, unarmedxpmodifier, herbalismxpmodifier,
 			excavationxpmodifier, archeryxpmodifier, swordsxpmodifier,
 			axesxpmodifier, acrobaticsxpmodifier;
 
@@ -325,7 +320,6 @@ public class LoadProperties {
 		woodcuttingrequiresaxe = readBoolean("Skills.Woodcutting.Requires_Axe", true);
 		repairdiamondlevel = readInteger("Skills.Repair.Diamond.Level_Required", 50);
 
-		sorceryxpmodifier = readDouble("Experience.Formula.Multiplier.Sorcery", 1.0);
 		tamingxpmodifier = readDouble("Experience.Formula.Multiplier.Taming", 1.0);
 		miningxpmodifier = readDouble("Experience.Formula.Multiplier.Mining", 1.0);
 		repairxpmodifier = readDouble("Experience.Formula.Multiplier.Repair", 1.0);
@@ -337,6 +331,7 @@ public class LoadProperties {
 		swordsxpmodifier = readDouble("Experience.Formula.Multiplier.Swords", 1.0);
 		axesxpmodifier = readDouble("Experience.Formula.Multiplier.Axes", 1.0);
 		acrobaticsxpmodifier = readDouble("Experience.Formula.Multiplier.Acrobatics", 1.0);
+		fishingxpmodifier = readDouble("Experience.Forumla.Multiplier.Fishing", 1.0);
 
 		anvilmessages = readBoolean("Skills.Repair.Anvil_Messages", true);
 		anvilID = readInteger("Skills.Repair.Anvil_ID", 42);
@@ -380,31 +375,12 @@ public class LoadProperties {
 		keepEnchantsRank3 = readInteger("Arcane_Forging.Keep_Enchants.Chance.Rank_3", 30);
 		keepEnchantsRank4 = readInteger("Arcane_Forging.Keep_Enchants.Chance.Rank_4", 40);
 
-		fishingDrops = readBoolean("Fishing.Drops.Item_Drops_Enabled", true);
-		fishingTier1 = readInteger("Fishing.Drop_Level.Tier1", 0);
-		fishingTier2 = readInteger("Fishing.Drop_Level.Tier2", 200);
-		fishingTier3 = readInteger("Fishing.Drop_Level.Tier3", 400);
-		fishingTier4 = readInteger("Fishing.Drop_Level.Tier4", 600);
-		fishingTier5 = readInteger("Fishing.Drop_Level.Tier5", 800);
-		fishingDropChanceTier1 = readInteger("Fishing.Drops.Drop_Chance.Tier_1", 20);
-		fishingDropChanceTier2 = readInteger("Fishing.Drops.Drop_Chance.Tier_2", 25);
-		fishingDropChanceTier3 = readInteger("Fishing.Drops.Drop_Chance.Tier_3", 30);
-		fishingDropChanceTier4 = readInteger("Fishing.Drops.Drop_Chance.Tier_4", 35);
-		fishingDropChanceTier5 = readInteger("Fishing.Drops.Drop_Chance.Tier_5", 40);
-		leatherArmor = readBoolean("Fishing.Drops.Leather_Armor", true);
-		ironArmor = readBoolean("Fishing.Drops.Iron_Armor", true);
-		goldArmor = readBoolean("Fishing.Drops.Gold_Armor", true);
-		diamondArmor = readBoolean("Fishing.Drops.Diamond_Armor", true);
-		woodenTools = readBoolean("Fishing.Drops.Wooden_Tools", true);
-		stoneTools = readBoolean("Fishing.Drops.Stone_Tools", true);
-		ironTools = readBoolean("Fishing.Drops.Iron_Tools", true);
-		goldTools = readBoolean("Fishing.Drops.Gold_Tools", true);
-		diamondTools = readBoolean("Fishing.Drops.Diamond_Tools", true);
-		enderPearl = readBoolean("Fishing.Drops.Ender_Pearl", true);
-		blazeRod = readBoolean("Fishing.Drops.Blaze_Rod", true);
-		records = readBoolean("Fishing.Drops.Records", true);
-		glowstoneDust = readBoolean("Fishing.Drops.Glowstone_Dust", true);
-		fishingDiamonds = readBoolean("Fishing.Drops.Diamonds", true);
+		fishingDrops = readBoolean("Fishing.Drops_Enabled", true);
+		fishingTier1 = readInteger("Fishing.Tier_Levels.Tier1", 0);
+		fishingTier2 = readInteger("Fishing.Tier_Levels.Tier2", 200);
+		fishingTier3 = readInteger("Fishing.Tier_Levels.Tier3", 400);
+		fishingTier4 = readInteger("Fishing.Tier_Levels.Tier4", 600);
+		fishingTier5 = readInteger("Fishing.Tier_Levels.Tier5", 800);
 
 		xplockEnable = readBoolean("Commands.xplock.Enabled", true);
 		xprateEnable = readBoolean("Commands.xprate.Enabled", true);
@@ -473,11 +449,10 @@ public class LoadProperties {
 				if(config.getConfigurationSection("Treasures." + treasureName + ".Drops_From").getKeys(false).size() != 1)
 					reason.add("Fishing drops cannot also be excavation drops");
 
-				if(!config.contains("Treasures." + treasureName + ".Max_Levels")) reason.add("Missing Max_Levels");
+				if(!config.contains("Treasures." + treasureName + ".Max_Level")) reason.add("Missing Max_Level");
+				int maxLevel = config.getInt("Treasures." + treasureName + ".Max_Level");
 
-				int maxLevel = config.getInt("Treasures." + treasureName + ".Max_Levels");
-
-				if(maxLevel < 0) reason.add("Invalid Max_Levels: " + maxLevel);
+				if(maxLevel < 0) reason.add("Invalid Max_Level: " + maxLevel);
 
 				if(noErrorsInTreasure(reason)) {
 					FishingTreasure fTreasure = new FishingTreasure(item, xp, dropChance, dropLevel, maxLevel);
@@ -511,7 +486,7 @@ public class LoadProperties {
 		}
 
 		List<String> excavationTreasures = config.getStringList("Excavation.Treasure");
-		List<String> fishingTreasures = config.getStringList("Excavation.Treasure");
+		List<String> fishingTreasures = config.getStringList("Fishing.Treasure");
 
 		Iterator<String> treasureIterator = treasures.keySet().iterator();
 		while(treasureIterator.hasNext()) {

+ 3 - 0
src/main/java/com/gmail/nossr50/datatypes/PlayerProfile.java

@@ -985,6 +985,9 @@ public class PlayerProfile
 			case AXES:
 				xp=(int) (xp/LoadProperties.axesxpmodifier);
 				break;
+			case FISHING:
+				xp=(int) (xp/LoadProperties.fishingxpmodifier);
+				break;
 			}
 			xp=xp*LoadProperties.xpGainMultiplier;
 			

+ 39 - 999
src/main/java/com/gmail/nossr50/skills/Fishing.java

@@ -16,6 +16,8 @@
 */
 package com.gmail.nossr50.skills;
 
+import java.util.List;
+
 import org.bukkit.Location;
 import org.bukkit.Material;
 import org.bukkit.enchantments.Enchantment;
@@ -89,20 +91,16 @@ public class Fishing {
 
 	private static void getFishingResultsTier1(Player player, PlayerFishEvent event)
 	{
-		int skillLevel = Users.getProfile(player).getSkillLevel(SkillType.FISHING);
 		Item theCatch = (Item)event.getCaught();
-		if(Math.random() * 100 < LoadProperties.fishingDropChanceTier1)
+		if(LoadProperties.fishingDrops)
 		{
-			for(FishingTreasure treasure : LoadProperties.fishingRewardsTier1)
+			List<FishingTreasure> rewards = LoadProperties.fishingRewardsTier1;
+			FishingTreasure treasure = rewards.get((int)(Math.random() * rewards.size()));
+			
+			if(Math.random() * 100 > (100.00 - treasure.getDropChance()))
 			{
-				if(Math.random() * 100 > (100.00 - treasure.getDropChance()))
-				{
-					if(skillLevel >= treasure.getDropLevel() && skillLevel <= treasure.getMaxLevel())
-					{
-						Users.getProfile(player).addXP(SkillType.FISHING, treasure.getXp(), player);
-						theCatch.setItemStack(treasure.getDrop());
-					}
-				}
+				Users.getProfile(player).addXP(SkillType.FISHING, treasure.getXp(), player);
+				theCatch.setItemStack(treasure.getDrop());
 			}
 		} 
 		else
@@ -110,122 +108,21 @@ public class Fishing {
 			theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
 		}
 		//Change durability to random value
-		theCatch.getItemStack().setDurability((short) (Math.random() * theCatch.getItemStack().getType().getMaxDurability())); //Change the damage value
-		
-//		Item theCatch = (Item)event.getCaught();
-//		if(Math.random() * 100 < LoadProperties.fishingDropChanceTier1)
-//		{
-//			switch(randomNum)
-//			{
-//			case 1:
-//				if(LoadProperties.leatherArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.LEATHER_BOOTS, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 2:
-//				if(LoadProperties.leatherArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.LEATHER_HELMET, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 3:
-//				if(LoadProperties.leatherArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.LEATHER_LEGGINGS, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 4:
-//				if(LoadProperties.leatherArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.LEATHER_CHESTPLATE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 5:
-//				if(LoadProperties.woodenTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.WOOD_AXE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 6:
-//				if(LoadProperties.woodenTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.WOOD_PICKAXE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 7:
-//				if(LoadProperties.woodenTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.WOOD_SWORD, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 8:
-//				if(LoadProperties.woodenTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.WOOD_HOE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 9:
-//				if(LoadProperties.woodenTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.WOOD_SPADE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 10:
-//				if(LoadProperties.stoneTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.STONE_AXE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 11:
-//				if(LoadProperties.stoneTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.STONE_PICKAXE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 12:
-//				if(LoadProperties.stoneTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.STONE_SWORD, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 13:
-//				if(LoadProperties.stoneTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.STONE_HOE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 14:
-//				if(LoadProperties.stoneTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.STONE_SPADE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			}
-//		} else
-//		{
-//			theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//		}
-//		//Change durability to random value
-//		theCatch.getItemStack().setDurability((short) (Math.random() * theCatch.getItemStack().getType().getMaxDurability())); //Change the damage value
+		theCatch.getItemStack().setDurability((short) (Math.random() * theCatch.getItemStack().getType().getMaxDurability())); //Change the damage value		
 	}
 
 	private static void getFishingResultsTier2(Player player, PlayerFishEvent event)
 	{
-		int skillLevel = Users.getProfile(player).getSkillLevel(SkillType.FISHING);
 		Item theCatch = (Item)event.getCaught();
-		if(Math.random() * 100 < LoadProperties.fishingDropChanceTier2)
+		if(LoadProperties.fishingDrops)
 		{
-			for(FishingTreasure treasure : LoadProperties.fishingRewardsTier2)
+			List<FishingTreasure> rewards = LoadProperties.fishingRewardsTier2;
+			FishingTreasure treasure = rewards.get((int)(Math.random() * rewards.size()));
+			
+			if(Math.random() * 100 > (100.00 - treasure.getDropChance()))
 			{
-				if(Math.random() * 100 > (100.00 - treasure.getDropChance()))
-				{
-					if(skillLevel >= treasure.getDropLevel() && skillLevel <= treasure.getMaxLevel())
-					{
-						Users.getProfile(player).addXP(SkillType.FISHING, treasure.getXp(), player);
-						theCatch.setItemStack(treasure.getDrop());
-					}
-				}
+				Users.getProfile(player).addXP(SkillType.FISHING, treasure.getXp(), player);
+				theCatch.setItemStack(treasure.getDrop());
 			}
 		} 
 		else
@@ -234,154 +131,20 @@ public class Fishing {
 		}
 		//Change durability to random value
 		theCatch.getItemStack().setDurability((short) (Math.random() * theCatch.getItemStack().getType().getMaxDurability())); //Change the damage value
-		
-//		int randomNum = (int)(Math.random() * 20);
-//		Item theCatch = (Item)event.getCaught();
-//
-//		if(Math.random() * 100 < LoadProperties.fishingDropChanceTier2)
-//		{
-//			switch(randomNum)
-//			{
-//			case 1:
-//				if(LoadProperties.leatherArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.LEATHER_BOOTS, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 2:
-//				if(LoadProperties.leatherArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.LEATHER_HELMET, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 3:
-//				if(LoadProperties.leatherArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.LEATHER_LEGGINGS, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 4:
-//				if(LoadProperties.leatherArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.LEATHER_CHESTPLATE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 5:
-//				if(LoadProperties.ironTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.IRON_AXE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 6:
-//				if(LoadProperties.ironTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.IRON_PICKAXE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 7:
-//				if(LoadProperties.ironTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.IRON_SWORD, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 8:
-//				if(LoadProperties.ironTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.IRON_HOE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 9:
-//				if(LoadProperties.ironTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.IRON_SPADE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 10:
-//				if(LoadProperties.stoneTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.STONE_AXE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 11:
-//				if(LoadProperties.stoneTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.STONE_PICKAXE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 12:
-//				if(LoadProperties.stoneTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.STONE_SWORD, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 13:
-//				if(LoadProperties.stoneTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.STONE_HOE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 14:
-//				if(LoadProperties.stoneTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.STONE_SPADE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 15:
-//				if(LoadProperties.ironArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.IRON_BOOTS, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 16:
-//				if(LoadProperties.ironArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.IRON_LEGGINGS, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 17:
-//				if(LoadProperties.ironArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.IRON_CHESTPLATE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 18:
-//				if(LoadProperties.ironArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.IRON_HELMET, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 19:
-//				if(LoadProperties.enderPearl && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.ENDER_PEARL, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			}
-//		} else
-//		{
-//			theCatch.setItemStack(new ItemStack(Material.RAW_FISH, 1));
-//		}
-//
-//		//Change durability to random value
-//		theCatch.getItemStack().setDurability((short) (Math.random() * theCatch.getItemStack().getType().getMaxDurability())); //Change the damage value
 	}
 
 	private static void getFishingResultsTier3(Player player, PlayerFishEvent event)
 	{
-		int skillLevel = Users.getProfile(player).getSkillLevel(SkillType.FISHING);
 		Item theCatch = (Item)event.getCaught();
-		if(Math.random() * 100 < LoadProperties.fishingDropChanceTier3)
+		if(LoadProperties.fishingDrops)
 		{
-			for(FishingTreasure treasure : LoadProperties.fishingRewardsTier3)
+			List<FishingTreasure> rewards = LoadProperties.fishingRewardsTier3;
+			FishingTreasure treasure = rewards.get((int)(Math.random() * rewards.size()));
+			
+			if(Math.random() * 100 > (100.00 - treasure.getDropChance()))
 			{
-				if(Math.random() * 100 > (100.00 - treasure.getDropChance()))
-				{
-					if(skillLevel >= treasure.getDropLevel() && skillLevel <= treasure.getMaxLevel())
-					{
-						Users.getProfile(player).addXP(SkillType.FISHING, treasure.getXp(), player);
-						theCatch.setItemStack(treasure.getDrop());
-					}
-				}
+				Users.getProfile(player).addXP(SkillType.FISHING, treasure.getXp(), player);
+				theCatch.setItemStack(treasure.getDrop());
 			}
 		} 
 		else
@@ -390,178 +153,20 @@ public class Fishing {
 		}
 		//Change durability to random value
 		theCatch.getItemStack().setDurability((short) (Math.random() * theCatch.getItemStack().getType().getMaxDurability())); //Change the damage value
-		
-//		int randomNum = (int)(Math.random() * 24);
-//		Item theCatch = (Item)event.getCaught();
-//
-//		if(Math.random() * 100 < LoadProperties.fishingDropChanceTier3)
-//		{
-//			switch(randomNum)
-//			{
-//			case 1:
-//				if(LoadProperties.goldArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.GOLD_BOOTS, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 2:
-//				if(LoadProperties.goldArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.GOLD_HELMET, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 3:
-//				if(LoadProperties.goldArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.GOLD_LEGGINGS, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 4:
-//				if(LoadProperties.goldArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.GOLD_CHESTPLATE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 5:
-//				if(LoadProperties.ironTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.IRON_AXE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 6:
-//				if(LoadProperties.ironTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.IRON_PICKAXE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 7:
-//				if(LoadProperties.ironTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.IRON_SWORD, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 8:
-//				if(LoadProperties.ironTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.IRON_HOE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 9:
-//				if(LoadProperties.ironTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.IRON_SPADE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 10:
-//				if(LoadProperties.goldTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.GOLD_AXE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 11:
-//				if(LoadProperties.goldTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.GOLD_PICKAXE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 12:
-//				if(LoadProperties.goldTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.GOLD_SWORD, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 13:
-//				if(LoadProperties.goldTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.GOLD_HOE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 14:
-//				if(LoadProperties.goldTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.GOLD_SPADE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 15:
-//				if(LoadProperties.ironArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.IRON_BOOTS, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 16:
-//				if(LoadProperties.ironArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.IRON_LEGGINGS, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 17:
-//				if(LoadProperties.ironArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.IRON_CHESTPLATE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 18:
-//				if(LoadProperties.ironArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.IRON_HELMET, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 19:
-//				if(LoadProperties.enderPearl && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.ENDER_PEARL, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 20:
-//				if(LoadProperties.blazeRod && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.BLAZE_ROD, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 21:
-//				if(LoadProperties.records && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.RECORD_3, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 22:
-//				if(LoadProperties.records && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.RECORD_4, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 23:
-//				if(LoadProperties.records && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.RECORD_5, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			}
-//		}
-//		else
-//		{
-//			theCatch.setItemStack(new ItemStack(Material.RAW_FISH, 1));
-//		}
-//		//Change durability to random value
-//		theCatch.getItemStack().setDurability((short) (Math.random() * theCatch.getItemStack().getType().getMaxDurability())); //Change the damage value
 	}
 
 	private static void getFishingResultsTier4(Player player, PlayerFishEvent event)
 	{
-		int skillLevel = Users.getProfile(player).getSkillLevel(SkillType.FISHING);
 		Item theCatch = (Item)event.getCaught();
-		if(Math.random() * 100 < LoadProperties.fishingDropChanceTier4)
+		if(LoadProperties.fishingDrops)
 		{
-			for(FishingTreasure treasure : LoadProperties.fishingRewardsTier4)
+			List<FishingTreasure> rewards = LoadProperties.fishingRewardsTier4;
+			FishingTreasure treasure = rewards.get((int)(Math.random() * rewards.size()));
+			
+			if(Math.random() * 100 > (100.00 - treasure.getDropChance()))
 			{
-				if(Math.random() * 100 > (100.00 - treasure.getDropChance()))
-				{
-					if(skillLevel >= treasure.getDropLevel() && skillLevel <= treasure.getMaxLevel())
-					{
-						Users.getProfile(player).addXP(SkillType.FISHING, treasure.getXp(), player);
-						theCatch.setItemStack(treasure.getDrop());
-					}
-				}
+				Users.getProfile(player).addXP(SkillType.FISHING, treasure.getXp(), player);
+				theCatch.setItemStack(treasure.getDrop());
 			}
 		} 
 		else
@@ -570,279 +175,20 @@ public class Fishing {
 		}
 		//Change durability to random value
 		theCatch.getItemStack().setDurability((short) (Math.random() * theCatch.getItemStack().getType().getMaxDurability())); //Change the damage value
-		
-//		int randomNum = (int)(Math.random() * 41);
-//		Item theCatch = (Item)event.getCaught();
-//
-//		if(Math.random() * 100 < LoadProperties.fishingDropChanceTier4)
-//		{
-//			switch(randomNum)
-//			{
-//			case 1:
-//				if(LoadProperties.goldArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.GOLD_BOOTS, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 2:
-//				if(LoadProperties.goldArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.GOLD_HELMET, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 3:
-//				if(LoadProperties.goldArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.GOLD_LEGGINGS, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 4:
-//				if(LoadProperties.goldArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.GOLD_CHESTPLATE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 5:
-//				if(LoadProperties.ironTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.IRON_AXE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 6:
-//				if(LoadProperties.ironTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.IRON_PICKAXE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 7:
-//				if(LoadProperties.ironTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.IRON_SWORD, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 8:
-//				if(LoadProperties.ironTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.IRON_HOE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 9:
-//				if(LoadProperties.ironTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.IRON_SPADE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 10:
-//				if(LoadProperties.goldTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.GOLD_AXE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 11:
-//				if(LoadProperties.goldTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.GOLD_PICKAXE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 12:
-//				if(LoadProperties.goldTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.GOLD_SWORD, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 13:
-//				if(LoadProperties.goldTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.GOLD_HOE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 14:
-//				if(LoadProperties.goldTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.GOLD_SPADE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 15:
-//				if(LoadProperties.ironArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.IRON_BOOTS, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 16:
-//				if(LoadProperties.ironArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.IRON_LEGGINGS, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 17:
-//				if(LoadProperties.ironArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.IRON_CHESTPLATE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 18:
-//				if(LoadProperties.ironArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.IRON_HELMET, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 19:
-//				if(LoadProperties.enderPearl && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.ENDER_PEARL, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 20:
-//				if(LoadProperties.blazeRod && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.BLAZE_ROD, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 21:
-//				if(LoadProperties.records && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.RECORD_3, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 22:
-//				if(LoadProperties.records && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.RECORD_4, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 23:
-//				if(LoadProperties.records && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.RECORD_5, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 24:
-//				if(LoadProperties.diamondArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.DIAMOND_BOOTS, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 25:
-//				if(LoadProperties.diamondArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.DIAMOND_HELMET, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 26:
-//				if(LoadProperties.diamondArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.DIAMOND_LEGGINGS, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 27:
-//				if(LoadProperties.diamondArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.DIAMOND_CHESTPLATE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 28:
-//				if(LoadProperties.diamondTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.DIAMOND_AXE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 29:
-//				if(LoadProperties.diamondTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.DIAMOND_PICKAXE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 30:
-//				if(LoadProperties.diamondTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.DIAMOND_SWORD, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 31:
-//				if(LoadProperties.diamondTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.DIAMOND_HOE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 32:
-//				if(LoadProperties.diamondTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.DIAMOND_SPADE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 33:
-//				if(LoadProperties.records && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.RECORD_6, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 34:
-//				if(LoadProperties.records && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.RECORD_7, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 35:
-//				if(LoadProperties.records && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.RECORD_8, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 36:
-//				if(LoadProperties.records && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.RECORD_9, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 37:
-//				if(LoadProperties.records && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.RECORD_10, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 38:
-//				if(LoadProperties.records && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.RECORD_11, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 39:
-//				if(LoadProperties.glowstoneDust && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.GLOWSTONE_DUST, 16));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 40:
-//				if(LoadProperties.fishingDiamonds && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.DIAMOND, (int)(Math.random() * 10)));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			}
-//		} else
-//		{
-//			theCatch.setItemStack(new ItemStack(Material.RAW_FISH, 1));
-//		}
-//		//Change durability to random value
-//		theCatch.getItemStack().setDurability((short) (Math.random() * theCatch.getItemStack().getType().getMaxDurability())); //Change the damage value
 	}
 
 	private static void getFishingResultsTier5(Player player, PlayerFishEvent event)
 	{
-		int skillLevel = Users.getProfile(player).getSkillLevel(SkillType.FISHING);
 		Item theCatch = (Item)event.getCaught();
-		if(Math.random() * 100 < LoadProperties.fishingDropChanceTier5)
+		if(LoadProperties.fishingDrops)
 		{
-			for(FishingTreasure treasure : LoadProperties.fishingRewardsTier5)
+			List<FishingTreasure> rewards = LoadProperties.fishingRewardsTier5;
+			FishingTreasure treasure = rewards.get((int)(Math.random() * rewards.size()));
+			
+			if(Math.random() * 100 > (100.00 - treasure.getDropChance()))
 			{
-				if(Math.random() * 100 > (100.00 - treasure.getDropChance()))
-				{
-					if(skillLevel >= treasure.getDropLevel() && skillLevel <= treasure.getMaxLevel())
-					{
-						Users.getProfile(player).addXP(SkillType.FISHING, treasure.getXp(), player);
-						theCatch.setItemStack(treasure.getDrop());
-					}
-				}
+				Users.getProfile(player).addXP(SkillType.FISHING, treasure.getXp(), player);
+				theCatch.setItemStack(treasure.getDrop());
 			}
 		} 
 		else
@@ -851,314 +197,8 @@ public class Fishing {
 		}
 		//Change durability to random value
 		theCatch.getItemStack().setDurability((short) (Math.random() * theCatch.getItemStack().getType().getMaxDurability())); //Change the damage value
-		
-//		int randomNum = (int)(Math.random() * 50);
-//		Item theCatch = (Item)event.getCaught();
-//
-//		if(Math.random() * 100 < LoadProperties.fishingDropChanceTier5)
-//		{
-//			switch(randomNum)
-//			{
-//			case 1:
-//				if(LoadProperties.goldArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.GOLD_BOOTS, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 2:
-//				if(LoadProperties.goldArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.GOLD_HELMET, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 3:
-//				if(LoadProperties.goldArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.GOLD_LEGGINGS, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 4:
-//				if(LoadProperties.goldArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.GOLD_CHESTPLATE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 5:
-//				if(LoadProperties.ironTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.IRON_AXE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 6:
-//				if(LoadProperties.ironTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.IRON_PICKAXE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 7:
-//				if(LoadProperties.ironTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.IRON_SWORD, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 8:
-//				if(LoadProperties.ironTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.IRON_HOE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 9:
-//				if(LoadProperties.ironTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.IRON_SPADE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 10:
-//				if(LoadProperties.goldTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.GOLD_AXE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 11:
-//				if(LoadProperties.goldTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.GOLD_PICKAXE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 12:
-//				if(LoadProperties.goldTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.GOLD_SWORD, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 13:
-//				if(LoadProperties.goldTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.GOLD_HOE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 14:
-//				if(LoadProperties.goldTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.GOLD_SPADE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 15:
-//				if(LoadProperties.ironArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.IRON_BOOTS, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 16:
-//				if(LoadProperties.ironArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.IRON_LEGGINGS, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 17:
-//				if(LoadProperties.ironArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.IRON_CHESTPLATE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 18:
-//				if(LoadProperties.ironArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.IRON_HELMET, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 19:
-//				if(LoadProperties.enderPearl && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.ENDER_PEARL, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 20:
-//				if(LoadProperties.blazeRod && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.BLAZE_ROD, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 21:
-//				if(LoadProperties.records && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.RECORD_3, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 22:
-//				if(LoadProperties.records && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.RECORD_4, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 23:
-//				if(LoadProperties.records && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.RECORD_5, 1));else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 24:
-//				if(LoadProperties.diamondArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.DIAMOND_BOOTS, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 25:
-//				if(LoadProperties.diamondArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.DIAMOND_HELMET, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 26:
-//				if(LoadProperties.diamondArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.DIAMOND_LEGGINGS, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 27:
-//				if(LoadProperties.diamondArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.DIAMOND_CHESTPLATE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 28:
-//				if(LoadProperties.diamondTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.DIAMOND_AXE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 29:
-//				if(LoadProperties.diamondTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.DIAMOND_PICKAXE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 30:
-//				if(LoadProperties.diamondTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.DIAMOND_SWORD, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 31:
-//				if(LoadProperties.diamondTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.DIAMOND_HOE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 32:
-//				if(LoadProperties.diamondTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.DIAMOND_SPADE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 33:
-//				if(LoadProperties.records && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.RECORD_6, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 34:
-//				if(LoadProperties.records && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.RECORD_7, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 35:
-//				if(LoadProperties.records && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.RECORD_8, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 36:
-//				if(LoadProperties.records && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.RECORD_9, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 37:
-//				if(LoadProperties.records && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.RECORD_10, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 38:
-//				if(LoadProperties.records && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.RECORD_11, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 39:
-//				if(LoadProperties.glowstoneDust && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.GLOWSTONE_DUST, 16));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 40:
-//				if(LoadProperties.fishingDiamonds && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.DIAMOND, (int)(Math.random() * 20)));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 41:
-//				if(LoadProperties.diamondArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.DIAMOND_BOOTS, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 42:
-//				if(LoadProperties.diamondArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.DIAMOND_HELMET, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 43:
-//				if(LoadProperties.diamondArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.DIAMOND_LEGGINGS, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 44:
-//				if(LoadProperties.diamondArmor && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.DIAMOND_CHESTPLATE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 45:
-//				if(LoadProperties.diamondTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.DIAMOND_AXE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 46:
-//				if(LoadProperties.diamondTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.DIAMOND_PICKAXE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 47:
-//				if(LoadProperties.diamondTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.DIAMOND_SWORD, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 48:
-//				if(LoadProperties.diamondTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.DIAMOND_HOE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			case 49:
-//				if(LoadProperties.diamondTools && LoadProperties.fishingDrops)
-//					theCatch.setItemStack(new ItemStack(Material.DIAMOND_SPADE, 1));
-//				else
-//					theCatch.setItemStack(new ItemStack(Material.RAW_FISH));
-//				break;
-//			}
-//		} else {
-//			theCatch.setItemStack(new ItemStack(Material.RAW_FISH, 1));
-//		}
-//		//Change durability to random value
-//		theCatch.getItemStack().setDurability((short) (Math.random() * theCatch.getItemStack().getType().getMaxDurability())); //Change the damage value
 	}
+	
 	public static void processResults(PlayerFishEvent event)
 	{
 		Player player = event.getPlayer();

+ 636 - 34
src/main/resources/config.yml

@@ -164,7 +164,6 @@ Experience:
             Swords: 1.0
             Taming: 1.0
             Acrobatics: 1.0
-            Sorcery: 1.0
             Excavation: 1.0
             Herbalism: 1.0
             Unarmed: 1.0
@@ -173,6 +172,7 @@ Experience:
             Archery: 1.0
             Axes: 1.0
             Repair: 1.0
+            Fishing: 1.0
     Fishing:
         Base: 800
     Excavation:
@@ -215,34 +215,71 @@ Experience:
 #  Settings for Fishing
 ###
 Fishing:
-    Drop_Level:
-        Tier1: 200
-        Tier2: 400
-        Tier3: 600
-        Tier4: 800
-    Drops:
-        Item_Drops_Enabled: true
-        Drop_Chance:
-            Tier_1: 20
-            Tier_2: 25
-            Tier_3: 30
-            Tier_4: 35
-            Tier_5: 40
-        Gold_Tools: true
-        Diamond_Armor: true
-        Stone_Tools: true
-        Diamonds: true
-        Iron_Armor: true
-        Iron_Tools: true
-        Diamond_Tools: true
-        Records: true
-        Blaze_Rod: true
-        Leather_Armor: true
-        Gold_Armor: true
-        Glowstone_Dust: true
-        Ender_Pearl: true
-        Wooden_Tools: true
-
+    Drops_Enabled: true
+    Tier_Level2:
+        Tier1: 0
+        Tier2: 200
+        Tier3: 400
+        Tier4: 600
+        Tier5: 800
+    Treasure:
+        - Leather_Boots
+        - Leather_Helmet
+        - Leather_Leggings
+        - Leather_Chestplate
+        - Wooden_Sword
+        - Wooden_Shovel
+        - Wooden_Pickaxe
+        - Wooden_Axe
+        - Wooden_Hoe
+        - Stone_Sword
+        - Stone_Shovel
+        - Stone_Pickaxe
+        - Stone_Axe
+        - Stone_Hoe
+        - Iron_Sword
+        - Iron_Shovel
+        - Iron_Pickaxe
+        - Iron_Axe
+        - Iron_Hoe
+        - Iron_Boots
+        - Iron_Helmet
+        - Iron_Leggings
+        - Iron_Chestplate
+        - Ender_Pearl
+        - Gold_Sword
+        - Gold_Shovel
+        - Gold_Pickaxe
+        - Gold_Axe
+        - Gold_Hoe
+        - Gold_Boots
+        - Gold_Helmet
+        - Gold_Leggings
+        - Gold_Chestplate
+        - Blaze_Rod
+        - Record_3
+        - Record_4
+        - Record_5
+        - Record_6
+        - Record_7
+        - Record_8
+        - Record_9
+        - Record_10
+        - Record_11
+        - Diamond_Sword
+        - Diamond_Shovel
+        - Diamond_Pickaxe
+        - Diamond_Axe
+        - Diamond_Hoe
+        - Diamond_Boots
+        - Diamond_Helmet
+        - Diamond_Leggings
+        - Diamond_Chestplate
+        - Ghast_Tear
+        - Diamonds
+        - Iron_Ingots
+        - Gold_Ingots
+        - Lapis_Lazuli
 #
 #  Settings for Excavation
 ###
@@ -476,12 +513,577 @@ Treasures:
         Drops_From:
             Dirt: true
             Grass: true
-            Sand: true
-            Gravel: true
-            Clay: true
             Mycelium: true
-            Soul_Sand: true
-
+    Leather_Boots:
+        ID: 301
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 20.0
+        Drop_Level: 0
+        Max_Level: 400
+        Drops_From:
+            Fishing: true
+    Leather_Helmet:
+        ID: 298
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 20.0
+        Drop_Level: 0
+        Max_Level: 400
+        Drops_From:
+            Fishing: true
+    Leather_Leggings:
+        ID: 300
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 20.0
+        Drop_Level: 0
+        Max_Level: 400
+        Drops_From:
+            Fishing: true
+    Leather_Chestplate:
+        ID: 299
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 20.0
+        Drop_Level: 0
+        Max_Level: 400
+        Drops_From:
+            Fishing: true
+    Wooden_Sword:
+        ID: 268
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 20.0
+        Drop_Level: 0
+        Max_Level: 200
+        Drops_From:
+            Fishing: true
+    Wooden_Shovel:
+        ID: 269
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 20.0
+        Drop_Level: 0
+        Max_Level: 200
+        Drops_From:
+            Fishing: true
+    Wooden_Pickaxe:
+        ID: 270
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 20.0
+        Drop_Level: 0
+        Max_Level: 200
+        Drops_From:
+            Fishing: true
+    Wooden_Axe:
+        ID: 271
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 20.0
+        Drop_Level: 0
+        Max_Level: 200
+        Drops_From:
+            Fishing: true
+    Wooden_Hoe:
+        ID: 290
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 20.0
+        Drop_Level: 0
+        Max_Level: 200
+        Drops_From:
+            Fishing: true
+    Stone_Sword:
+        ID: 272
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 20.0
+        Drop_Level: 0
+        Max_Level: 400
+        Drops_From:
+            Fishing: true
+    Stone_Shovel:
+        ID: 273
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 20.0
+        Drop_Level: 0
+        Max_Level: 400
+        Drops_From:
+            Fishing: true
+    Stone_Pickaxe:
+        ID: 274
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 20.0
+        Drop_Level: 0
+        Max_Level: 400
+        Drops_From:
+            Fishing: true
+    Stone_Axe:
+        ID: 275
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 20.0
+        Drop_Level: 0
+        Max_Level: 400
+        Drops_From:
+            Fishing: true
+    Stone_Hoe:
+        ID: 291
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 20.0
+        Drop_Level: 0
+        Max_Level: 400
+        Drops_From:
+            Fishing: true
+    Iron_Sword:
+        ID: 267
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 25.0
+        Drop_Level: 200
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Iron_Shovel:
+        ID: 256
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 25.0
+        Drop_Level: 200
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Iron_Pickaxe:
+        ID: 257
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 25.0
+        Drop_Level: 200
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Iron_Axe:
+        ID: 258
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 25.0
+        Drop_Level: 200
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Iron_Hoe:
+        ID: 292
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 25.0
+        Drop_Level: 200
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Iron_Boots:
+        ID: 309
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 25.0
+        Drop_Level: 200
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Iron_Helmet:
+        ID: 306
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 25.0
+        Drop_Level: 200
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Iron_Leggings:
+        ID: 308
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 25.0
+        Drop_Level: 200
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Iron_Chestplate:
+        ID: 307
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 25.0
+        Drop_Level: 200
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Ender_Pearl:
+        ID: 368
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 25.0
+        Drop_Level: 200
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Gold_Sword:
+        ID: 283
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 30.0
+        Drop_Level: 400
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Gold_Shovel:
+        ID: 284
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 30.0
+        Drop_Level: 400
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Gold_Pickaxe:
+        ID: 285
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 30.0
+        Drop_Level: 400
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Gold_Axe:
+        ID: 286
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 30.0
+        Drop_Level: 400
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Gold_Hoe:
+        ID: 294
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 30.0
+        Drop_Level: 400
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Gold_Boots:
+        ID: 317
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 30.0
+        Drop_Level: 400
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Gold_Helmet:
+        ID: 314
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 30.0
+        Drop_Level: 400
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Gold_Leggings:
+        ID: 316
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 30.0
+        Drop_Level: 400
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Gold_Chestplate:
+        ID: 315
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 30.0
+        Drop_Level: 400
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Blaze_Rod:
+        ID: 369
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 30.0
+        Drop_Level: 400
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Record_3:
+        ID: 2258
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 30.0
+        Drop_Level: 400
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Record_4:
+        ID: 2259
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 30.0
+        Drop_Level: 400
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Record_5:
+        ID: 2260
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 30.0
+        Drop_Level: 400
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Diamond_Sword:
+        ID: 276
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 35.0
+        Drop_Level: 600
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Diamond_Shovel:
+        ID: 277
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 35.0
+        Drop_Level: 600
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Diamond_Pickaxe:
+        ID: 278
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 35.0
+        Drop_Level: 600
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Diamond_Axe:
+        ID: 279
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 35.0
+        Drop_Level: 600
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Diamond_Hoe:
+        ID: 293
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 35.0
+        Drop_Level: 600
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Diamond_Boots:
+        ID: 313
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 35.0
+        Drop_Level: 600
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Diamond_Helmet:
+        ID: 310
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 35.0
+        Drop_Level: 600
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Diamond_Leggings:
+        ID: 312
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 35.0
+        Drop_Level: 600
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Diamond_Chestplate:
+        ID: 311
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 35.0
+        Drop_Level: 600
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Record_6:
+        ID: 2261
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 35.0
+        Drop_Level: 600
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Record_7:
+        ID: 2262
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 35.0
+        Drop_Level: 600
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Record_8:
+        ID: 2263
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 35.0
+        Drop_Level: 600
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Record_9:
+        ID: 2264
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 35.0
+        Drop_Level: 600
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Record_10:
+        ID: 2265
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 35.0
+        Drop_Level: 600
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Record_11:
+        ID: 2266
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 35.0
+        Drop_Level: 600
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Ghast_Tear:
+        ID: 370
+        Data: 0
+        Amount: 1
+        XP: 200
+        Drop_Chance: 35.0
+        Drop_Level: 600
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Diamonds:
+        ID: 264
+        Data: 0
+        Amount: 5
+        XP: 200
+        Drop_Chance: 40.0
+        Drop_Level: 800
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Iron_Ingots:
+        ID: 265
+        Data: 0
+        Amount: 5
+        XP: 200
+        Drop_Chance: 40.0
+        Drop_Level: 800
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Gold_Ingots:
+        ID: 266
+        Data: 0
+        Amount: 5
+        XP: 200
+        Drop_Chance: 40.0
+        Drop_Level: 800
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
+    Lapis_Lazuli:
+        ID: 351
+        Data: 4
+        Amount: 20
+        XP: 200
+        Drop_Chance: 40.0
+        Drop_Level: 800
+        Max_Level: 1000
+        Drops_From:
+            Fishing: true
 #
 #  Settings for commands
 ###