diff --git a/mcMMO/com/bukkit/nossr50/mcMMO/mcEntityListener.java b/mcMMO/com/bukkit/nossr50/mcMMO/mcEntityListener.java index 0b80dd3b8..0a0ea6853 100644 --- a/mcMMO/com/bukkit/nossr50/mcMMO/mcEntityListener.java +++ b/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){ diff --git a/mcMMO/com/bukkit/nossr50/mcMMO/mcMMO.java b/mcMMO/com/bukkit/nossr50/mcMMO/mcMMO.java index ad66c763f..aaa0e1ad3 100644 --- a/mcMMO/com/bukkit/nossr50/mcMMO/mcMMO.java +++ b/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!" ); diff --git a/mcMMO/com/bukkit/nossr50/mcMMO/mcPlayerListener.java b/mcMMO/com/bukkit/nossr50/mcMMO/mcPlayerListener.java index cc7ab4741..21970d3d4 100644 --- a/mcMMO/com/bukkit/nossr50/mcMMO/mcPlayerListener.java +++ b/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(" "); diff --git a/mcMMO/com/bukkit/nossr50/mcMMO/mcm.java b/mcMMO/com/bukkit/nossr50/mcMMO/mcm.java index 48448fb04..b45feb7f5 100644 --- a/mcMMO/com/bukkit/nossr50/mcMMO/mcm.java +++ b/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; } } } diff --git a/mcMMO/plugin.yml b/mcMMO/plugin.yml index 440b5fef3..97e610712 100644 --- a/mcMMO/plugin.yml +++ b/mcMMO/plugin.yml @@ -1,3 +1,3 @@ name: mcMMO main: com.bukkit.nossr50.mcMMO.mcMMO -version: 0.3.2 \ No newline at end of file +version: 0.3.4 \ No newline at end of file