瀏覽代碼

Many many many fixes.

nossr50 14 年之前
父節點
當前提交
b38c682c8c

+ 9 - 2
mcMMO/com/bukkit/nossr50/mcMMO/mcEntityListener.java

@@ -5,6 +5,7 @@ import org.bukkit.Location;
 import org.bukkit.Material;
 import org.bukkit.entity.Animals;
 import org.bukkit.entity.Creature;
+import org.bukkit.entity.Creeper;
 import org.bukkit.entity.Entity;
 import org.bukkit.entity.Monster;
 import org.bukkit.entity.Player;
@@ -105,6 +106,12 @@ public class mcEntityListener extends EntityListener {
     					attacker.sendMessage(ChatColor.YELLOW+"Unarmed skill increased by 1. Total ("+mcUsers.getProfile(attacker).getUnarmed()+")");
     			}
     			}
+    			if(x instanceof Creeper && Math.random() * 10 > 7){
+        				if(defender.getHealth() != 0){
+        					mcUsers.getProfile(attacker).skillUpUnarmed(2);
+        					attacker.sendMessage(ChatColor.YELLOW+"Unarmed skill increased by 2. Total ("+mcUsers.getProfile(attacker).getUnarmed()+")");
+        		}
+    			}
     			if(defender.getHealth() <= 0)
     				mcm.getInstance().simulateNaturalDrops(defender);
     			}
@@ -196,7 +203,7 @@ public class mcEntityListener extends EntityListener {
     			}
     			if(mcUsers.getProfile(defender).isDead())
     				return;
-    			if((defender.getHealth() - event.getDamage()) <= 0){
+    			if((defender.getHealth() - event.getDamage()) <= 0 && defender.getHealth() != 0){
     				for(Player derp : plugin.getServer().getOnlinePlayers()){
     					derp.sendMessage(ChatColor.GRAY+attacker.getName() + " has " +ChatColor.DARK_RED+"slain "+ChatColor.GRAY+defender.getName());
     					mcUsers.getProfile(defender).setDead(true);
@@ -207,7 +214,7 @@ public class mcEntityListener extends EntityListener {
     				event.setCancelled(true);
     		}
     	}
-    }
+    	}
     public boolean simulateUnarmedProc(Player player){
     	if(mcUsers.getProfile(player).getUnarmedInt() >= 750){
     		if(Math.random() * 10 > 4){

+ 1 - 0
mcMMO/com/bukkit/nossr50/mcMMO/mcMMO.java

@@ -47,6 +47,7 @@ public class mcMMO extends JavaPlugin {
         pm.registerEvent(Event.Type.BLOCK_PLACED, blockListener, Priority.Normal, this);
         pm.registerEvent(Event.Type.PLAYER_ITEM, playerListener, Priority.Normal, this);
         pm.registerEvent(Event.Type.PLAYER_RESPAWN, playerListener, Priority.Normal, this);
+        pm.registerEvent(Event.Type.PLAYER_ITEM_HELD, playerListener, Priority.Normal, this);
         //Displays a message when plugin is loaded
         PluginDescriptionFile pdfFile = this.getDescription();
         System.out.println( pdfFile.getName() + " version " + pdfFile.getVersion() + " is enabled!" );

+ 16 - 10
mcMMO/com/bukkit/nossr50/mcMMO/mcPlayerListener.java

@@ -7,6 +7,7 @@ import org.bukkit.entity.Player;
 import org.bukkit.event.player.PlayerChatEvent;
 import org.bukkit.event.player.PlayerEvent;
 import org.bukkit.event.player.PlayerItemEvent;
+import org.bukkit.event.player.PlayerItemHeldEvent;
 import org.bukkit.event.player.PlayerListener;
 import org.bukkit.event.player.PlayerRespawnEvent;
 import org.bukkit.inventory.ItemStack;
@@ -73,7 +74,7 @@ public class mcPlayerListener extends PlayerListener {
     public void onPlayerJoin(PlayerEvent event) {
     	Player player = event.getPlayer();
     	mcUsers.addUser(player);
-    	player.sendMessage(ChatColor.BLUE + "This server is running mcMMO type "+ChatColor.YELLOW+"/mcmmo "+ChatColor.BLUE+ "for help.");
+    	player.sendMessage(ChatColor.BLUE + "This server is running mcMMO "+plugin.getDescription().getVersion()+" type "+ChatColor.YELLOW+"/mcmmo "+ChatColor.BLUE+ "for help.");
     	player.sendMessage(ChatColor.RED+"WARNING: "+ChatColor.DARK_GRAY+ "Using /myspawn will clear your inventory!"); 
     }
     //Check if string is a player
@@ -108,12 +109,9 @@ public class mcPlayerListener extends PlayerListener {
     			player.setHealth(player.getHealth() + 6);
     		}
     	}
-    	if(block != null && block.getTypeId() == 42 && player.getItemInHand().getDurability() <= 0 && (mcm.getInstance().isTools(is)) || mcm.getInstance().isArmor(is)){
-    		player.sendMessage(ChatColor.YELLOW+"That is at full durability.");
-    		return;
-    	}
     	if(block != null && block.getTypeId() == 42){
     	short durability = is.getDurability();
+    	if(player.getItemInHand().getDurability() > 0){
     		if(mcm.getInstance().isArmor(is) && block.getTypeId() == 42){
     			if(mcm.getInstance().isDiamondArmor(is) && mcm.getInstance().hasDiamond(player)){
     			mcm.getInstance().removeDiamond(player);
@@ -121,16 +119,17 @@ public class mcPlayerListener extends PlayerListener {
     			mcUsers.getProfile(player).skillUpRepair(1);
     			player.sendMessage(ChatColor.YELLOW+"Repair skill increased by 1. Total ("+mcUsers.getProfile(player).getRepair()+")");
     			} else if (mcm.getInstance().isIronArmor(is) && mcm.getInstance().hasIron(player)){
-    			player.sendMessage(ChatColor.DARK_RED+"Changing the durability of iron armor is currently bugged.");
-    			player.sendMessage(ChatColor.YELLOW+"I'm looking into this issue. -mcMMO Author");
-    			/*
+    			//player.sendMessage(ChatColor.DARK_RED+"Changing the durability of iron armor is currently bugged.");
+    			//player.sendMessage(ChatColor.YELLOW+"I'm looking into this issue. -mcMMO Author");
     			mcm.getInstance().removeIron(player);
-        		is.setDurability(mcm.getInstance().getArmorRepairAmount(is, player));
+        		player.getItemInHand().setDurability(mcm.getInstance().getArmorRepairAmount(is, player));
         		mcUsers.getProfile(player).skillUpRepair(1);
         		player.sendMessage(ChatColor.YELLOW+"Repair skill increased by 1. Total ("+mcUsers.getProfile(player).getRepair()+")");	
-        		*/
     			}
     		}
+    	} else {
+    		player.sendMessage("That is at full durability.");
+    	}
     		/*
     		 * TOOLS
     		 */
@@ -408,6 +407,13 @@ public class mcPlayerListener extends PlayerListener {
     		player.sendMessage("Spawn isn't configured. Have an OP set it with /setspawn");
     	}
     }
+    public void onItemHeldChange(PlayerItemHeldEvent event) {
+    	Player player = event.getPlayer();
+    }
+	private Block getBlockAt(int x, int y, int z) {
+		// TODO Auto-generated method stub
+		return null;
+	}
 	public void onPlayerChat(PlayerChatEvent event) {
     	Player player = event.getPlayer();
     	String[] split = event.getMessage().split(" ");

+ 18 - 32
mcMMO/com/bukkit/nossr50/mcMMO/mcm.java

@@ -308,6 +308,7 @@ public class mcm {
     	Location loc = block.getLocation();
     	ItemStack is = null;
     	Material mat = null;
+    	if(!mcConfig.getInstance().isBlockWatched(block)){
     	if(type == 39 || type == 40){
     			mcUsers.getProfile(player).skillUpHerbalism(3);
     			player.sendMessage(ChatColor.YELLOW+"Herbalism skill increased by 3. Total ("+mcUsers.getProfile(player).getHerbalismInt()+")");
@@ -318,38 +319,29 @@ public class mcm {
     			player.sendMessage(ChatColor.YELLOW+"Herbalism skill increased by 1. Total ("+mcUsers.getProfile(player).getHerbalismInt()+")");
     		}
     	}
-    	if(type == 59){
+    	if(type == 59 && block.getData() == (byte) 0x7){
+    		mat = Material.getMaterial(296);
+			is = new ItemStack(mat, 1, (byte)0, (byte)0);
     		mcUsers.getProfile(player).skillUpHerbalism(1);
     		player.sendMessage(ChatColor.YELLOW+"Herbalism skill increased by 1. Total ("+mcUsers.getProfile(player).getHerbalismInt()+")");
     		if(mcUsers.getProfile(player).getHerbalismInt() >= 50 && mcUsers.getProfile(player).getHerbalismInt() < 150){
-    		if(Math.random() * 10 > 8){
-    		mat = Material.getMaterial(59);
-			is = new ItemStack(mat, 1, (byte)0, (byte)0);
+    		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){
-    	    		mat = Material.getMaterial(59);
-    				is = new ItemStack(mat, 1, (byte)0, (byte)0);
+    			if(Math.random() * 10 > 6)
     				loc.getWorld().dropItemNaturally(loc, is);
-    	    		}
     		}
     		if(mcUsers.getProfile(player).getHerbalismInt() >= 150 && mcUsers.getProfile(player).getHerbalismInt() < 500 ){
-    			if(Math.random() * 10 > 4){
-    	    		mat = Material.getMaterial(59);
-    				is = new ItemStack(mat, 1, (byte)0, (byte)0);
+    			if(Math.random() * 10 > 4)
     				loc.getWorld().dropItemNaturally(loc, is);
-    	    		}
     		}
     		if(mcUsers.getProfile(player).getHerbalismInt() >= 150 && mcUsers.getProfile(player).getHerbalismInt() < 750 ){
-    			if(Math.random() * 10 > 2){
-    	    		mat = Material.getMaterial(59);
-    				is = new ItemStack(mat, 1, (byte)0, (byte)0);
+    			if(Math.random() * 10 > 2)
     				loc.getWorld().dropItemNaturally(loc, is);
-    	    		}
     		}
     	}
+    	}
     }
     public void excavationProcCheck(Block block, Player player){
     	int type = block.getTypeId();
@@ -457,45 +449,38 @@ public class mcm {
     	}
     }
     public void woodCuttingProcCheck(Player player, Block block, Location loc){
+    	byte type = block.getData();
+    	Material mat = Material.getMaterial(block.getTypeId());
+    	byte damage = 0;
     	if(mcUsers.getProfile(player).getWoodCuttingint() > 1000){
-			Material mat = Material.getMaterial(block.getTypeId());
-			byte damage = 0;
-			ItemStack item = new ItemStack(mat, 1, (byte)0, damage);
+			ItemStack item = new ItemStack(mat, 1, type, damage);
 			block.getWorld().dropItemNaturally(loc, item);
 			return;
 	}
 	if(mcUsers.getProfile(player).getWoodCuttingint() > 750){
 		if((Math.random() * 10) > 2){
-			Material mat = Material.getMaterial(block.getTypeId());
-			byte damage = 0;
-			ItemStack item = new ItemStack(mat, 1, (byte)0, damage);
+			ItemStack item = new ItemStack(mat, 1, type, damage);
 			block.getWorld().dropItemNaturally(loc, item);
 			return;
 		}
 	}
 	if(mcUsers.getProfile(player).getWoodCuttingint() > 300){
 		if((Math.random() * 10) > 4){
-			Material mat = Material.getMaterial(block.getTypeId());
-			byte damage = 0;
-			ItemStack item = new ItemStack(mat, 1, (byte)0, damage);
+			ItemStack item = new ItemStack(mat, 1, type, damage);
 			block.getWorld().dropItemNaturally(loc, item);
 			return;
 		}
 	}
 	if(mcUsers.getProfile(player).getWoodCuttingint() > 100){
 		if((Math.random() * 10) > 6){
-			Material mat = Material.getMaterial(block.getTypeId());
-			byte damage = 0;
-			ItemStack item = new ItemStack(mat, 1, (byte)0, damage);
+			ItemStack item = new ItemStack(mat, 1, type, damage);
 			block.getWorld().dropItemNaturally(loc, item);
 			return;
 		}
 	}
 	if(mcUsers.getProfile(player).getWoodCuttingint() > 10){
 		if((Math.random() * 10) > 8){
-			Material mat = Material.getMaterial(block.getTypeId());
-			byte damage = 0;
-			ItemStack item = new ItemStack(mat, 1, (byte)0, damage);
+			ItemStack item = new ItemStack(mat, 1, type, damage);
 			block.getWorld().dropItemNaturally(loc, item);
 			return;
 		}
@@ -581,6 +566,7 @@ public class mcm {
     			x.setAmount(x.getAmount() - 1);
     			player.getInventory().setContents(inventory);
     			}
+    			return;
     		}
     	}
     }

+ 1 - 1
mcMMO/plugin.yml

@@ -1,3 +1,3 @@
 name: mcMMO
 main: com.bukkit.nossr50.mcMMO.mcMMO
-version: 0.3.2
+version: 0.3.4