diff --git a/TwosideKeeper.jar b/TwosideKeeper.jar index 8bbd3a8..37cac7c 100644 Binary files a/TwosideKeeper.jar and b/TwosideKeeper.jar differ diff --git a/src/sig/plugin/TwosideKeeper/HelperStructures/Common/GenericFunctions.java b/src/sig/plugin/TwosideKeeper/HelperStructures/Common/GenericFunctions.java index f003e4e..0a0afd6 100644 --- a/src/sig/plugin/TwosideKeeper/HelperStructures/Common/GenericFunctions.java +++ b/src/sig/plugin/TwosideKeeper/HelperStructures/Common/GenericFunctions.java @@ -958,6 +958,58 @@ public class GenericFunctions { case HARD_CLAY:{ return "Hardened Clay"; } + case BANNER:{ + switch (15-type.getDurability()) { + case 0:{ + return "White Banner"; + } + case 1:{ + return "Orange Banner"; + } + case 2:{ + return "Magenta Banner"; + } + case 3:{ + return "Light Blue Banner"; + } + case 4:{ + return "Yellow Banner"; + } + case 5:{ + return "Lime Banner"; + } + case 6:{ + return "Pink Banner"; + } + case 7:{ + return "Gray Banner"; + } + case 8:{ + return "Light Gray Banner"; + } + case 9:{ + return "Cyan Banner"; + } + case 10:{ + return "Purple Banner"; + } + case 11:{ + return "Blue Banner"; + } + case 12:{ + return "Brown Banner"; + } + case 13:{ + return "Green Banner"; + } + case 14:{ + return "Red Banner"; + } + case 15:{ + return "Black Banner"; + } + } + } case STAINED_CLAY:{ switch (type.getDurability()) { case 0:{ diff --git a/src/sig/plugin/TwosideKeeper/HelperStructures/WorldShop.java b/src/sig/plugin/TwosideKeeper/HelperStructures/WorldShop.java index 978ecec..a9612b3 100644 --- a/src/sig/plugin/TwosideKeeper/HelperStructures/WorldShop.java +++ b/src/sig/plugin/TwosideKeeper/HelperStructures/WorldShop.java @@ -6,11 +6,15 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import org.bukkit.Bukkit; import org.bukkit.ChatColor; +import org.bukkit.DyeColor; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.Sign; +import org.bukkit.block.banner.Pattern; +import org.bukkit.block.banner.PatternType; import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; @@ -18,7 +22,11 @@ import org.bukkit.entity.Item; import org.bukkit.entity.Player; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.BannerMeta; +import org.bukkit.inventory.meta.BookMeta; import org.bukkit.inventory.meta.EnchantmentStorageMeta; +import org.bukkit.inventory.meta.PotionMeta; +import org.bukkit.inventory.meta.Repairable; import org.bukkit.material.MaterialData; import org.bukkit.potion.PotionType; import org.bukkit.util.Vector; @@ -109,6 +117,239 @@ public class WorldShop { } } } + if (item.getType()==Material.WRITTEN_BOOK) { + if (item.getItemMeta() instanceof BookMeta) { + BookMeta book = (BookMeta)item.getItemMeta(); + message+="\n"+ChatColor.WHITE+book.getTitle(); + message+="\n"+ChatColor.GRAY+"by "+book.getAuthor(); + message+="\n"+ChatColor.GRAY+book.getPageCount()+" page"+(book.getPageCount()!=1?"s":""); + } + } + if (item.getType()==Material.POTION || item.getType()==Material.SPLASH_POTION || item.getType()==Material.LINGERING_POTION) { + if (item.getItemMeta() instanceof PotionMeta) { + PotionMeta pot = (PotionMeta)item.getItemMeta(); + String duration = " "+(pot.getBasePotionData().isExtended()?"(8:00)":(pot.getBasePotionData().isUpgraded())?"(1:30)":"(3:00)"); + String badduration = " "+(pot.getBasePotionData().isExtended()?"(4:00)":"(1:30)"); + String poisonduration = " "+(pot.getBasePotionData().isExtended()?"(1:30)":(pot.getBasePotionData().isUpgraded())?"(0:21)":"(0:45)"); + String luckduration = " (5:00)"; + String regenduration = " "+(pot.getBasePotionData().isExtended()?"(1:30)":(pot.getBasePotionData().isUpgraded())?"(0:22)":"(0:45)"); + String power = (pot.getBasePotionData().isUpgraded()?"II":""); + if (item.getType() == Material.LINGERING_POTION) { + duration = " "+(pot.getBasePotionData().isExtended()?"(2:00)":(pot.getBasePotionData().isUpgraded())?"(0:22)":"(0:45)"); + badduration = " "+(pot.getBasePotionData().isExtended()?"(1:00)":"(0:22)"); + poisonduration = " "+(pot.getBasePotionData().isExtended()?"(0:22)":(pot.getBasePotionData().isUpgraded())?"(0:05)":"(0:22)"); + luckduration = " (1:15)"; + regenduration = " "+(pot.getBasePotionData().isExtended()?"(0:22)":(pot.getBasePotionData().isUpgraded())?"(0:05)":"(0:11)"); + } + + switch (pot.getBasePotionData().getType()) { + case FIRE_RESISTANCE: + message+="\n"+ChatColor.BLUE+"Fire Resistance"+duration; + break; + case INSTANT_DAMAGE: + message+="\n"+ChatColor.RED+"Instant Damage "+power; + break; + case INSTANT_HEAL: + message+="\n"+ChatColor.BLUE+"Instant Health "+power; + break; + case INVISIBILITY: + message+="\n"+ChatColor.BLUE+"Invisibility"+duration; + break; + case JUMP: + message+="\n"+ChatColor.BLUE+"Jump Boost "+power+duration; + break; + case LUCK: + message+="\n"+ChatColor.BLUE+"Luck"+luckduration; + break; + case NIGHT_VISION: + message+="\n"+ChatColor.BLUE+"Night Vision"+duration; + break; + case POISON: + message+="\n"+ChatColor.RED+"Poison "+power+badduration; + break; + case REGEN: + message+="\n"+ChatColor.BLUE+"Regeneration "+power+duration; + break; + case SLOWNESS: + message+="\n"+ChatColor.RED+"Slowness"+badduration; + break; + case SPEED: + message+="\n"+ChatColor.BLUE+"Speed "+power+duration; + break; + case STRENGTH: + message+="\n"+ChatColor.BLUE+"Strength "+power+duration; + break; + case WATER_BREATHING: + message+="\n"+ChatColor.BLUE+"Water Breathing"+duration; + break; + case WEAKNESS: + message+="\n"+ChatColor.RED+"Weakness"+badduration; + break; + default: + message+="\n"+ChatColor.GRAY+"No Effects"; + break; + + } + + } + } + + if (item.getType()==Material.BANNER) { + if (item.getItemMeta() instanceof BannerMeta) { + BannerMeta banner = (BannerMeta)item.getItemMeta(); + /* Code to generate banners with ENUMs listed respective to the patterns applied in the lore. + for (int j=0;j lore = new ArrayList(); + lore.add(PatternType.values()[j].name()); + lore.add(PatternType.values()[j+1].name()); + lore.add(PatternType.values()[j+2].name()); + if (j+30) { + message+="\n\n"+ChatColor.GRAY+"Durability: "+(item.getType().getMaxDurability()-item.getDurability()-1)+"/"+(item.getType().getMaxDurability()-1); + } + if (item.getItemMeta() instanceof Repairable) { + Repairable rep = (Repairable)item.getItemMeta(); + if (rep.hasRepairCost()) { + message+="\n\n"+ChatColor.GRAY+"Repair Cost: "+(item.getType().getMaxDurability()-item.getDurability()-1)+"/"+(item.getType().getMaxDurability()-1); } - message+="\n\n"+ChatColor.GRAY+"Durability: "+(maxdura-item.getDurability()-1)+"/"+(maxdura-1); } return message; } diff --git a/src/sig/plugin/TwosideKeeper/MonsterController.java b/src/sig/plugin/TwosideKeeper/MonsterController.java index a7e6d58..e933990 100644 --- a/src/sig/plugin/TwosideKeeper/MonsterController.java +++ b/src/sig/plugin/TwosideKeeper/MonsterController.java @@ -96,6 +96,7 @@ public class MonsterController { return true; } } + private static void RandomizeEquipment(Monster m, int lv) { /* * Lv1: Leather/Iron Armor. @@ -106,38 +107,30 @@ public class MonsterController { case 1:{ if (Math.random()<0.5) { ItemStack helm = new ItemStack(Material.LEATHER_HELMET); - helm.setDurability((short)Math.round(Math.random()*54)); m.getEquipment().setHelmet(helm); } else { ItemStack helm = new ItemStack(Material.IRON_HELMET); - helm.setDurability((short)Math.round(Math.random()*128)); m.getEquipment().setHelmet(helm); } if (Math.random()<0.5) { ItemStack helm = new ItemStack(Material.LEATHER_CHESTPLATE); - helm.setDurability((short)Math.round(Math.random()*54)); m.getEquipment().setChestplate(helm); } else { ItemStack helm = new ItemStack(Material.IRON_CHESTPLATE); - helm.setDurability((short)Math.round(Math.random()*128)); m.getEquipment().setChestplate(helm); } if (Math.random()<0.5) { ItemStack helm = new ItemStack(Material.LEATHER_LEGGINGS); - helm.setDurability((short)Math.round(Math.random()*54)); m.getEquipment().setLeggings(helm); } else { ItemStack helm = new ItemStack(Material.IRON_LEGGINGS); - helm.setDurability((short)Math.round(Math.random()*128)); m.getEquipment().setLeggings(helm); } if (Math.random()<0.5) { ItemStack helm = new ItemStack(Material.LEATHER_BOOTS); - helm.setDurability((short)Math.round(Math.random()*54)); m.getEquipment().setBoots(helm); } else { ItemStack helm = new ItemStack(Material.IRON_BOOTS); - helm.setDurability((short)Math.round(Math.random()*128)); m.getEquipment().setBoots(helm); } TwosideKeeper.log("Helmet durability set to "+m.getEquipment().getHelmet().getDurability(), 5); @@ -212,38 +205,30 @@ public class MonsterController { case 2:{ if (Math.random()<0.5) { ItemStack helm = new ItemStack(Material.DIAMOND_HELMET); - helm.setDurability((short)(Math.round(Math.random()*100)+256)); m.getEquipment().setHelmet(helm); } else { ItemStack helm = new ItemStack(Material.DIAMOND_HELMET); - helm.setDurability((short)(Math.round(Math.random()*128))); m.getEquipment().setHelmet(helm); } if (Math.random()<0.5) { ItemStack helm = new ItemStack(Material.DIAMOND_CHESTPLATE); - helm.setDurability((short)(Math.round(Math.random()*100)+256)); m.getEquipment().setChestplate(helm); } else { ItemStack helm = new ItemStack(Material.IRON_CHESTPLATE); - helm.setDurability((short)(Math.round(Math.random()*100)+256)); m.getEquipment().setChestplate(helm); } if (Math.random()<0.5) { ItemStack helm = new ItemStack(Material.DIAMOND_LEGGINGS); - helm.setDurability((short)(Math.round(Math.random()*100)+256)); m.getEquipment().setLeggings(helm); } else { ItemStack helm = new ItemStack(Material.IRON_LEGGINGS); - helm.setDurability((short)(Math.round(Math.random()*128))); m.getEquipment().setLeggings(helm); } if (Math.random()<0.5) { ItemStack helm = new ItemStack(Material.DIAMOND_BOOTS); - helm.setDurability((short)(Math.round(Math.random()*100)+256)); m.getEquipment().setBoots(helm); } else { ItemStack helm = new ItemStack(Material.IRON_BOOTS); - helm.setDurability((short)(Math.round(Math.random()*128))); m.getEquipment().setBoots(helm); } @@ -327,38 +312,30 @@ public class MonsterController { case 3:{ if (Math.random()<0.5) { ItemStack helm = new ItemStack(Material.DIAMOND_HELMET); - helm.setDurability((short) (Math.round(Math.random()*100)+256)); m.getEquipment().setHelmet(helm); } else { ItemStack helm = new ItemStack(Material.GOLD_HELMET); - helm.setDurability((short)Math.round(Math.random()*64)); m.getEquipment().setHelmet(helm); } if (Math.random()<0.5) { ItemStack helm = new ItemStack(Material.DIAMOND_CHESTPLATE); - helm.setDurability((short)(Math.round(Math.random()*100)+256)); m.getEquipment().setChestplate(helm); } else { ItemStack helm = new ItemStack(Material.GOLD_CHESTPLATE); - helm.setDurability((short)Math.round(Math.random()*64)); m.getEquipment().setChestplate(helm); } if (Math.random()<0.5) { ItemStack helm = new ItemStack(Material.DIAMOND_LEGGINGS); - helm.setDurability((short)(Math.round(Math.random()*100)+256)); m.getEquipment().setLeggings(helm); } else { ItemStack helm = new ItemStack(Material.GOLD_LEGGINGS); - helm.setDurability((short)Math.round(Math.random()*64)); m.getEquipment().setLeggings(helm); } if (Math.random()<0.5) { ItemStack helm = new ItemStack(Material.DIAMOND_BOOTS); - helm.setDurability((short)(Math.round(Math.random()*100)+256)); m.getEquipment().setBoots(helm); } else { ItemStack helm = new ItemStack(Material.GOLD_BOOTS); - helm.setDurability((short)Math.round(Math.random()*64)); m.getEquipment().setBoots(helm); } TwosideKeeper.log("Helmet durability set to "+m.getEquipment().getHelmet().getDurability(), 5); @@ -439,27 +416,21 @@ public class MonsterController { if (Math.random()<0.1) { if (Math.random()<0.5) { ItemStack helm = new ItemStack(Material.LEATHER_HELMET); - helm.setDurability((short)Math.round(Math.random()*54)); m.getEquipment().setHelmet(helm); helm = new ItemStack(Material.LEATHER_CHESTPLATE); - helm.setDurability((short)Math.round(Math.random()*64)); m.getEquipment().setChestplate(helm); helm = new ItemStack(Material.LEATHER_LEGGINGS); - helm.setDurability((short)Math.round(Math.random()*64)); m.getEquipment().setLeggings(helm); helm = new ItemStack(Material.LEATHER_BOOTS); helm.setDurability((short)Math.round(Math.random()*64)); m.getEquipment().setBoots(helm); } else { ItemStack helm = new ItemStack(Material.IRON_HELMET); - helm.setDurability((short)Math.round(Math.random()*128)); m.getEquipment().setHelmet(helm); helm = new ItemStack(Material.IRON_CHESTPLATE); helm.setDurability((short)Math.round(Math.random()*128)); - m.getEquipment().setChestplate(helm); helm = new ItemStack(Material.IRON_LEGGINGS); helm.setDurability((short)Math.round(Math.random()*128)); - m.getEquipment().setLeggings(helm); helm = new ItemStack(Material.IRON_BOOTS); helm.setDurability((short)Math.round(Math.random()*128)); m.getEquipment().setBoots(helm); diff --git a/src/sig/plugin/TwosideKeeper/TwosideKeeper.java b/src/sig/plugin/TwosideKeeper/TwosideKeeper.java index a409ae0..e55814c 100644 --- a/src/sig/plugin/TwosideKeeper/TwosideKeeper.java +++ b/src/sig/plugin/TwosideKeeper/TwosideKeeper.java @@ -670,7 +670,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener { setPlayerMaxHealth(ev.getPlayer()); ev.getPlayer().getScoreboard().getTeam(ev.getPlayer().getName().toLowerCase()).setSuffix(createHealthbar(((ev.getPlayer().getHealth())/ev.getPlayer().getMaxHealth())*100,ev.getPlayer())); - ev.getPlayer().getAttribute(Attribute.GENERIC_ATTACK_SPEED).setBaseValue(0.000000000001D); + ev.getPlayer().getAttribute(Attribute.GENERIC_ATTACK_SPEED).setBaseValue(4.0d); } @EventHandler(priority=EventPriority.LOW) @@ -757,7 +757,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener { } else if (conversionUser.equalsIgnoreCase(thisp.getName())) { //See if this message is a number. - if (isNumeric(ev.getMessage())) { + if (isNumeric(ev.getMessage()) && isInteger(ev.getMessage())) { DecimalFormat df = new DecimalFormat("0.00"); Integer value=Integer.parseInt(ev.getMessage()); if (value>=1) { @@ -833,7 +833,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener { current_session.UpdateTime(); //Make sure our session does not expire. switch (current_session.GetSessionType()) { case CREATE: - if (isNumeric(ev.getMessage())) { + if (isNumeric(ev.getMessage()) && isInteger(ev.getMessage())) { int amt = Integer.parseInt(ev.getMessage()); if (amt<=GenericFunctions.CountItems(ev.getPlayer(), current_session.getItem()) && amt>0) { current_session.SetAmt(amt); @@ -853,7 +853,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener { } break; case BUY_CREATE: - if (isNumeric(ev.getMessage())) { + if (isNumeric(ev.getMessage()) && isInteger(ev.getMessage())) { int amt = Integer.parseInt(ev.getMessage()); if (amt>0) { current_session.SetAmt(amt); @@ -928,7 +928,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener { } break; case EDIT: - if (isNumeric(ev.getMessage())) { + if (isNumeric(ev.getMessage()) && isInteger(ev.getMessage())) { int amt = Integer.parseInt(ev.getMessage()); DecimalFormat df = new DecimalFormat("0.00"); WorldShop shop = TwosideShops.LoadWorldShopData(TwosideShops.GetShopID(current_session.GetSign())); @@ -1004,7 +1004,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener { } break; case BUY_EDIT: - if (isNumeric(ev.getMessage())) { + if (isNumeric(ev.getMessage()) && isInteger(ev.getMessage())) { int amt = Integer.parseInt(ev.getMessage()); DecimalFormat df = new DecimalFormat("0.00"); WorldShop shop = TwosideShops.LoadWorldShopData(TwosideShops.GetShopID(current_session.GetSign())); @@ -1110,7 +1110,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener { } break; case PURCHASE: - if (isNumeric(ev.getMessage())) { + if (isNumeric(ev.getMessage()) && isInteger(ev.getMessage())) { DecimalFormat df = new DecimalFormat("0.00"); int amt = Integer.parseInt(ev.getMessage()); if (amt>0) { @@ -1171,7 +1171,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener { } break; case SELL: - if (isNumeric(ev.getMessage())) { + if (isNumeric(ev.getMessage()) && isInteger(ev.getMessage())) { DecimalFormat df = new DecimalFormat("0.00"); int amt = Integer.parseInt(ev.getMessage()); if (amt>0) { @@ -1217,7 +1217,9 @@ public class TwosideKeeper extends JavaPlugin implements Listener { ev.setCancelled(true); } else { - ev.setMessage(ev.getMessage().replace("()", "("+ev.getPlayer().getLocation().getBlockX()+","+ev.getPlayer().getLocation().getBlockY()+","+ev.getPlayer().getLocation().getBlockZ()+")")); + if (ev.getMessage().equalsIgnoreCase("()") || ev.getMessage().indexOf(" ()")>-1) { + ev.setMessage(ev.getMessage().replace("()", "("+ev.getPlayer().getLocation().getBlockX()+","+ev.getPlayer().getLocation().getBlockY()+","+ev.getPlayer().getLocation().getBlockZ()+")")); + } for (int i=0;i-1) { + log(ev.getMessage()+" "+ev.getMessage().indexOf(" []"),5); + if (ev.getMessage().equalsIgnoreCase("[]") || ev.getMessage().indexOf(" []")>-1) { pos = ev.getMessage().indexOf("[]"); ev.setMessage(ev.getMessage().replace("[]", "")); log("pos is "+pos+" message is: {"+ev.getMessage()+"}",5); @@ -2890,8 +2892,8 @@ public class TwosideKeeper extends JavaPlugin implements Listener { ((Guardian)m).isElder()) || m.getType()==EntityType.ENDER_DRAGON || m.getType()==EntityType.WITHER) { - ev.setDroppedExp(ev.getDroppedExp()*2); - dropmult+=0.4; + ev.setDroppedExp(ev.getDroppedExp()*6); + dropmult+=3.5; } if (m.getType()==EntityType.GUARDIAN || m.getType()==EntityType.SKELETON) { @@ -3288,6 +3290,9 @@ public class TwosideKeeper extends JavaPlugin implements Listener { Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable() { public void run() { for (int i=0;i