Browse Source

All changes up to 0.8.14

nossr50 14 years ago
parent
commit
2caa7bfbb0

+ 11 - 0
mcMMO/Changelog.txt

@@ -1,5 +1,16 @@
 Changelog:
 Changelog:
 #Versions without changelogs probably had very small misc fixes, like tweaks to the source code#
 #Versions without changelogs probably had very small misc fixes, like tweaks to the source code#
+Version 0.8.14
+	Mining, Woodcutting, Herbalism, and Acrobatics proc rates now are based on your skill level directly rather than tiers you unlock via skill levels
+	Archery's ability to retrieve arrows from corpses now is based on your skill level directly rather than tiers you unlock via skill levels
+	Mining, Woodcutting, Herbalism, Archery, and Acrobatics now show their proc % relative to your skill if you type /<skillname>
+	You can now adjust what level is required to repair diamond in the configuration file
+	Changed mining XP rates to be a tad higher for some things
+	You can now get XP from sandstone
+	XP rates increased for gathering glowstone with excavation
+	XP rates increased a bit for excavation
+	Skill info is now a bit more detailed for certain skills
+	Added info about arrow retrieval to /archery
 Version 0.8.13
 Version 0.8.13
 	Enemies no longer look like they have frozen when they die
 	Enemies no longer look like they have frozen when they die
 	Item duping fix
 	Item duping fix

+ 3 - 38
mcMMO/com/gmail/nossr50/mcAcrobatics.java

@@ -14,53 +14,18 @@ public class mcAcrobatics {
     	return instance;
     	return instance;
     	}
     	}
 	public void acrobaticsCheck(Player player, EntityDamageEvent event, Location loc, int xx, int y, int z){
 	public void acrobaticsCheck(Player player, EntityDamageEvent event, Location loc, int xx, int y, int z){
-    	if(player != null && mcUsers.getProfile(player).getAcrobaticsInt() >= 50 
-				&& mcUsers.getProfile(player).getAcrobaticsInt() < 250
-				&& mcPermissions.getInstance().acrobatics(player)){
-			if(Math.random() * 10 > 8){
-				event.setCancelled(true);
-				player.sendMessage("**ROLLED**");
-				return;
-			}
-		}
-		if(player != null && mcUsers.getProfile(player).getAcrobaticsInt() >= 250 
-				&& mcUsers.getProfile(player).getAcrobaticsInt() < 450 
-				&& mcPermissions.getInstance().acrobatics(player)){
-			if(Math.random() * 10 > 6){
-				event.setCancelled(true);
-				player.sendMessage("**ROLLED**");
-				return;
-			}
-		}
-		if(player != null && mcUsers.getProfile(player).getAcrobaticsInt() >= 450 
-				&& mcUsers.getProfile(player).getAcrobaticsInt() < 750 
-				&& mcPermissions.getInstance().acrobatics(player)){
-			if(Math.random() * 10 > 4){
+    	if(player != null){
+			if(Math.random() * 1000 <= mcUsers.getProfile(player).getAcrobaticsInt()){
 				event.setCancelled(true);
 				event.setCancelled(true);
 				player.sendMessage("**ROLLED**");
 				player.sendMessage("**ROLLED**");
 				return;
 				return;
 			}
 			}
 		}
 		}
-		if(player != null && mcUsers.getProfile(player).getAcrobaticsInt() >= 750 
-				&& mcUsers.getProfile(player).getAcrobaticsInt() < 950 
-				&& mcPermissions.getInstance().acrobatics(player)){
-			if(Math.random() * 10 > 2){
-				event.setCancelled(true);
-				player.sendMessage("**BARREL ROLLED**");
-				return;
-			}
-		}
-		if(player != null && mcUsers.getProfile(player).getAcrobaticsInt() >= 950
-				&& mcPermissions.getInstance().acrobatics(player)){
-				event.setCancelled(true);
-				player.sendMessage("**ROLLED... LIKE A BOSS**");
-				return;
-			}
 		if(player != null && player.getHealth() - event.getDamage() <= 0)
 		if(player != null && player.getHealth() - event.getDamage() <= 0)
 			return;
 			return;
 		if(!mcConfig.getInstance().isBlockWatched(loc.getWorld().getBlockAt(xx, y, z)) 
 		if(!mcConfig.getInstance().isBlockWatched(loc.getWorld().getBlockAt(xx, y, z)) 
 				&& mcPermissions.getInstance().acrobatics(player)){
 				&& mcPermissions.getInstance().acrobatics(player)){
-		mcUsers.getProfile(player).addAcrobaticsGather(event.getDamage() * 3);
+		mcUsers.getProfile(player).addAcrobaticsGather(event.getDamage() * 8);
 		if(player != null && mcUsers.getProfile(player).getAcrobaticsGatherInt() >= mcUsers.getProfile(player).getXpToLevel("acrobatics")){
 		if(player != null && mcUsers.getProfile(player).getAcrobaticsGatherInt() >= mcUsers.getProfile(player).getXpToLevel("acrobatics")){
 			int skillups = 0;
 			int skillups = 0;
 			while(mcUsers.getProfile(player).getAcrobaticsGatherInt() >= mcUsers.getProfile(player).getXpToLevel("acrobatics")){
 			while(mcUsers.getProfile(player).getAcrobaticsGatherInt() >= mcUsers.getProfile(player).getXpToLevel("acrobatics")){

+ 0 - 1
mcMMO/com/gmail/nossr50/mcBlockListener.java

@@ -65,7 +65,6 @@ public class mcBlockListener extends BlockListener {
     				mcWoodCutting.getInstance().woodCuttingProcCheck(player, block, loc);
     				mcWoodCutting.getInstance().woodCuttingProcCheck(player, block, loc);
     				mcUsers.getProfile(player).addWoodcuttingGather(7);
     				mcUsers.getProfile(player).addWoodcuttingGather(7);
     				if(mcPermissions.getInstance().woodcuttingability(player)){
     				if(mcPermissions.getInstance().woodcuttingability(player)){
-    					
     				}
     				}
     		}
     		}
     		/*
     		/*

+ 7 - 35
mcMMO/com/gmail/nossr50/mcCombat.java

@@ -335,46 +335,18 @@ public class mcCombat {
     		if(event.getProjectile().toString().equals("CraftArrow") && mcPermissions.getInstance().archery(attacker)){
     		if(event.getProjectile().toString().equals("CraftArrow") && mcPermissions.getInstance().archery(attacker)){
     			if(!mcConfig.getInstance().isTracked(x) && event.getDamage() > 0){
     			if(!mcConfig.getInstance().isTracked(x) && event.getDamage() > 0){
     				mcConfig.getInstance().addArrowTrack(x, 0);
     				mcConfig.getInstance().addArrowTrack(x, 0);
-    				if(mcUsers.getProfile(attacker).getArcheryInt() >= 50 && mcUsers.getProfile(attacker).getArcheryInt() < 200){
-    					if(Math.random() * 10 > 8){
+    				if(attacker != null){
+    					if(Math.random() * 1000 <= mcUsers.getProfile(attacker).getArcheryInt()){
     						mcConfig.getInstance().addArrowCount(x, 1);
     						mcConfig.getInstance().addArrowCount(x, 1);
     					}
     					}
-    				} else if(mcUsers.getProfile(attacker).getArcheryInt() >= 200 && mcUsers.getProfile(attacker).getArcheryInt() < 400){
-    					if(Math.random() * 10 > 6){
-    						mcConfig.getInstance().addArrowCount(x, 1);
-    					}
-    				} else if(mcUsers.getProfile(attacker).getArcheryInt() >= 400 && mcUsers.getProfile(attacker).getArcheryInt() < 600){
-    					if(Math.random() * 10 > 4){
-    						mcConfig.getInstance().addArrowCount(x, 1);
-    					}
-    				} else if(mcUsers.getProfile(attacker).getArcheryInt() >= 600 && mcUsers.getProfile(attacker).getArcheryInt() < 800){
-    					if(Math.random() * 10 > 2){
-    						mcConfig.getInstance().addArrowCount(x, 1);
-    					}
-    				} else if(mcUsers.getProfile(attacker).getArcheryInt() >= 800){
-    						mcConfig.getInstance().addArrowCount(x, 1);
     				}
     				}
     			} else {
     			} else {
     				if(event.getDamage() > 0){
     				if(event.getDamage() > 0){
-    				if(mcUsers.getProfile(attacker).getArcheryInt() >= 50 && mcUsers.getProfile(attacker).getArcheryInt() < 200){
-    					if(Math.random() * 10 > 8){
-    						mcConfig.getInstance().addArrowCount(x, 1);
-    					}
-    				} else if(mcUsers.getProfile(attacker).getArcheryInt() >= 200 && mcUsers.getProfile(attacker).getArcheryInt() < 400){
-    					if(Math.random() * 10 > 6){
-    						mcConfig.getInstance().addArrowCount(x, 1);
-    					}
-    				} else if(mcUsers.getProfile(attacker).getArcheryInt() >= 400 && mcUsers.getProfile(attacker).getArcheryInt() < 600){
-    					if(Math.random() * 10 > 4){
-    						mcConfig.getInstance().addArrowCount(x, 1);
-    					}
-    				} else if(mcUsers.getProfile(attacker).getArcheryInt() >= 600 && mcUsers.getProfile(attacker).getArcheryInt() < 800){
-    					if(Math.random() * 10 > 2){
-    						mcConfig.getInstance().addArrowCount(x, 1);
-    					}
-    				} else if(mcUsers.getProfile(attacker).getArcheryInt() >= 800){
-    						mcConfig.getInstance().addArrowCount(x, 1);
-    				}
+    					if(attacker != null){
+        					if(Math.random() * 1000 <= mcUsers.getProfile(attacker).getArcheryInt()){
+        						mcConfig.getInstance().addArrowCount(x, 1);
+        					}
+        				}
     				}
     				}
     			}
     			}
     		/*
     		/*

+ 4 - 4
mcMMO/com/gmail/nossr50/mcExcavation.java

@@ -43,7 +43,7 @@ public class mcExcavation {
     	}
     	}
     	//DIRT SAND OR GRAVEL
     	//DIRT SAND OR GRAVEL
     	if(type == 3 || type == 13 || type == 2 || type == 12){
     	if(type == 3 || type == 13 || type == 2 || type == 12){
-    			mcUsers.getProfile(player).addExcavationGather(3);
+    			mcUsers.getProfile(player).addExcavationGather(4);
     		if(mcUsers.getProfile(player).getExcavationInt() > 750){
     		if(mcUsers.getProfile(player).getExcavationInt() > 750){
     			//CHANCE TO GET CAKE
     			//CHANCE TO GET CAKE
     			if(mcLoadProperties.cake == true && Math.random() * 2000 > 1999){
     			if(mcLoadProperties.cake == true && Math.random() * 2000 > 1999){
@@ -86,14 +86,14 @@ public class mcExcavation {
     	if(type == 12){
     	if(type == 12){
     		//CHANCE TO GET GLOWSTONE
     		//CHANCE TO GET GLOWSTONE
     		if(mcLoadProperties.glowstone == true && mcUsers.getProfile(player).getExcavationInt() > 50 && Math.random() * 100 > 95){
     		if(mcLoadProperties.glowstone == true && mcUsers.getProfile(player).getExcavationInt() > 50 && Math.random() * 100 > 95){
-    			mcUsers.getProfile(player).addExcavationGather(3);
+    			mcUsers.getProfile(player).addExcavationGather(8);
 				mat = Material.getMaterial(348);
 				mat = Material.getMaterial(348);
 				is = new ItemStack(mat, 1, (byte)0, (byte)0);
 				is = new ItemStack(mat, 1, (byte)0, (byte)0);
 				loc.getWorld().dropItemNaturally(loc, is);
 				loc.getWorld().dropItemNaturally(loc, is);
     		}
     		}
     		//CHANCE TO GET SLOWSAND
     		//CHANCE TO GET SLOWSAND
     		if(mcLoadProperties.slowsand == true && mcUsers.getProfile(player).getExcavationInt() > 650 && Math.random() * 200 > 199){
     		if(mcLoadProperties.slowsand == true && mcUsers.getProfile(player).getExcavationInt() > 650 && Math.random() * 200 > 199){
-    			mcUsers.getProfile(player).addExcavationGather(5);
+    			mcUsers.getProfile(player).addExcavationGather(8);
 				mat = Material.getMaterial(88);
 				mat = Material.getMaterial(88);
 				is = new ItemStack(mat, 1, (byte)0, (byte)0);
 				is = new ItemStack(mat, 1, (byte)0, (byte)0);
 				loc.getWorld().dropItemNaturally(loc, is);
 				loc.getWorld().dropItemNaturally(loc, is);
@@ -110,7 +110,7 @@ public class mcExcavation {
     	if((type == 2 || type == 3) && mcUsers.getProfile(player).getExcavationInt() > 25){
     	if((type == 2 || type == 3) && mcUsers.getProfile(player).getExcavationInt() > 25){
     		//CHANCE TO GET GLOWSTONE
     		//CHANCE TO GET GLOWSTONE
     		if(mcLoadProperties.glowstone == true && Math.random() * 100 > 95){
     		if(mcLoadProperties.glowstone == true && Math.random() * 100 > 95){
-    			mcUsers.getProfile(player).addExcavationGather(5);
+    			mcUsers.getProfile(player).addExcavationGather(8);
     			mat = Material.getMaterial(348);
     			mat = Material.getMaterial(348);
 				is = new ItemStack(mat, 1, (byte)0, (byte)0);
 				is = new ItemStack(mat, 1, (byte)0, (byte)0);
 				loc.getWorld().dropItemNaturally(loc, is);
 				loc.getWorld().dropItemNaturally(loc, is);

+ 4 - 17
mcMMO/com/gmail/nossr50/mcHerbalism.java

@@ -24,33 +24,20 @@ public class mcHerbalism {
     	Location loc = block.getLocation();
     	Location loc = block.getLocation();
     	ItemStack is = null;
     	ItemStack is = null;
     	Material mat = null;
     	Material mat = null;
-    	//player.sendMessage("mcMMO DEBUG: Data ("+block.getData()+")"+" TYPEID ("+block.getTypeId()+")");
     	if(type == 59 && block.getData() == (byte) 0x7){
     	if(type == 59 && block.getData() == (byte) 0x7){
     		mat = Material.getMaterial(296);
     		mat = Material.getMaterial(296);
 			is = new ItemStack(mat, 1, (byte)0, (byte)0);
 			is = new ItemStack(mat, 1, (byte)0, (byte)0);
     		mcUsers.getProfile(player).addHerbalismGather(5);
     		mcUsers.getProfile(player).addHerbalismGather(5);
-    		if(mcUsers.getProfile(player).getHerbalismInt() >= 50 && mcUsers.getProfile(player).getHerbalismInt() < 150){
-    		if(Math.random() * 10 > 8)
-			loc.getWorld().dropItemNaturally(loc, is);
-    		}
-    		if(mcUsers.getProfile(player).getHerbalismInt() >= 150 && mcUsers.getProfile(player).getHerbalismInt() < 350 ){
-    			if(Math.random() * 10 > 6)
-    				loc.getWorld().dropItemNaturally(loc, is);
-    		}
-    		if(mcUsers.getProfile(player).getHerbalismInt() >= 350 && mcUsers.getProfile(player).getHerbalismInt() < 500 ){
-    			if(Math.random() * 10 > 4)
-    				loc.getWorld().dropItemNaturally(loc, is);
-    		}
-    		if(mcUsers.getProfile(player).getHerbalismInt() >= 500 && mcUsers.getProfile(player).getHerbalismInt() < 750 ){
-    			if(Math.random() * 10 > 2)
-    				loc.getWorld().dropItemNaturally(loc, is);
+    		if(player != null){
+	    		if(Math.random() * 1000 <= mcUsers.getProfile(player).getHerbalismInt()){
+	    			loc.getWorld().dropItemNaturally(loc, is);
+	    		}
     		}
     		}
     	}
     	}
     	/*
     	/*
     	 * We need to check not-wheat stuff for if it was placed by the player or not
     	 * We need to check not-wheat stuff for if it was placed by the player or not
     	 */
     	 */
     	if(!mcConfig.getInstance().isBlockWatched(block)){
     	if(!mcConfig.getInstance().isBlockWatched(block)){
-    		//player.sendMessage("DEBUG CODE 2");
     	if(type == 39 || type == 40){
     	if(type == 39 || type == 40){
     			mcUsers.getProfile(player).addHerbalismGather(10);
     			mcUsers.getProfile(player).addHerbalismGather(10);
     		}
     		}

+ 2 - 1
mcMMO/com/gmail/nossr50/mcLoadProperties.java

@@ -3,13 +3,14 @@ package com.gmail.nossr50;
 public class mcLoadProperties {
 public class mcLoadProperties {
 	public static Boolean pvp, eggs, apples, myspawnclearsinventory, cake, music, diamond, glowstone, slowsand, sulphur, netherrack, bones, coal, clay, anvilmessages;
 	public static Boolean pvp, eggs, apples, myspawnclearsinventory, cake, music, diamond, glowstone, slowsand, sulphur, netherrack, bones, coal, clay, anvilmessages;
 	public static String mcmmo, mcc, mcgod, stats, mmoedit, ptp, party, myspawn, setmyspawn, whois, invite, accept, clearmyspawn;
 	public static String mcmmo, mcc, mcgod, stats, mmoedit, ptp, party, myspawn, setmyspawn, whois, invite, accept, clearmyspawn;
-	public static int globalxpmodifier, miningxpmodifier, repairxpmodifier, woodcuttingxpmodifier, unarmedxpmodifier, herbalismxpmodifier, excavationxpmodifier, archeryxpmodifier, swordsxpmodifier, axesxpmodifier, acrobaticsxpmodifier;
+	public static int repairdiamondlevel, globalxpmodifier, miningxpmodifier, repairxpmodifier, woodcuttingxpmodifier, unarmedxpmodifier, herbalismxpmodifier, excavationxpmodifier, archeryxpmodifier, swordsxpmodifier, axesxpmodifier, acrobaticsxpmodifier;
 	
 	
 	public static void loadMain(){
 	public static void loadMain(){
     	String propertiesFile = mcMMO.maindirectory + "mcmmo.properties";
     	String propertiesFile = mcMMO.maindirectory + "mcmmo.properties";
     	mcProperties properties = new mcProperties(propertiesFile);
     	mcProperties properties = new mcProperties(propertiesFile);
     	properties.load();
     	properties.load();
     	
     	
+    	repairdiamondlevel = properties.getInteger("repairdiamondlevel", 50);
     	/*
     	/*
     	 * EXPERIENCE RATE MODIFIER
     	 * EXPERIENCE RATE MODIFIER
     	 */
     	 */

+ 6 - 28
mcMMO/com/gmail/nossr50/mcMining.java

@@ -62,43 +62,21 @@ public class mcMining {
 			}
 			}
     }
     }
     public void blockProcCheck(Block block, Player player){
     public void blockProcCheck(Block block, Player player){
-    	if(mcUsers.getProfile(player).getMiningInt() > 2000){
-    		blockProcSimulate(block);
-			return;
-    	}
-    	if(mcUsers.getProfile(player).getMiningInt() > 1250){
-    		if((Math.random() * 10) > 2){
-    		blockProcSimulate(block);
-    		return;
-    		}
-    	}
-    	if(mcUsers.getProfile(player).getMiningInt() > 750){
-    		if((Math.random() * 10) > 4){
-    		blockProcSimulate(block);
-			return;
-    		}
-    	}
-    	if(mcUsers.getProfile(player).getMiningInt() > 150){
-    		if((Math.random() * 10) > 6){
-    		blockProcSimulate(block);
-			return;
-    		}
-    	}
-    	if(mcUsers.getProfile(player).getMiningInt() > 25){
-    		if((Math.random() * 10) > 8){
+    	if(player != null){
+    		if(Math.random() * 1000 >= mcUsers.getProfile(player).getMiningInt()){
     		blockProcSimulate(block);
     		blockProcSimulate(block);
 			return;
 			return;
     		}
     		}
     	}		
     	}		
 	}
 	}
     public void miningBlockCheck(Player player, Block block){
     public void miningBlockCheck(Player player, Block block){
-    	if(block.getTypeId() == 1){
-    		mcUsers.getProfile(player).addMiningGather(1);
+    	if(block.getTypeId() == 1 || block.getTypeId() == 24){
+    		mcUsers.getProfile(player).addMiningGather(3);
     		blockProcCheck(block, player);
     		blockProcCheck(block, player);
     		}
     		}
     		//COAL
     		//COAL
     		if(block.getTypeId() == 16){
     		if(block.getTypeId() == 16){
-    		mcUsers.getProfile(player).addMiningGather(5);
+    		mcUsers.getProfile(player).addMiningGather(10);
     		blockProcCheck(block, player);
     		blockProcCheck(block, player);
     		}
     		}
     		//GOLD
     		//GOLD
@@ -113,7 +91,7 @@ public class mcMining {
     		}
     		}
     		//IRON
     		//IRON
     		if(block.getTypeId() == 15){
     		if(block.getTypeId() == 15){
-    		mcUsers.getProfile(player).addMiningGather(20);
+    		mcUsers.getProfile(player).addMiningGather(25);
     		blockProcCheck(block, player);
     		blockProcCheck(block, player);
     		}
     		}
     		//REDSTONE
     		//REDSTONE

+ 6 - 21
mcMMO/com/gmail/nossr50/mcRepair.java

@@ -28,7 +28,7 @@ public class mcRepair {
         			/*
         			/*
         			 * DIAMOND ARMOR
         			 * DIAMOND ARMOR
         			 */
         			 */
-        			if(isDiamondArmor(is) && hasDiamond(player) && mcUsers.getProfile(player).getRepairInt() >= 50){
+        			if(isDiamondArmor(is) && hasDiamond(player) && mcUsers.getProfile(player).getRepairInt() >= mcLoadProperties.repairdiamondlevel){
 	        			removeDiamond(player);
 	        			removeDiamond(player);
 	        			player.getItemInHand().setDurability(getArmorRepairAmount(is, player));
 	        			player.getItemInHand().setDurability(getArmorRepairAmount(is, player));
 	        			mcUsers.getProfile(player).addRepairGather(75);
 	        			mcUsers.getProfile(player).addRepairGather(75);
@@ -59,7 +59,7 @@ public class mcRepair {
             			is.setDurability(getToolRepairAmount(is, player));
             			is.setDurability(getToolRepairAmount(is, player));
             			removeIron(player);
             			removeIron(player);
             			mcUsers.getProfile(player).addRepairGather(20);
             			mcUsers.getProfile(player).addRepairGather(20);
-            		} else if (isDiamondTools(is) && hasDiamond(player) && mcUsers.getProfile(player).getRepairInt() >= 50){ //Check if its diamond and the player has diamonds
+            		} else if (isDiamondTools(is) && hasDiamond(player) && mcUsers.getProfile(player).getRepairInt() >= mcLoadProperties.repairdiamondlevel){ //Check if its diamond and the player has diamonds
             			/*
             			/*
             			 * DIAMOND TOOLS
             			 * DIAMOND TOOLS
             			 */
             			 */
@@ -327,7 +327,7 @@ public class mcRepair {
 			return durability;
 			return durability;
     }
     }
     public void needMoreVespeneGas(ItemStack is, Player player){
     public void needMoreVespeneGas(ItemStack is, Player player){
-    	if ((isDiamondTools(is) || isDiamondArmor(is)) && mcUsers.getProfile(player).getRepairInt() < 50){
+    	if ((isDiamondTools(is) || isDiamondArmor(is)) && mcUsers.getProfile(player).getRepairInt() < mcLoadProperties.repairdiamondlevel){
 			player.sendMessage(ChatColor.DARK_RED +"You're not adept enough to repair Diamond");
 			player.sendMessage(ChatColor.DARK_RED +"You're not adept enough to repair Diamond");
 		} else if (isDiamondTools(is) && !hasDiamond(player) || isIronTools(is) && !hasIron(player) || isGoldTools(is) && !hasGold(player)){
 		} else if (isDiamondTools(is) && !hasDiamond(player) || isIronTools(is) && !hasIron(player) || isGoldTools(is) && !hasGold(player)){
 			if(isDiamondTools(is) && !hasDiamond(player))
 			if(isDiamondTools(is) && !hasDiamond(player))
@@ -345,27 +345,12 @@ public class mcRepair {
 			player.sendMessage(ChatColor.DARK_RED+"You need more "+ChatColor.GOLD+"Gold");
 			player.sendMessage(ChatColor.DARK_RED+"You need more "+ChatColor.GOLD+"Gold");
 		}
 		}
     public boolean checkPlayerProcRepair(Player player){
     public boolean checkPlayerProcRepair(Player player){
-		if(mcUsers.getProfile(player).getRepairInt() >= 750){
-			if(Math.random() * 10 > 2){
-				player.sendMessage(ChatColor.GRAY + "That took no effort.");
-				return true;
-			}
-		} else if (mcUsers.getProfile(player).getRepairInt() >= 450 && mcUsers.getProfile(player).getRepairInt() < 750){
-			if(Math.random() * 10 > 4){
-				player.sendMessage(ChatColor.GRAY + "That felt really easy.");
-				return true;
-			}
-		} else if (mcUsers.getProfile(player).getRepairInt() >= 150 && mcUsers.getProfile(player).getRepairInt() < 450){
-			if(Math.random() * 10 > 6){
-				player.sendMessage(ChatColor.GRAY + "That felt pretty easy.");
-				return true;
-			}
-		} else if (mcUsers.getProfile(player).getRepairInt() >= 50  && mcUsers.getProfile(player).getRepairInt() < 150){
-			if(Math.random() * 10 > 8){
+		if(player != null){
+			if(Math.random() * 1000 <= mcUsers.getProfile(player).getRepairInt()){
 				player.sendMessage(ChatColor.GRAY + "That felt easy.");
 				player.sendMessage(ChatColor.GRAY + "That felt easy.");
 				return true;
 				return true;
 			}
 			}
 		}
 		}
 		return false;
 		return false;
-}
+    }
 }
 }

+ 3 - 29
mcMMO/com/gmail/nossr50/mcWoodCutting.java

@@ -22,39 +22,13 @@ public class mcWoodCutting {
     	byte type = block.getData();
     	byte type = block.getData();
     	Material mat = Material.getMaterial(block.getTypeId());
     	Material mat = Material.getMaterial(block.getTypeId());
     	byte damage = 0;
     	byte damage = 0;
-    	if(mcUsers.getProfile(player).getWoodCuttingInt() > 1000){
+    	if(player != null){
+    		if(Math.random() * 1000 <= mcUsers.getProfile(player).getWoodCuttingInt()){
 			ItemStack item = new ItemStack(mat, 1, type, damage);
 			ItemStack item = new ItemStack(mat, 1, type, damage);
 			loc.getWorld().dropItemNaturally(loc, item);
 			loc.getWorld().dropItemNaturally(loc, item);
 			return;
 			return;
+    		}
     	}
     	}
-    	if(mcUsers.getProfile(player).getWoodCuttingInt() > 750){
-			if((Math.random() * 10) > 2){
-				ItemStack item = new ItemStack(mat, 1, type, damage);
-				loc.getWorld().dropItemNaturally(loc, item);
-				return;
-			}
-    	}
-	if(mcUsers.getProfile(player).getWoodCuttingInt() > 300){
-		if((Math.random() * 10) > 4){
-			ItemStack item = new ItemStack(mat, 1, type, damage);
-			loc.getWorld().dropItemNaturally(loc, item);
-			return;
-		}
-	}
-	if(mcUsers.getProfile(player).getWoodCuttingInt() > 100){
-		if((Math.random() * 10) > 6){
-			ItemStack item = new ItemStack(mat, 1, type, damage);
-			loc.getWorld().dropItemNaturally(loc, item);
-			return;
-		}
-	}
-	if(mcUsers.getProfile(player).getWoodCuttingInt() > 10){
-		if((Math.random() * 10) > 8){
-			ItemStack item = new ItemStack(mat, 1, type, damage);
-			loc.getWorld().dropItemNaturally(loc, item);
-			return;
-		}
-	}
     }
     }
     public void treeFeller(Block block){
     public void treeFeller(Block block){
     	Location loc = block.getLocation();
     	Location loc = block.getLocation();

+ 26 - 1
mcMMO/com/gmail/nossr50/mcm.java

@@ -220,19 +220,28 @@ public class mcm {
     public void mcmmoHelpCheck(String[] split, Player player, PlayerChatEvent event){
     public void mcmmoHelpCheck(String[] split, Player player, PlayerChatEvent event){
     	if(split[0].equalsIgnoreCase("/woodcutting")){
     	if(split[0].equalsIgnoreCase("/woodcutting")){
 			event.setCancelled(true);
 			event.setCancelled(true);
+			float skillvalue = (float)mcUsers.getProfile(player).getWoodCuttingInt();
+    		String percentage = String.valueOf((skillvalue / 1000) * 100);
 			player.sendMessage(ChatColor.RED+"-----[]"+ChatColor.GREEN+"WOODCUTTING"+ChatColor.RED+"[]-----");
 			player.sendMessage(ChatColor.RED+"-----[]"+ChatColor.GREEN+"WOODCUTTING"+ChatColor.RED+"[]-----");
 			player.sendMessage(ChatColor.DARK_GRAY+"XP GAIN: "+ChatColor.WHITE+"Chopping down trees");
 			player.sendMessage(ChatColor.DARK_GRAY+"XP GAIN: "+ChatColor.WHITE+"Chopping down trees");
 			player.sendMessage(ChatColor.RED+"---[]"+ChatColor.GREEN+"EFFECTS"+ChatColor.RED+"[]---");
 			player.sendMessage(ChatColor.RED+"---[]"+ChatColor.GREEN+"EFFECTS"+ChatColor.RED+"[]---");
-			player.sendMessage(ChatColor.DARK_AQUA+"Double Drops: "+ChatColor.GREEN+"Double the normal loot");
+			player.sendMessage(ChatColor.DARK_AQUA+"Double Drops: "+ChatColor.YELLOW+ChatColor.GREEN+"Double the normal loot");
+			player.sendMessage(ChatColor.RED+"---[]"+ChatColor.GREEN+"YOUR STATS"+ChatColor.RED+"[]---");
+			player.sendMessage(ChatColor.RED+"Double Drop Chance: "+ChatColor.YELLOW+percentage+"%");
     	}
     	}
     	if(split[0].equalsIgnoreCase("/archery")){
     	if(split[0].equalsIgnoreCase("/archery")){
 			event.setCancelled(true);
 			event.setCancelled(true);
+			float skillvalue = (float)mcUsers.getProfile(player).getArcheryInt();
+    		String percentage = String.valueOf((skillvalue / 1000) * 100);
 			player.sendMessage(ChatColor.RED+"-----[]"+ChatColor.GREEN+"ARCHERY"+ChatColor.RED+"[]-----");
 			player.sendMessage(ChatColor.RED+"-----[]"+ChatColor.GREEN+"ARCHERY"+ChatColor.RED+"[]-----");
 			player.sendMessage(ChatColor.DARK_GRAY+"XP GAIN: "+ChatColor.WHITE+"Attacking Monsters");
 			player.sendMessage(ChatColor.DARK_GRAY+"XP GAIN: "+ChatColor.WHITE+"Attacking Monsters");
 			player.sendMessage(ChatColor.RED+"---[]"+ChatColor.GREEN+"EFFECTS"+ChatColor.RED+"[]---");
 			player.sendMessage(ChatColor.RED+"---[]"+ChatColor.GREEN+"EFFECTS"+ChatColor.RED+"[]---");
 			//player.sendMessage(ChatColor.DARK_AQUA+"Daze (Monsters): "+ChatColor.GREEN+"Enemies lose interest for 1 second");
 			//player.sendMessage(ChatColor.DARK_AQUA+"Daze (Monsters): "+ChatColor.GREEN+"Enemies lose interest for 1 second");
 			player.sendMessage(ChatColor.DARK_AQUA+"Daze (Players): "+ChatColor.GREEN+"Disorients foes");
 			player.sendMessage(ChatColor.DARK_AQUA+"Daze (Players): "+ChatColor.GREEN+"Disorients foes");
 			player.sendMessage(ChatColor.DARK_AQUA+"Damage+: "+ChatColor.GREEN+"Modifies Damage");
 			player.sendMessage(ChatColor.DARK_AQUA+"Damage+: "+ChatColor.GREEN+"Modifies Damage");
+			player.sendMessage(ChatColor.DARK_AQUA+"Arrow Retrieval: "+ChatColor.GREEN+"Chance to retrieve arrows from corpses");
+			player.sendMessage(ChatColor.RED+"---[]"+ChatColor.GREEN+"YOUR STATS"+ChatColor.RED+"[]---");
+			player.sendMessage(ChatColor.RED+"Chance to Retrieve Arrows: "+ChatColor.YELLOW+percentage+"%");
     	}
     	}
     	if(split[0].equalsIgnoreCase("/axes")){
     	if(split[0].equalsIgnoreCase("/axes")){
 			event.setCancelled(true);
 			event.setCancelled(true);
@@ -253,25 +262,37 @@ public class mcm {
     	}
     	}
     	if(split[0].equalsIgnoreCase("/acrobatics")){
     	if(split[0].equalsIgnoreCase("/acrobatics")){
 			event.setCancelled(true);
 			event.setCancelled(true);
+			float skillvalue = (float)mcUsers.getProfile(player).getAcrobaticsInt();
+    		String percentage = String.valueOf((skillvalue / 1000) * 100);
 			player.sendMessage(ChatColor.RED+"-----[]"+ChatColor.GREEN+"ACROBATICS"+ChatColor.RED+"[]-----");
 			player.sendMessage(ChatColor.RED+"-----[]"+ChatColor.GREEN+"ACROBATICS"+ChatColor.RED+"[]-----");
 			player.sendMessage(ChatColor.DARK_GRAY+"XP GAIN: "+ChatColor.WHITE+"Falling");
 			player.sendMessage(ChatColor.DARK_GRAY+"XP GAIN: "+ChatColor.WHITE+"Falling");
 			player.sendMessage(ChatColor.RED+"---[]"+ChatColor.GREEN+"EFFECTS"+ChatColor.RED+"[]---");
 			player.sendMessage(ChatColor.RED+"---[]"+ChatColor.GREEN+"EFFECTS"+ChatColor.RED+"[]---");
 			player.sendMessage(ChatColor.DARK_AQUA+"Roll: "+ChatColor.GREEN+"Negates Damage");
 			player.sendMessage(ChatColor.DARK_AQUA+"Roll: "+ChatColor.GREEN+"Negates Damage");
+			player.sendMessage(ChatColor.RED+"---[]"+ChatColor.GREEN+"YOUR STATS"+ChatColor.RED+"[]---");
+			player.sendMessage(ChatColor.RED+"Roll Chance: "+ChatColor.YELLOW+percentage+"%");
     	}
     	}
     	if(split[0].equalsIgnoreCase("/mining")){
     	if(split[0].equalsIgnoreCase("/mining")){
+    		float skillvalue = (float)mcUsers.getProfile(player).getMiningInt();
+    		String percentage = String.valueOf((skillvalue / 1000) * 100);
 			event.setCancelled(true);
 			event.setCancelled(true);
 			player.sendMessage(ChatColor.RED+"-----[]"+ChatColor.GREEN+"MINING"+ChatColor.RED+"[]-----");
 			player.sendMessage(ChatColor.RED+"-----[]"+ChatColor.GREEN+"MINING"+ChatColor.RED+"[]-----");
 			player.sendMessage(ChatColor.DARK_GRAY+"XP GAIN: "+ChatColor.WHITE+"Mining Stone & Ore");
 			player.sendMessage(ChatColor.DARK_GRAY+"XP GAIN: "+ChatColor.WHITE+"Mining Stone & Ore");
 			player.sendMessage(ChatColor.RED+"---[]"+ChatColor.GREEN+"EFFECTS"+ChatColor.RED+"[]---");
 			player.sendMessage(ChatColor.RED+"---[]"+ChatColor.GREEN+"EFFECTS"+ChatColor.RED+"[]---");
 			player.sendMessage(ChatColor.DARK_AQUA+"Double Drops: "+ChatColor.GREEN+"Double the normal loot");
 			player.sendMessage(ChatColor.DARK_AQUA+"Double Drops: "+ChatColor.GREEN+"Double the normal loot");
+			player.sendMessage(ChatColor.RED+"---[]"+ChatColor.GREEN+"YOUR STATS"+ChatColor.RED+"[]---");
+			player.sendMessage(ChatColor.RED+"Double Drop Chance: "+ChatColor.YELLOW+percentage+"%");
     	}
     	}
     	if(split[0].equalsIgnoreCase("/repair")){
     	if(split[0].equalsIgnoreCase("/repair")){
+    		float skillvalue = (float)mcUsers.getProfile(player).getRepairInt();
+    		String percentage = String.valueOf((skillvalue / 1000) * 100);
 			event.setCancelled(true);
 			event.setCancelled(true);
 			player.sendMessage(ChatColor.RED+"-----[]"+ChatColor.GREEN+"REPAIR"+ChatColor.RED+"[]-----");
 			player.sendMessage(ChatColor.RED+"-----[]"+ChatColor.GREEN+"REPAIR"+ChatColor.RED+"[]-----");
 			player.sendMessage(ChatColor.DARK_GRAY+"XP GAIN: "+ChatColor.WHITE+"Repairing");
 			player.sendMessage(ChatColor.DARK_GRAY+"XP GAIN: "+ChatColor.WHITE+"Repairing");
 			player.sendMessage(ChatColor.RED+"---[]"+ChatColor.GREEN+"EFFECTS"+ChatColor.RED+"[]---");
 			player.sendMessage(ChatColor.RED+"---[]"+ChatColor.GREEN+"EFFECTS"+ChatColor.RED+"[]---");
 			player.sendMessage(ChatColor.DARK_AQUA+"Repair: "+ChatColor.GREEN+"Repair Iron Tools & Armor");
 			player.sendMessage(ChatColor.DARK_AQUA+"Repair: "+ChatColor.GREEN+"Repair Iron Tools & Armor");
 			player.sendMessage(ChatColor.DARK_AQUA+"Diamond Repair (50+ SKILL): "+ChatColor.GREEN+"Repair Diamond Tools & Armor");
 			player.sendMessage(ChatColor.DARK_AQUA+"Diamond Repair (50+ SKILL): "+ChatColor.GREEN+"Repair Diamond Tools & Armor");
+			player.sendMessage(ChatColor.RED+"---[]"+ChatColor.GREEN+"YOUR STATS"+ChatColor.RED+"[]---");
+			player.sendMessage(ChatColor.RED+"Super Repair Chance: "+ChatColor.YELLOW+percentage+"%");
     	}
     	}
     	if(split[0].equalsIgnoreCase("/unarmed")){
     	if(split[0].equalsIgnoreCase("/unarmed")){
 			event.setCancelled(true);
 			event.setCancelled(true);
@@ -283,11 +304,15 @@ public class mcm {
     	}
     	}
     	if(split[0].equalsIgnoreCase("/herbalism")){
     	if(split[0].equalsIgnoreCase("/herbalism")){
 			event.setCancelled(true);
 			event.setCancelled(true);
+			float skillvalue = (float)mcUsers.getProfile(player).getHerbalismInt();
+    		String percentage = String.valueOf((skillvalue / 1000) * 100);
 			player.sendMessage(ChatColor.RED+"-----[]"+ChatColor.GREEN+"HERBALISM"+ChatColor.RED+"[]-----");
 			player.sendMessage(ChatColor.RED+"-----[]"+ChatColor.GREEN+"HERBALISM"+ChatColor.RED+"[]-----");
 			player.sendMessage(ChatColor.DARK_GRAY+"XP GAIN: "+ChatColor.WHITE+"Harvesting Herbs");
 			player.sendMessage(ChatColor.DARK_GRAY+"XP GAIN: "+ChatColor.WHITE+"Harvesting Herbs");
 			player.sendMessage(ChatColor.RED+"---[]"+ChatColor.GREEN+"EFFECTS"+ChatColor.RED+"[]---");
 			player.sendMessage(ChatColor.RED+"---[]"+ChatColor.GREEN+"EFFECTS"+ChatColor.RED+"[]---");
 			player.sendMessage(ChatColor.DARK_AQUA+"Food+: "+ChatColor.GREEN+"Modifies health received from bread/stew");
 			player.sendMessage(ChatColor.DARK_AQUA+"Food+: "+ChatColor.GREEN+"Modifies health received from bread/stew");
 			player.sendMessage(ChatColor.DARK_AQUA+"Double Drops (Wheat): "+ChatColor.GREEN+"Double the normal loot");
 			player.sendMessage(ChatColor.DARK_AQUA+"Double Drops (Wheat): "+ChatColor.GREEN+"Double the normal loot");
+			player.sendMessage(ChatColor.RED+"---[]"+ChatColor.GREEN+"YOUR STATS"+ChatColor.RED+"[]---");
+			player.sendMessage(ChatColor.RED+"Double Drop Chance: "+percentage+"%");
     	}
     	}
     	if(split[0].equalsIgnoreCase("/excavation")){
     	if(split[0].equalsIgnoreCase("/excavation")){
 
 

+ 1 - 1
mcMMO/plugin.yml

@@ -1,3 +1,3 @@
 name: mcMMO
 name: mcMMO
 main: com.gmail.nossr50.mcMMO
 main: com.gmail.nossr50.mcMMO
-version: 0.8.13
+version: 0.8.14