Ver código fonte

All changes up to 0.9

nossr50 14 anos atrás
pai
commit
8a5560b711

+ 5 - 0
mcMMO/Changelog.txt

@@ -13,6 +13,7 @@ Unarmed now has the "Deflect Arrows" passive skill
 Chimaera Wing Item Added
 
 --CHANGES--
+HP Regen & Bleed are back
 Woodcutting will drop the appropriate log on double drop procs
 Herbalism now applies double drops to herbs
 /<skillname> now shows much more information to the player regarding their stats
@@ -22,9 +23,13 @@ Unarmed disarm chance is now based directly on your skill level
 Acrobatics now gives XP when you roll
 
 --BUGFIXES--
+Memory Leak Fixed
+Axes not doing critical strikes
+Gold Armor repair
 Capped skills now have the correct proc chance
 /mmoedit is no longer case sensitive
 More NPE errors fixed
+Many bugs I forgot to write down
 
 --PLUGIN COMPATABILITY FIXES--
 If combat interactions are cancelled by other plugins mcMMO should ignore the event

+ 13 - 6
mcMMO/com/gmail/nossr50/mcBlockListener.java

@@ -37,8 +37,8 @@ public class mcBlockListener extends BlockListener {
     	Block block = event.getBlock();
     	Player player = event.getPlayer();
     	ItemStack is = player.getItemInHand();
-    	if(mcPermissions.getInstance().unarmed(player)){
-    		mcSkills.getInstance().berserkActivationCheck(player, block);
+    	if(mcPermissions.getInstance().unarmed(player) && player.getItemInHand().getTypeId() == 0 && mcm.getInstance().abilityBlockCheck(block)){
+    		mcSkills.getInstance().abilityActivationCheck(player, block);
     	}
     	if(block != null && player != null && mcPermissions.getInstance().repair(player) && event.getBlock().getTypeId() == 42){
         	mcRepair.getInstance().repairCheck(player, is, event.getBlock());
@@ -55,7 +55,17 @@ public class mcBlockListener extends BlockListener {
     	Block block = event.getBlock();
     	Location loc = block.getLocation();
     	int dmg = event.getDamageLevel().getLevel();
-    	
+    	/*
+    	 * ABILITY PREPARATION CHECKS
+    	 */
+    	if(mcUsers.getProfile(player).getAxePreparationMode() && block.getTypeId() == 17)
+    		mcWoodCutting.getInstance().treeFellerCheck(player, block);
+    	if(mcUsers.getProfile(player).getPickaxePreparationMode())
+    		mcMining.getInstance().superBreakerCheck(player, block);
+    	if(mcUsers.getProfile(player).getShovelPreparationMode() && mcExcavation.getInstance().canBeGigaDrillBroken(block))
+    		mcExcavation.getInstance().gigaDrillBreakerActivationCheck(player, block);
+    	if(mcUsers.getProfile(player).getFistsPreparationMode() && mcExcavation.getInstance().canBeGigaDrillBroken(block))
+    		mcSkills.getInstance().berserkActivationCheck(player);
     	/*
     	 * GIGA DRILL BREAKER CHECKS
     	 */
@@ -119,9 +129,6 @@ public class mcBlockListener extends BlockListener {
 	   		 * WOOD CUTTING
 	   		 */
 	    	
-	    	//Check for axe prep
-	    	if(mcUsers.getProfile(player).getAxePreparationMode())
-	    		mcWoodCutting.getInstance().treeFellerCheck(player, block);
 	   		if(player != null && block.getTypeId() == 17 && mcPermissions.getInstance().woodcutting(player)){
 	   				if(mcLoadProperties.woodcuttingrequiresaxe){
     					if(mcm.getInstance().isAxes(inhand)){

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

@@ -498,7 +498,7 @@ public class mcCombat {
     }
     public void applyAoeDamage(Player attacker, EntityDamageByEntityEvent event, Entity x){
     	for(Entity derp : x.getWorld().getEntities()){
-    		if(mcm.getInstance().getDistance(x.getLocation(), derp.getLocation()) < 7){
+    		if(mcm.getInstance().getDistance(x.getLocation(), derp.getLocation()) < 5){
     			if(derp instanceof Player){
     				Player target = (Player)derp;
     				if(mcParty.getInstance().inSameParty(attacker, target))
@@ -521,14 +521,14 @@ public class mcCombat {
     }
     public void applySerratedStrikes(Player attacker, EntityDamageByEntityEvent event, Entity x){
     	for(Entity derp : x.getWorld().getEntities()){
-    		if(mcm.getInstance().getDistance(x.getLocation(), derp.getLocation()) < 7){
+    		if(mcm.getInstance().getDistance(x.getLocation(), derp.getLocation()) < 5){
     			if(derp instanceof Player){
     				Player target = (Player)derp;
     				if(mcParty.getInstance().inSameParty(attacker, target))
     					continue;
     				if(!target.getName().equals(attacker.getName())){
     					target.damage(event.getDamage() / 4);
-    					target.sendMessage(ChatColor.DARK_RED+"Struck by Serrated Strike!");
+    					target.sendMessage(ChatColor.DARK_RED+"Struck by Serrated Strikes!");
     					if(!mcConfig.getInstance().isBleedTracked(derp)){
         					mcConfig.getInstance().addBleedTrack(x);
         					mcUsers.getProfile(target).setBleedTicks(12);
@@ -554,20 +554,20 @@ public class mcCombat {
     	if(mcm.getInstance().isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker)){
     		if(mcUsers.getProfile(attacker).getAxesInt() >= 750){
     			if(Math.random() * 1000 <= 750){
-    				event.setDamage(event.getDamage() * 2);
-    				attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!");
     				if(x instanceof Player){
     					Player player = (Player)x;
     					player.sendMessage(ChatColor.DARK_RED + "You were CRITICALLY hit!");
     				}
+    				event.setDamage(event.getDamage() * 2);
+    				attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!");
     			}
     		} else if(Math.random() * 1000 <= mcUsers.getProfile(attacker).getAxesInt()){
     			if(x instanceof Player){
     				Player player = (Player)x;
-    				event.setDamage(event.getDamage() * 2);
-    				attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!");
     				player.sendMessage(ChatColor.DARK_RED + "You were CRITICALLY hit!");
     			}
+    			event.setDamage(event.getDamage() * 2);
+				attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!");
     		}
     	}
     }

+ 4 - 0
mcMMO/com/gmail/nossr50/mcEntityListener.java

@@ -96,6 +96,10 @@ public class mcEntityListener extends EntityListener {
         		Player attacker = (Player)f;
         		if(mcUsers.getProfile(attacker).getAxePreparationMode())
         			mcSkills.getInstance().skullSplitterCheck(attacker);
+        		if(mcUsers.getProfile(attacker).getSwordsPreparationMode())
+        			mcSkills.getInstance().serratedStrikesActivationCheck(attacker);
+        		if(mcUsers.getProfile(attacker).getFistsPreparationMode())
+        			mcSkills.getInstance().berserkActivationCheck(attacker);
         		/*
         		 * BERSERK DAMAGE MODIFIER
         		 */

+ 0 - 3
mcMMO/com/gmail/nossr50/mcExcavation.java

@@ -50,9 +50,6 @@ public class mcExcavation {
 	    		mcUsers.getProfile(player).setGigaDrillBreakerMode(true);
 	    	}
 	    	
-	    	if(!mcUsers.getProfile(player).getGigaDrillBreakerMode() && mcUsers.getProfile(player).getGigaDrillBreakerCooldown() >= 1){
-	    		player.sendMessage(ChatColor.RED+"You are too tired to use that ability again.");
-	    	}
 	    }
 	}
 	public boolean canBeGigaDrillBroken(Block block){

+ 0 - 3
mcMMO/com/gmail/nossr50/mcMining.java

@@ -50,9 +50,6 @@ public class mcMining {
 	    		mcUsers.getProfile(player).setSuperBreakerMode(true);
 	    	}
 	    	
-	    	if(!mcUsers.getProfile(player).getSuperBreakerMode() && mcUsers.getProfile(player).getSuperBreakerCooldown() >= 1){
-	    		player.sendMessage(ChatColor.RED+"You are too tired to use that ability again.");
-	    	}
 	    }
 	}
 	public void blockProcSimulate(Block block){

+ 28 - 16
mcMMO/com/gmail/nossr50/mcRepair.java

@@ -288,29 +288,41 @@ public class mcRepair {
     		switch(is.getTypeId())
     		{
     		case 306:
-    		durability -= 27;
-    		break;
+    			durability -= 27;
+    			break;
     		case 310:
-	    	durability -= 55;
-	    	break;
+    			durability -= 55;
+	    		break;
     		case 307:
-	    	durability -= 24;
-	    	break;
+    			durability -= 24;
+	    		break;
     		case 311:
-	    	durability -= 48;
-	    	break;
+    			durability -= 48;
+	    		break;
     		case 308:
-	    	durability -= 27;
-	    	break;
+    			durability -= 27;
+	    		break;
     		case 312:
-	    	durability -= 53;
-	    	break;
+    			durability -= 53;
+	    		break;
     		case 309:
-	    	durability -= 40;
-	    	break;
+    			durability -= 40;
+	    		break;
     		case 313:
-	    	durability -= 80;
-	    	break;
+    			durability -= 80;
+	    		break;
+    		case 314:
+        		durability -= 13;
+        		break;
+    		case 315:
+        		durability -= 12;
+        		break;
+    		case 316:
+        		durability -= 14;
+        		break;
+    		case 317:
+        		durability -= 20;
+        		break;
     		}
 			if(durability < 0)
 			durability = 0;

+ 82 - 53
mcMMO/com/gmail/nossr50/mcSkills.java

@@ -72,39 +72,56 @@ public class mcSkills {
 			}
     	}
     }
-    public void axeActivationCheck(Player player, Block block){
-    	if(mcPermissions.getInstance().axes(player) && mcPermissions.getInstance().woodcutting(player)){
+    public void abilityActivationCheck(Player player, Block block){
+    	if(mcPermissions.getInstance().miningAbility(player) && mcm.getInstance().isMiningPick(player.getItemInHand()) && !mcUsers.getProfile(player).getPickaxePreparationMode()){
+    		if(!mcUsers.getProfile(player).getSuperBreakerMode() && mcUsers.getProfile(player).getSuperBreakerCooldown() >= 1){
+	    		player.sendMessage(ChatColor.RED+"You are too tired to use that ability again.");
+	    		return;
+	    	}
+    		player.sendMessage(ChatColor.GREEN+"**YOU READY YOUR PICKAXE**");
+			mcUsers.getProfile(player).setPickaxePreparationTicks(2);
+			mcUsers.getProfile(player).setPickaxePreparationMode(true);
+    	}
+    	if(mcPermissions.getInstance().excavationAbility(player) && mcm.getInstance().isShovel(player.getItemInHand()) && !mcUsers.getProfile(player).getShovelPreparationMode()){
+    		if(!mcUsers.getProfile(player).getGigaDrillBreakerMode() && mcUsers.getProfile(player).getGigaDrillBreakerCooldown() >= 1){
+	    		player.sendMessage(ChatColor.RED+"You are too tired to use that ability again.");
+	    		return;
+	    	}
+    		player.sendMessage(ChatColor.GREEN+"**YOU READY YOUR SHOVEL**");
+			mcUsers.getProfile(player).setShovelPreparationTicks(2);
+			mcUsers.getProfile(player).setShovelPreparationMode(true);
+    	}
+    	if(mcPermissions.getInstance().swordsAbility(player) && mcm.getInstance().isSwords(player.getItemInHand()) && !mcUsers.getProfile(player).getSwordsPreparationMode()){
+    		if(!mcUsers.getProfile(player).getSerratedStrikesMode() && mcUsers.getProfile(player).getSerratedStrikesCooldown() >= 1){
+	    		player.sendMessage(ChatColor.RED+"You are too tired to use that ability again.");
+	    		return;
+	    	}
+    		player.sendMessage(ChatColor.GREEN+"**YOU READY YOUR SWORD**");
+			mcUsers.getProfile(player).setSwordsPreparationTicks(2);
+			mcUsers.getProfile(player).setSwordsPreparationMode(true);
+    	}
+    	if(mcPermissions.getInstance().unarmedAbility(player) && player.getItemInHand().getTypeId() == 0 && !mcUsers.getProfile(player).getFistsPreparationMode()){
+	    	if(!mcUsers.getProfile(player).getBerserkMode() && mcUsers.getProfile(player).getBerserkCooldown() >= 1){
+	    		player.sendMessage(ChatColor.RED+"You are too tired to use that ability again.");
+	    		return;
+	    	}
+    		player.sendMessage(ChatColor.GREEN+"**YOU READY YOUR FISTS**");
+			mcUsers.getProfile(player).setFistsPreparationTicks(2);
+			mcUsers.getProfile(player).setFistsPreparationMode(true);
+    	}
+    	if((mcPermissions.getInstance().axes(player) || mcPermissions.getInstance().woodcutting(player)) && !mcUsers.getProfile(player).getAxePreparationMode()){
     		if(!mcUsers.getProfile(player).getAxePreparationMode() && mcm.getInstance().isAxes(player.getItemInHand())){
+        		if(!mcUsers.getProfile(player).getSkullSplitterMode() && mcUsers.getProfile(player).getSkullSplitterCooldown() >= 1){
+        			player.sendMessage(ChatColor.RED+"You are too tired to use that ability again.");
+        		}
     			player.sendMessage(ChatColor.GREEN+"**YOU READY YOUR AXE**");
     			mcUsers.getProfile(player).setAxePreparationTicks(2);
     			mcUsers.getProfile(player).setAxePreparationMode(true);
     		}
-    	} else if(mcPermissions.getInstance().woodcutting(player)){
-    		mcWoodCutting.getInstance().treeFellerCheck(player, block);
-    	} else if (mcPermissions.getInstance().axes(player)){
-    		/*
-    		 * 
-    		 */
-    	}
-    }
-    public void abilityActivationCheck(Player player, Block block){
-    	if(mcPermissions.getInstance().miningAbility(player)){
-    		mcMining.getInstance().superBreakerCheck(player, block);
-    	}
-    	if(mcPermissions.getInstance().excavationAbility(player)){
-    		mcExcavation.getInstance().gigaDrillBreakerActivationCheck(player, block);
-    	}
-    	if(mcPermissions.getInstance().swords(player)){
-    		serratedStrikesActivationCheck(player, block);
     	}
-    	axeActivationCheck(player, block);
     }
-    public void serratedStrikesActivationCheck(Player player, Block block){
+    public void serratedStrikesActivationCheck(Player player){
 		if(mcm.getInstance().isSwords(player.getItemInHand())){
-	    	if(block != null){
-		    	if(!mcm.getInstance().abilityBlockCheck(block))
-		    		return;
-	    	}
 	    	
 	    	int ticks = 2;
     		if(mcUsers.getProfile(player).getSwordsInt() >= 50)
@@ -130,17 +147,10 @@ public class mcSkills {
 	    		mcUsers.getProfile(player).setSerratedStrikesMode(true);
 	    	}
 	    	
-	    	if(!mcUsers.getProfile(player).getGigaDrillBreakerMode() && mcUsers.getProfile(player).getGigaDrillBreakerCooldown() >= 1){
-	    		player.sendMessage(ChatColor.RED+"You are too tired to use that ability again.");
-	    	}
 	    }
 	}
-    public void berserkActivationCheck(Player player, Block block){
+    public void berserkActivationCheck(Player player){
 		if(player.getItemInHand().getTypeId() == 0){
-	    	if(block != null){
-		    	if(!mcm.getInstance().abilityBlockCheck(block))
-		    		return;
-	    	}
 	    	
 	    	int ticks = 2;
     		if(mcUsers.getProfile(player).getUnarmedInt() >= 50)
@@ -165,10 +175,7 @@ public class mcSkills {
 	    		mcUsers.getProfile(player).setBerserkTicks(ticks);
 	    		mcUsers.getProfile(player).setBerserkMode(true);
 	    	}
-	    	
-	    	if(!mcUsers.getProfile(player).getGigaDrillBreakerMode() && mcUsers.getProfile(player).getGigaDrillBreakerCooldown() >= 1){
-	    		player.sendMessage(ChatColor.RED+"You are too tired to use that ability again.");
-	    	}
+
 	    }
 	}
     public void skullSplitterCheck(Player player){
@@ -203,23 +210,45 @@ public class mcSkills {
     			mcUsers.getProfile(player).setSkullSplitterTicks(ticks);
     			mcUsers.getProfile(player).setSkullSplitterMode(true);
     		}
-    		if(!mcUsers.getProfile(player).getSkullSplitterMode() && mcUsers.getProfile(player).getSkullSplitterCooldown() >= 1){
-    			player.sendMessage(ChatColor.RED+"You are too tired to use that ability again.");
-    		}
     	}
     }
     public void monitorSkills(Player player){
     	/*
     	 * AXE PREPARATION MODE
     	 */
-    	if(mcPermissions.getInstance().woodCuttingAbility(player) && mcPermissions.getInstance().axes(player)){
-			//Monitor the length of TreeFeller mode
-			if(mcUsers.getProfile(player).getAxePreparationMode()){
-				mcUsers.getProfile(player).decreaseAxePreparationTicks();
-				if(mcUsers.getProfile(player).getAxePreparationTicks() <= 0){
-					mcUsers.getProfile(player).setAxePreparationMode(false);
-					player.sendMessage(ChatColor.GRAY+"**YOU LOWER YOUR AXE**");
-				}
+		if(mcUsers.getProfile(player).getAxePreparationMode()){
+			mcUsers.getProfile(player).decreaseAxePreparationTicks();
+			if(mcUsers.getProfile(player).getAxePreparationTicks() <= 0){
+				mcUsers.getProfile(player).setAxePreparationMode(false);
+				player.sendMessage(ChatColor.GRAY+"**YOU LOWER YOUR AXE**");
+			}
+		}
+		if(mcUsers.getProfile(player).getPickaxePreparationMode()){
+			mcUsers.getProfile(player).decreasePickaxePreparationTicks();
+			if(mcUsers.getProfile(player).getPickaxePreparationTicks() <= 0){
+				mcUsers.getProfile(player).setPickaxePreparationMode(false);
+				player.sendMessage(ChatColor.GRAY+"**YOU LOWER YOUR PICKAXE**");
+			}
+		}
+		if(mcUsers.getProfile(player).getSwordsPreparationMode()){
+			mcUsers.getProfile(player).decreaseSwordsPreparationTicks();
+			if(mcUsers.getProfile(player).getSwordsPreparationTicks() <= 0){
+				mcUsers.getProfile(player).setSwordsPreparationMode(false);
+				player.sendMessage(ChatColor.GRAY+"**YOU LOWER YOUR SWORD**");
+			}
+		}
+		if(mcUsers.getProfile(player).getFistsPreparationMode()){
+			mcUsers.getProfile(player).decreaseFistsPreparationTicks();
+			if(mcUsers.getProfile(player).getFistsPreparationTicks() <= 0){
+				mcUsers.getProfile(player).setFistsPreparationMode(false);
+				player.sendMessage(ChatColor.GRAY+"**YOU LOWER YOUR FISTS**");
+			}
+		}
+		if(mcUsers.getProfile(player).getShovelPreparationMode()){
+			mcUsers.getProfile(player).decreaseShovelPreparationTicks();
+			if(mcUsers.getProfile(player).getShovelPreparationTicks() <= 0){
+				mcUsers.getProfile(player).setShovelPreparationMode(false);
+				player.sendMessage(ChatColor.GRAY+"**YOU LOWER YOUR SHOVEL**");
 			}
 		}
     	/*
@@ -232,7 +261,7 @@ public class mcSkills {
 				if(mcUsers.getProfile(player).getSkullSplitterTicks() <= 0){
 					mcUsers.getProfile(player).setSkullSplitterMode(false);
 					mcUsers.getProfile(player).setSkullSplitterCooldown(120);
-					player.sendMessage(ChatColor.GRAY+"**You feel strength leaving you**");
+					player.sendMessage(ChatColor.GRAY+"**Skull Splitter has worn off**");
 				}
 			}
 		}
@@ -245,7 +274,7 @@ public class mcSkills {
 				if(mcUsers.getProfile(player).getTreeFellerTicks() <= 0){
 					mcUsers.getProfile(player).setTreeFellerMode(false);
 					mcUsers.getProfile(player).setTreeFellerCooldown(120);
-					player.sendMessage(ChatColor.GRAY+"**You feel strength leaving you**");
+					player.sendMessage(ChatColor.GRAY+"**Tree Feller has worn off**");
 				}
 			}
 		}
@@ -258,7 +287,7 @@ public class mcSkills {
 				if(mcUsers.getProfile(player).getSuperBreakerTicks() <= 0){
 					mcUsers.getProfile(player).setSuperBreakerMode(false);
 					mcUsers.getProfile(player).setSuperBreakerCooldown(120);
-					player.sendMessage(ChatColor.GRAY+"**You feel strength leaving you**");
+					player.sendMessage(ChatColor.GRAY+"**Super Breaker has worn off**");
 				}
 			}
 		}
@@ -284,7 +313,7 @@ public class mcSkills {
 				if(mcUsers.getProfile(player).getSerratedStrikesTicks() <= 0){
 					mcUsers.getProfile(player).setSerratedStrikesMode(false);
 					mcUsers.getProfile(player).setSerratedStrikesCooldown(120);
-					player.sendMessage(ChatColor.GRAY+"**You feel spiral energy leaving you**");
+					player.sendMessage(ChatColor.GRAY+"**Serrated Strikes has worn off**");
 				}
 			}
 		}
@@ -297,7 +326,7 @@ public class mcSkills {
 				if(mcUsers.getProfile(player).getBerserkTicks() <= 0){
 					mcUsers.getProfile(player).setBerserkMode(false);
 					mcUsers.getProfile(player).setBerserkCooldown(120);
-					player.sendMessage(ChatColor.GRAY+"**You feel spiral energy leaving you**");
+					player.sendMessage(ChatColor.GRAY+"**Berserk has worn off**");
 				}
 			}
 		}

+ 82 - 2
mcMMO/com/gmail/nossr50/mcUsers.java

@@ -156,10 +156,10 @@ class PlayerList
 	    protected final Logger log = Logger.getLogger("Minecraft");
 		private String playerName, gather, wgather, woodcutting, repair, mining, party, myspawn, myspawnworld, unarmed, herbalism, excavation,
 		archery, swords, axes, invite, acrobatics, repairgather, unarmedgather, herbalismgather, excavationgather, archerygather, swordsgather, axesgather, acrobaticsgather;
-		private boolean dead, treeFellerMode, superBreakerMode, gigaDrillBreakerMode, serratedStrikesMode, axePreparationMode, skullSplitterMode, berserkMode;
+		private boolean dead, treeFellerMode, superBreakerMode, gigaDrillBreakerMode, serratedStrikesMode, shovelPreparationMode, swordsPreparationMode, fistsPreparationMode, pickaxePreparationMode, axePreparationMode, skullSplitterMode, berserkMode;
 		private int recentlyhurt = 0, bleedticks = 0, gigaDrillBreakerCooldown = 0, gigaDrillBreakerTicks = 0, berserkTicks = 0, berserkCooldown = 0, superBreakerTicks = 0, superBreakerCooldown = 0, 
 		serratedStrikesTicks = 0, skullSplitterTicks = 0, skullSplitterCooldown = 0, serratedStrikesCooldown = 0, treeFellerTicks = 0, treeFellerCooldown = 0,
-		axePreparationTicks = 0;
+		axePreparationTicks = 0, pickaxePreparationTicks = 0, fistsPreparationTicks = 0, shovelPreparationTicks = 0, swordsPreparationTicks = 0;
 		Player thisplayer;
 		char defaultColor;
 
@@ -442,6 +442,66 @@ class PlayerList
 				return false;
 			}
 		}
+		/*
+		 * SWORDS PREPARATION
+		 */
+		public boolean getSwordsPreparationMode(){
+			return swordsPreparationMode;
+		}
+		public void setSwordsPreparationMode(Boolean bool){
+			swordsPreparationMode = bool;
+		}
+		public Integer getSwordsPreparationTicks(){
+			return swordsPreparationTicks;
+		}
+		public void setSwordsPreparationTicks(Integer newvalue){
+			swordsPreparationTicks = newvalue;
+		}
+		public void decreaseSwordsPreparationTicks(){
+			if(swordsPreparationTicks >= 1){
+				swordsPreparationTicks--;
+			}
+		}
+		/*
+		 * SHOVEL PREPARATION
+		 */
+		public boolean getShovelPreparationMode(){
+			return shovelPreparationMode;
+		}
+		public void setShovelPreparationMode(Boolean bool){
+			shovelPreparationMode = bool;
+		}
+		public Integer getShovelPreparationTicks(){
+			return shovelPreparationTicks;
+		}
+		public void setShovelPreparationTicks(Integer newvalue){
+			shovelPreparationTicks = newvalue;
+		}
+		public void decreaseShovelPreparationTicks(){
+			if(shovelPreparationTicks >= 1){
+				shovelPreparationTicks--;
+			}
+		}
+		/*
+		 * FISTS PREPARATION
+		 */
+		public boolean getFistsPreparationMode(){
+			return fistsPreparationMode;
+		}
+		public void setFistsPreparationMode(Boolean bool){
+			fistsPreparationMode = bool;
+		}
+		public Integer getFistsPreparationTicks(){
+			return fistsPreparationTicks;
+		}
+		public void setFistsPreparationTicks(Integer newvalue){
+			fistsPreparationTicks = newvalue;
+		}
+		public void decreaseFistsPreparationTicks(){
+			if(fistsPreparationTicks >= 1){
+				fistsPreparationTicks--;
+			}
+		}
 		/*
 		 * AXE PREPARATION
 		 */
@@ -462,6 +522,26 @@ class PlayerList
 				axePreparationTicks--;
 			}
 		}
+		/*
+		 * PICKAXE PREPARATION
+		 */
+		public boolean getPickaxePreparationMode(){
+			return pickaxePreparationMode;
+		}
+		public void setPickaxePreparationMode(Boolean bool){
+			pickaxePreparationMode = bool;
+		}
+		public Integer getPickaxePreparationTicks(){
+			return pickaxePreparationTicks;
+		}
+		public void setPickaxePreparationTicks(Integer newvalue){
+			pickaxePreparationTicks = newvalue;
+		}
+		public void decreasePickaxePreparationTicks(){
+			if(pickaxePreparationTicks >= 1){
+				pickaxePreparationTicks--;
+			}
+		}
 		/*
 		 * BERSERK MODE
 		 */

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

@@ -37,7 +37,7 @@ public class mcm {
     }
 	public boolean abilityBlockCheck(Block block){
 		int i = block.getTypeId();
-		if(i == 58 || i == 61 || i == 42 || i == 71 || i == 64 || i == 84 || i == 324 || i == 330){
+		if(i == 25 || i == 54 || i == 69 || i == 92 || i == 77 || i == 58 || i == 61 || i == 62 || i == 42 || i == 71 || i == 64 || i == 84 || i == 324 || i == 330){
 			return false;
 		} else {
 			return true;

+ 1 - 1
mcMMO/plugin.yml

@@ -1,3 +1,3 @@
 name: mcMMO
 main: com.gmail.nossr50.mcMMO
-version: 0.9 WIP
+version: 0.9