浏览代码

All changes up to 0.9.6

nossr50 14 年之前
父节点
当前提交
6c6d2710e3

+ 12 - 0
mcMMO/Changelog.txt

@@ -1,5 +1,17 @@
 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.9.6
+Timer checks for player being null before adding them to the mcUsers system
+Cooldowns will now show how much time is remaining when trying to use their respective abilities
+SkullSpliiter will now correctly inform the player when they are too tired to use it
+Acrobatics will no longer give XP if the event was cancelled by another plugin
+Version 0.9.5
+Super Breaker now gives a chance for Triple Drops based on mining skill
+Ability durability loss down from 15 to 2
+Ability durability loss is now toggle-able
+Ability durability loss can be adjusted in the configuration file
+Mining Picks are no longer lowered after activating Super Breaker
+
 Version 0.9.4
 Version 0.9.4
 Flowers won't drop wheat anymore
 Flowers won't drop wheat anymore
 Signs won't trigger ability readiness anymore
 Signs won't trigger ability readiness anymore

+ 14 - 11
mcMMO/com/gmail/nossr50/mcAcrobatics.java

@@ -15,12 +15,13 @@ public class mcAcrobatics {
 	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){
     	if(player != null){
 			if(Math.random() * 1000 <= mcUsers.getProfile(player).getAcrobaticsInt()){
 			if(Math.random() * 1000 <= mcUsers.getProfile(player).getAcrobaticsInt()){
-				event.setCancelled(true);
 				player.sendMessage("**ROLLED**");
 				player.sendMessage("**ROLLED**");
 				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() * 8);
-				mcSkills.getInstance().XpCheck(player);
+					if(!event.isCancelled())
+						mcUsers.getProfile(player).addAcrobaticsGather(event.getDamage() * 8);
+					mcSkills.getInstance().XpCheck(player);
+					event.setCancelled(true);
 				}
 				}
 				return;
 				return;
 			}
 			}
@@ -29,14 +30,16 @@ public class mcAcrobatics {
 			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() * 12);
-		mcSkills.getInstance().XpCheck(player);
-		mcConfig.getInstance().addBlockWatch(loc.getWorld().getBlockAt(xx, y, z));
-		if(player.getHealth() - event.getDamage() <= 0){
-			if(mcUsers.getProfile(player).isDead())
-    			return;
-			mcUsers.getProfile(player).setDead(true);
-		}
+			if(!event.isCancelled())
+				mcUsers.getProfile(player).addAcrobaticsGather(event.getDamage() * 8);
+			mcUsers.getProfile(player).addAcrobaticsGather(event.getDamage() * 12);
+			mcSkills.getInstance().XpCheck(player);
+			mcConfig.getInstance().addBlockWatch(loc.getWorld().getBlockAt(xx, y, z));
+			if(player.getHealth() - event.getDamage() <= 0){
+				if(mcUsers.getProfile(player).isDead())
+	    			return;
+				mcUsers.getProfile(player).setDead(true);
+			}
 		}
 		}
     }
     }
 	
 	

+ 8 - 2
mcMMO/com/gmail/nossr50/mcBlockListener.java

@@ -12,6 +12,9 @@ import org.bukkit.event.block.BlockListener;
 import org.bukkit.event.block.BlockPlaceEvent;
 import org.bukkit.event.block.BlockPlaceEvent;
 import org.bukkit.event.block.BlockRightClickEvent;
 import org.bukkit.event.block.BlockRightClickEvent;
 import org.bukkit.inventory.ItemStack;
 import org.bukkit.inventory.ItemStack;
+import org.bukkit.plugin.Plugin;
+
+import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
 
 
 public class mcBlockListener extends BlockListener {
 public class mcBlockListener extends BlockListener {
     private final mcMMO plugin;
     private final mcMMO plugin;
@@ -55,6 +58,7 @@ public class mcBlockListener extends BlockListener {
     	Block block = event.getBlock();
     	Block block = event.getBlock();
     	Location loc = block.getLocation();
     	Location loc = block.getLocation();
     	int dmg = event.getDamageLevel().getLevel();
     	int dmg = event.getDamageLevel().getLevel();
+    	
     	/*
     	/*
     	 * ABILITY PREPARATION CHECKS
     	 * ABILITY PREPARATION CHECKS
     	 */
     	 */
@@ -82,7 +86,8 @@ public class mcBlockListener extends BlockListener {
 			byte type = block.getData();
 			byte type = block.getData();
 			ItemStack item = new ItemStack(mat, 1, (byte)0, type);
 			ItemStack item = new ItemStack(mat, 1, (byte)0, type);
 			block.setType(Material.AIR);
 			block.setType(Material.AIR);
-			mcm.getInstance().damageTool(player, (short) 15);
+			if(mcLoadProperties.toolsLoseDurabilityFromAbilities)
+	    		mcm.getInstance().damageTool(player, (short) mcLoadProperties.abilityDurabilityLoss);
 			block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item);
 			block.getLocation().getWorld().dropItemNaturally(block.getLocation(), item);
     	}
     	}
     	/*
     	/*
@@ -170,7 +175,8 @@ public class mcBlockListener extends BlockListener {
 	    						blockx.setType(Material.AIR);
 	    						blockx.setType(Material.AIR);
 	    					}
 	    					}
 	    				}
 	    				}
-	    					mcm.getInstance().damageTool(player, (short) 15);
+	    				if(mcLoadProperties.toolsLoseDurabilityFromAbilities)
+	    		    		mcm.getInstance().damageTool(player, (short) mcLoadProperties.abilityDurabilityLoss);
 	    					/*
 	    					/*
 	    					 * NOTE TO SELF
 	    					 * NOTE TO SELF
 	    					 * I NEED TO REMOVE TREE FELL BLOCKS FROM BEING WATCHED AFTER THIS CODE IS EXECUTED
 	    					 * I NEED TO REMOVE TREE FELL BLOCKS FROM BEING WATCHED AFTER THIS CODE IS EXECUTED

+ 3 - 1
mcMMO/com/gmail/nossr50/mcItem.java

@@ -1,5 +1,6 @@
 package com.gmail.nossr50;
 package com.gmail.nossr50;
 
 
+import org.bukkit.ChatColor;
 import org.bukkit.Material;
 import org.bukkit.Material;
 import org.bukkit.block.Block;
 import org.bukkit.block.Block;
 import org.bukkit.entity.Player;
 import org.bukkit.entity.Player;
@@ -64,7 +65,8 @@ public class mcItem {
     			}
     			}
     			player.sendMessage("**CHIMAERA WING**");
     			player.sendMessage("**CHIMAERA WING**");
     		} else if (mcUsers.getProfile(player).getRecentlyHurt() >= 1 && is.getAmount() >= 10) {
     		} else if (mcUsers.getProfile(player).getRecentlyHurt() >= 1 && is.getAmount() >= 10) {
-    			player.sendMessage("You were injured recently and must wait to use this.");
+    			player.sendMessage("You were injured recently and must wait to use this."
+    					+ChatColor.YELLOW+" ("+(mcUsers.getProfile(player).getRecentlyHurt() * 2)+"s)");
     		} else if (is.getTypeId() == 288 && is.getAmount() <= 9){
     		} else if (is.getTypeId() == 288 && is.getAmount() <= 9){
     			player.sendMessage("You need more of that to use it");
     			player.sendMessage("You need more of that to use it");
     		}
     		}

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

@@ -1,15 +1,17 @@
 package com.gmail.nossr50;
 package com.gmail.nossr50;
 
 
 public class mcLoadProperties {
 public class mcLoadProperties {
-	public static Boolean pvpxp, miningrequirespickaxe, woodcuttingrequiresaxe, pvp, eggs, apples, myspawnclearsinventory, cake, music, diamond, glowstone, slowsand, sulphur, netherrack, bones, coal, clay, anvilmessages;
+	public static Boolean toolsLoseDurabilityFromAbilities, pvpxp, miningrequirespickaxe, woodcuttingrequiresaxe, pvp, eggs, apples, myspawnclearsinventory, cake, music, diamond, glowstone, slowsand, sulphur, netherrack, bones, coal, clay, anvilmessages;
 	public static String mcability, mcmmo, mcc, mcrefresh, mcitem, mcgod, stats, mmoedit, ptp, party, myspawn, setmyspawn, whois, invite, accept, clearmyspawn;
 	public static String mcability, mcmmo, mcc, mcrefresh, mcitem, mcgod, stats, mmoedit, ptp, party, myspawn, setmyspawn, whois, invite, accept, clearmyspawn;
-	public static int feathersConsumedByChimaeraWing, pvpxprewardmodifier, repairdiamondlevel, globalxpmodifier, miningxpmodifier, repairxpmodifier, woodcuttingxpmodifier, unarmedxpmodifier, herbalismxpmodifier, excavationxpmodifier, archeryxpmodifier, swordsxpmodifier, axesxpmodifier, acrobaticsxpmodifier;
+	public static int abilityDurabilityLoss, feathersConsumedByChimaeraWing, pvpxprewardmodifier, 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();
     	
     	
+    	toolsLoseDurabilityFromAbilities = properties.getBoolean("toolsLoseDurabilityFromAbilities", true);
+    	abilityDurabilityLoss = properties.getInteger("abilityDurabilityLoss", 2);
     	feathersConsumedByChimaeraWing = properties.getInteger("feathersConsumedByChimaeraWing", 10);
     	feathersConsumedByChimaeraWing = properties.getInteger("feathersConsumedByChimaeraWing", 10);
     	pvpxp = properties.getBoolean("pvpGivesXP", true);
     	pvpxp = properties.getBoolean("pvpGivesXP", true);
     	pvpxprewardmodifier = properties.getInteger("pvpXpRewardModifier", 1);
     	pvpxprewardmodifier = properties.getInteger("pvpXpRewardModifier", 1);

+ 15 - 1
mcMMO/com/gmail/nossr50/mcMining.java

@@ -25,6 +25,10 @@ public class mcMining {
 		    	if(!mcm.getInstance().abilityBlockCheck(block))
 		    	if(!mcm.getInstance().abilityBlockCheck(block))
 		    		return;
 		    		return;
 	    	}
 	    	}
+	    	if(mcUsers.getProfile(player).getPickaxePreparationMode()){
+    			mcUsers.getProfile(player).setPickaxePreparationMode(false);
+    			mcUsers.getProfile(player).setPickaxePreparationTicks(0);
+    		}
 	    	int miningticks = 2;
 	    	int miningticks = 2;
     		if(mcUsers.getProfile(player).getMiningInt() >= 50)
     		if(mcUsers.getProfile(player).getMiningInt() >= 50)
     			miningticks++;
     			miningticks++;
@@ -164,7 +168,8 @@ public class mcMining {
     	}
     	}
     }
     }
     public void SuperBreakerBlockCheck(Player player, Block block){
     public void SuperBreakerBlockCheck(Player player, Block block){
-    	mcm.getInstance().damageTool(player, (short) 15);
+    	if(mcLoadProperties.toolsLoseDurabilityFromAbilities)
+    		mcm.getInstance().damageTool(player, (short) mcLoadProperties.abilityDurabilityLoss);
     	Location loc = block.getLocation();
     	Location loc = block.getLocation();
     	Material mat = Material.getMaterial(block.getTypeId());
     	Material mat = Material.getMaterial(block.getTypeId());
 		byte damage = 0;
 		byte damage = 0;
@@ -173,6 +178,7 @@ public class mcMining {
     		if(!mcConfig.getInstance().isBlockWatched(block)){
     		if(!mcConfig.getInstance().isBlockWatched(block)){
     			mcUsers.getProfile(player).addMiningGather(3);
     			mcUsers.getProfile(player).addMiningGather(3);
     			blockProcCheck(block, player);
     			blockProcCheck(block, player);
+    			blockProcCheck(block, player);
     		}
     		}
     		if(block.getTypeId() == 1){
     		if(block.getTypeId() == 1){
     			mat = Material.COBBLESTONE;
     			mat = Material.COBBLESTONE;
@@ -188,6 +194,7 @@ public class mcMining {
     		if(!mcConfig.getInstance().isBlockWatched(block)){
     		if(!mcConfig.getInstance().isBlockWatched(block)){
     			mcUsers.getProfile(player).addMiningGather(3);
     			mcUsers.getProfile(player).addMiningGather(3);
     			blockProcCheck(block, player);
     			blockProcCheck(block, player);
+    			blockProcCheck(block, player);
     		}
     		}
     		mat = Material.getMaterial(87);
     		mat = Material.getMaterial(87);
 			item = new ItemStack(mat, 1, (byte)0, damage);
 			item = new ItemStack(mat, 1, (byte)0, damage);
@@ -199,6 +206,7 @@ public class mcMining {
     		if(!mcConfig.getInstance().isBlockWatched(block)){
     		if(!mcConfig.getInstance().isBlockWatched(block)){
     			mcUsers.getProfile(player).addMiningGather(3);
     			mcUsers.getProfile(player).addMiningGather(3);
     			blockProcCheck(block, player);
     			blockProcCheck(block, player);
+    			blockProcCheck(block, player);
     		}
     		}
     		mat = Material.getMaterial(348);
     		mat = Material.getMaterial(348);
 			item = new ItemStack(mat, 1, (byte)0, damage);
 			item = new ItemStack(mat, 1, (byte)0, damage);
@@ -210,6 +218,7 @@ public class mcMining {
     		if(!mcConfig.getInstance().isBlockWatched(block)){
     		if(!mcConfig.getInstance().isBlockWatched(block)){
         		mcUsers.getProfile(player).addMiningGather(10);
         		mcUsers.getProfile(player).addMiningGather(10);
         		blockProcCheck(block, player);
         		blockProcCheck(block, player);
+        		blockProcCheck(block, player);
         		}
         		}
     		mat = Material.getMaterial(263);
     		mat = Material.getMaterial(263);
 			item = new ItemStack(mat, 1, (byte)0, damage);
 			item = new ItemStack(mat, 1, (byte)0, damage);
@@ -221,6 +230,7 @@ public class mcMining {
     		if(!mcConfig.getInstance().isBlockWatched(block)){
     		if(!mcConfig.getInstance().isBlockWatched(block)){
         		mcUsers.getProfile(player).addMiningGather(35);
         		mcUsers.getProfile(player).addMiningGather(35);
         		blockProcCheck(block, player);
         		blockProcCheck(block, player);
+        		blockProcCheck(block, player);
         		}
         		}
     		block.setType(Material.AIR);
     		block.setType(Material.AIR);
     	}
     	}
@@ -229,6 +239,7 @@ public class mcMining {
     		if(!mcConfig.getInstance().isBlockWatched(block)){
     		if(!mcConfig.getInstance().isBlockWatched(block)){
         		mcUsers.getProfile(player).addMiningGather(75);
         		mcUsers.getProfile(player).addMiningGather(75);
         		blockProcCheck(block, player);
         		blockProcCheck(block, player);
+        		blockProcCheck(block, player);
         	}
         	}
     		mat = Material.getMaterial(264);
     		mat = Material.getMaterial(264);
 			item = new ItemStack(mat, 1, (byte)0, damage);
 			item = new ItemStack(mat, 1, (byte)0, damage);
@@ -240,6 +251,7 @@ public class mcMining {
     		if(!mcConfig.getInstance().isBlockWatched(block)){
     		if(!mcConfig.getInstance().isBlockWatched(block)){
         		mcUsers.getProfile(player).addMiningGather(25);
         		mcUsers.getProfile(player).addMiningGather(25);
         		blockProcCheck(block, player);
         		blockProcCheck(block, player);
+        		blockProcCheck(block, player);
         	}
         	}
     		block.setType(Material.AIR);
     		block.setType(Material.AIR);
     	}
     	}
@@ -248,6 +260,7 @@ public class mcMining {
     		if(!mcConfig.getInstance().isBlockWatched(block)){
     		if(!mcConfig.getInstance().isBlockWatched(block)){
         		mcUsers.getProfile(player).addMiningGather(15);
         		mcUsers.getProfile(player).addMiningGather(15);
         		blockProcCheck(block, player);
         		blockProcCheck(block, player);
+        		blockProcCheck(block, player);
         	}
         	}
     		mat = Material.getMaterial(331);
     		mat = Material.getMaterial(331);
 			item = new ItemStack(mat, 1, (byte)0, damage);
 			item = new ItemStack(mat, 1, (byte)0, damage);
@@ -264,6 +277,7 @@ public class mcMining {
     		if(!mcConfig.getInstance().isBlockWatched(block)){
     		if(!mcConfig.getInstance().isBlockWatched(block)){
         		mcUsers.getProfile(player).addMiningGather(40);
         		mcUsers.getProfile(player).addMiningGather(40);
         		blockProcCheck(block, player);
         		blockProcCheck(block, player);
+        		blockProcCheck(block, player);
         	}
         	}
     		mat = Material.getMaterial(351);
     		mat = Material.getMaterial(351);
 			item = new ItemStack(mat, 1, (byte)0,(byte)0x4);
 			item = new ItemStack(mat, 1, (byte)0,(byte)0x4);

+ 12 - 4
mcMMO/com/gmail/nossr50/mcSkills.java

@@ -77,7 +77,8 @@ public class mcSkills {
     		return;
     		return;
     	if(mcPermissions.getInstance().miningAbility(player) && mcm.getInstance().isMiningPick(player.getItemInHand()) && !mcUsers.getProfile(player).getPickaxePreparationMode()){
     	if(mcPermissions.getInstance().miningAbility(player) && mcm.getInstance().isMiningPick(player.getItemInHand()) && !mcUsers.getProfile(player).getPickaxePreparationMode()){
     		if(!mcUsers.getProfile(player).getSuperBreakerMode() && mcUsers.getProfile(player).getSuperBreakerCooldown() >= 1){
     		if(!mcUsers.getProfile(player).getSuperBreakerMode() && mcUsers.getProfile(player).getSuperBreakerCooldown() >= 1){
-	    		player.sendMessage(ChatColor.RED+"You are too tired to use that ability again.");
+	    		player.sendMessage(ChatColor.RED+"You are too tired to use that ability again."+ChatColor.YELLOW+" ("
+	    				+(mcUsers.getProfile(player).getSuperBreakerCooldown() * 2)+"s)");
 	    		return;
 	    		return;
 	    	}
 	    	}
     		player.sendMessage(ChatColor.GREEN+"**YOU READY YOUR PICKAXE**");
     		player.sendMessage(ChatColor.GREEN+"**YOU READY YOUR PICKAXE**");
@@ -86,7 +87,8 @@ public class mcSkills {
     	}
     	}
     	if(mcPermissions.getInstance().excavationAbility(player) && mcm.getInstance().isShovel(player.getItemInHand()) && !mcUsers.getProfile(player).getShovelPreparationMode()){
     	if(mcPermissions.getInstance().excavationAbility(player) && mcm.getInstance().isShovel(player.getItemInHand()) && !mcUsers.getProfile(player).getShovelPreparationMode()){
     		if(!mcUsers.getProfile(player).getGigaDrillBreakerMode() && mcUsers.getProfile(player).getGigaDrillBreakerCooldown() >= 1){
     		if(!mcUsers.getProfile(player).getGigaDrillBreakerMode() && mcUsers.getProfile(player).getGigaDrillBreakerCooldown() >= 1){
-	    		player.sendMessage(ChatColor.RED+"You are too tired to use that ability again.");
+	    		player.sendMessage(ChatColor.RED+"You are too tired to use that ability again."
+	    				+ChatColor.YELLOW+" ("+(mcUsers.getProfile(player).getGigaDrillBreakerCooldown() * 2)+"s)");
 	    		return;
 	    		return;
 	    	}
 	    	}
     		player.sendMessage(ChatColor.GREEN+"**YOU READY YOUR SHOVEL**");
     		player.sendMessage(ChatColor.GREEN+"**YOU READY YOUR SHOVEL**");
@@ -95,7 +97,8 @@ public class mcSkills {
     	}
     	}
     	if(mcPermissions.getInstance().swordsAbility(player) && mcm.getInstance().isSwords(player.getItemInHand()) && !mcUsers.getProfile(player).getSwordsPreparationMode()){
     	if(mcPermissions.getInstance().swordsAbility(player) && mcm.getInstance().isSwords(player.getItemInHand()) && !mcUsers.getProfile(player).getSwordsPreparationMode()){
     		if(!mcUsers.getProfile(player).getSerratedStrikesMode() && mcUsers.getProfile(player).getSerratedStrikesCooldown() >= 1){
     		if(!mcUsers.getProfile(player).getSerratedStrikesMode() && mcUsers.getProfile(player).getSerratedStrikesCooldown() >= 1){
-	    		player.sendMessage(ChatColor.RED+"You are too tired to use that ability again.");
+	    		player.sendMessage(ChatColor.RED+"You are too tired to use that ability again."
+	    				+ChatColor.YELLOW+" ("+(mcUsers.getProfile(player).getSerratedStrikesCooldown() * 2)+"s)");
 	    		return;
 	    		return;
 	    	}
 	    	}
     		player.sendMessage(ChatColor.GREEN+"**YOU READY YOUR SWORD**");
     		player.sendMessage(ChatColor.GREEN+"**YOU READY YOUR SWORD**");
@@ -104,7 +107,8 @@ public class mcSkills {
     	}
     	}
     	if(mcPermissions.getInstance().unarmedAbility(player) && player.getItemInHand().getTypeId() == 0 && !mcUsers.getProfile(player).getFistsPreparationMode()){
     	if(mcPermissions.getInstance().unarmedAbility(player) && player.getItemInHand().getTypeId() == 0 && !mcUsers.getProfile(player).getFistsPreparationMode()){
 	    	if(!mcUsers.getProfile(player).getBerserkMode() && mcUsers.getProfile(player).getBerserkCooldown() >= 1){
 	    	if(!mcUsers.getProfile(player).getBerserkMode() && mcUsers.getProfile(player).getBerserkCooldown() >= 1){
-	    		player.sendMessage(ChatColor.RED+"You are too tired to use that ability again.");
+	    		player.sendMessage(ChatColor.RED+"You are too tired to use that ability again."
+	    				+ChatColor.YELLOW+" ("+(mcUsers.getProfile(player).getBerserkCooldown() * 2)+"s)");
 	    		return;
 	    		return;
 	    	}
 	    	}
     		player.sendMessage(ChatColor.GREEN+"**YOU READY YOUR FISTS**");
     		player.sendMessage(ChatColor.GREEN+"**YOU READY YOUR FISTS**");
@@ -215,6 +219,10 @@ public class mcSkills {
     			mcUsers.getProfile(player).setSkullSplitterTicks(ticks);
     			mcUsers.getProfile(player).setSkullSplitterTicks(ticks);
     			mcUsers.getProfile(player).setSkullSplitterMode(true);
     			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."
+    					+ChatColor.YELLOW+" ("+(mcUsers.getProfile(player).getSkullSplitterCooldown() * 2)+"s)");
+    		}
     	}
     	}
     }
     }
     public void monitorSkills(Player player){
     public void monitorSkills(Player player){

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

@@ -16,7 +16,7 @@ public class mcTimer extends TimerTask{
 	public void run() {
 	public void run() {
 		Player[] playerlist = plugin.getServer().getOnlinePlayers();
 		Player[] playerlist = plugin.getServer().getOnlinePlayers();
 		for(Player player : playerlist){
 		for(Player player : playerlist){
-			if(mcUsers.getProfile(player) == null)
+			if(player != null && mcUsers.getProfile(player) == null)
 	    		mcUsers.addUser(player);
 	    		mcUsers.addUser(player);
 			/*
 			/*
 			 * MONITOR SKILLS
 			 * MONITOR SKILLS

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

@@ -71,7 +71,8 @@ public class mcWoodCutting {
     			mcUsers.getProfile(player).setTreeFellerMode(true);
     			mcUsers.getProfile(player).setTreeFellerMode(true);
     		}
     		}
     		if(!mcUsers.getProfile(player).getTreeFellerMode() && mcUsers.getProfile(player).getTreeFellerCooldown() >= 1){
     		if(!mcUsers.getProfile(player).getTreeFellerMode() && mcUsers.getProfile(player).getTreeFellerCooldown() >= 1){
-    			player.sendMessage(ChatColor.RED+"You are too tired to use that ability again.");
+    			player.sendMessage(ChatColor.RED+"You are too tired to use that ability again."
+    					+ChatColor.YELLOW+" ("+(mcUsers.getProfile(player).getTreeFellerCooldown() * 2)+"s)");
     		}
     		}
     	}
     	}
     }
     }

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

@@ -144,7 +144,7 @@ public class mcm {
 	}
 	}
 	public boolean shouldBeWatched(Block block){
 	public boolean shouldBeWatched(Block block){
 		int id = block.getTypeId();
 		int id = block.getTypeId();
-		if(id == 2 || id == 3 || id == 12 || id == 13 || id == 21 || id == 15 || id == 14 || id == 56 || id == 38 || id == 37 || id == 39 || id == 40 || id == 24){
+		if(id == 87 || id == 89 || id == 2 || id == 3 || id == 12 || id == 13 || id == 21 || id == 15 || id == 14 || id == 56 || id == 38 || id == 37 || id == 39 || id == 40 || id == 24){
 			return true;
 			return true;
 		} else {
 		} else {
 			return false;
 			return false;
@@ -408,7 +408,7 @@ public class mcm {
 			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+"Super Breaker (ABILITY): "+ChatColor.GREEN+"Fast mining");
+			player.sendMessage(ChatColor.DARK_AQUA+"Super Breaker (ABILITY): "+ChatColor.GREEN+"Speed+, Triple Drop Chance");
 			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+"---[]"+ChatColor.GREEN+"YOUR STATS"+ChatColor.RED+"[]---");
 			player.sendMessage(ChatColor.RED+"Double Drop Chance: "+ChatColor.YELLOW+percentage+"%");
 			player.sendMessage(ChatColor.RED+"Double Drop Chance: "+ChatColor.YELLOW+percentage+"%");

+ 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.9.4
+version: 0.9.6