package me.kaZep.Commands; import java.io.File; import java.io.IOException; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.List; import java.util.Map; import me.kaZep.Base.Main; import net.milkbowl.vault.economy.Economy; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Difficulty; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.OfflinePlayer; import org.bukkit.Server; import org.bukkit.SkullType; import org.bukkit.World; import org.bukkit.block.Skull; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Monster; import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryType; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.MerchantInventory; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.SkullMeta; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; import com.sk89q.worldedit.CuboidClipboard; import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.MaxChangedBlocksException; import com.sk89q.worldedit.bukkit.BukkitWorld; import com.sk89q.worldedit.data.DataException; import com.sk89q.worldedit.schematic.SchematicFormat; public class commandBankEconomy implements CommandExecutor { public Main plugin; String prefix = "��2[BankEconomy]"; String usage = "��bUsage:"; String invARG = "��cInvalid argument. Please use ��2/bankeconomy��c to see a full list of commands."; String invARGT2 = "��cInvalid argument or insufficient permissions."; String offlinePlayer = "��cPlayer not found."; String accountDisabled = "��cYour account is disabled."; String cmdInfo = "��aYour bank balance is��b"; String cmdCheckARG1 = "��a/bankeconomy check <player>"; String cmdResetARG1 = "��a/bankeconomy reset <player>"; String cmdDepositARG1 = "��a"; String cmdWithdrawARG1 = "��a"; String cmdTransferARG1 = "��a/transfer <player> <amount>"; String cmdTransferARG2 = "��aPlease precise the name of the player."; String cmdEditARG1 = "��a/bankeconomy edit <action> <player> <value>"; String cmdEditARG2 = "��aPlease precise the value."; String cmdCheckReponsePlayer = "��a's bank balance is��b"; String cmdResetToPlayer1 = "��aYou have reset"; String cmdResetToPlayer2 = "'s bank account."; String cmdResetToTarget = "has reset your bank account."; String cmdReload = "��aAll the configs have been reloaded succesfully."; String notEnoughMoney = "��aYou do not own that amount of money."; String succesfullDeposited = "��aYou have deposited��b"; String succesfullWithdraw = "��aYou have withdrawn��b"; String cmdTransferToPlayer1 = "��aYou have transfered��b"; String cmdTransferToPlayer2 = "��ato��b"; String cmdTransferToTarget1 = "��ahas transfered to you��b"; String cmdTransferSameNick = "��aYou can't transfer money to yourself."; String cmdEditAvaibleActions = "��aAvaible actions: status, balance"; String cmdEditDisabledToPlayer1 = "��aYou have disabled"; String cmdEditDisabledToPlayer2 = "'s bank account."; String cmdEditEnableToPlayer1 = "��aYou have enabled"; String cmdEditEnableToPlayer2 = "'s bank account."; String cmdEditAmountSetPlayer1 = "��aYou have set"; String cmdEditAmountSetPlayer2 = "��ato��b"; String cmdEditAmountSetPlayer3 = "��a's account."; public commandBankEconomy(Main plugin) { this.plugin = plugin; } public String convertToItemName(String val) { val=val.replace('_', ' '); char[] mod = val.toCharArray(); boolean first=false; for (int i=0;i<mod.length;i++) { if (!first) { if (mod[i]>='a'&&mod[i]<='z') { mod[i]-=32; first=true; } else if (i==0) { if (mod[i]>='A'&&mod[i]<='Z') { first=true; } } else { if (mod[i]>='A'&&mod[i]<='Z'&&(mod[i-1]<'A'||mod[i-1]>'Z')) { first=true; } } } else { if (mod[i-1]!=' ') { if (mod[i]>='A'&&mod[i]<='Z') { mod[i]+=32; } } } } return String.valueOf(mod); } public void giveLegendaryItem(Player p) { String prefix = ""; String suffix = ""; int type=(int)(Math.random()*6); //int type=5; //TESTING. List<String> enchants1 = new ArrayList<String>(); List<String> enchants2 = new ArrayList<String>(); ItemStack finalitem = null; if (type==0) { finalitem=new ItemStack(Material.DIAMOND_HELMET); enchants1.add("Protective"); enchants1.add("Fire-Proof"); enchants1.add("Blast Resistant"); enchants1.add("Untouchable"); enchants1.add("Breathing"); enchants1.add("Working"); enchants1.add("Unbreaking"); enchants1.add("Thorny"); enchants2.add("Life"); enchants2.add("Resistance"); enchants2.add("Durability"); enchants2.add("Protection"); } if (type==1) { finalitem=new ItemStack(Material.DIAMOND_CHESTPLATE); enchants1.add("Protective"); enchants1.add("Fire-Proof"); enchants1.add("Blast Resistant"); enchants1.add("Untouchable"); enchants1.add("Unbreaking"); enchants1.add("Thorny"); enchants2.add("Life"); enchants2.add("Resistance"); enchants2.add("Durability"); enchants2.add("Protection"); } if (type==2) { finalitem=new ItemStack(Material.DIAMOND_LEGGINGS); enchants1.add("Protective"); enchants1.add("Fire-Proof"); enchants1.add("Blast Resistant"); enchants1.add("Untouchable"); enchants1.add("Unbreaking"); enchants1.add("Thorny"); enchants2.add("Life"); enchants2.add("Resistance"); enchants2.add("Durability"); enchants2.add("Protection"); } if (type==3) { finalitem=new ItemStack(Material.DIAMOND_BOOTS); enchants1.add("Protective"); enchants1.add("Fire-Proof"); enchants1.add("Blast Resistant"); enchants1.add("Untouchable"); enchants1.add("Lightweight"); enchants1.add("Unbreaking"); enchants1.add("Thorny"); enchants2.add("Life"); enchants2.add("Resistance"); enchants2.add("Durability"); enchants2.add("Protection"); } if (type==4) { finalitem=new ItemStack(Material.BOW); enchants1.add("Power"); enchants1.add("Punch"); enchants1.add("Flaming"); enchants1.add("Infinite"); enchants1.add("Unbreaking"); enchants2.add("Smiting"); enchants2.add("Penetration"); enchants2.add("Draining"); enchants2.add("Fury"); enchants2.add("Power"); } if (type==5) { finalitem=new ItemStack(Material.DIAMOND_SWORD); enchants1.add("Damaging"); enchants1.add("Knockback"); enchants1.add("Undead"); enchants1.add("Baning"); enchants1.add("Fiery"); enchants1.add("Greedy"); enchants1.add("Unbreaking"); enchants2.add("Smiting"); enchants2.add("Penetration"); enchants2.add("Draining"); enchants2.add("Fury"); enchants2.add("Power"); } prefix = enchants1.get((int)(Math.random()*enchants1.size())); suffix = enchants2.get((int)(Math.random()*enchants2.size())); if (prefix.equalsIgnoreCase("Protective")) { finalitem.addUnsafeEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 10); } if (prefix.equalsIgnoreCase("Fire-Proof")) { finalitem.addUnsafeEnchantment(Enchantment.PROTECTION_FIRE, 10); } if (prefix.equalsIgnoreCase("Blast Resistant")) { finalitem.addUnsafeEnchantment(Enchantment.PROTECTION_EXPLOSIONS, 10); } if (prefix.equalsIgnoreCase("Untouchable")) { finalitem.addUnsafeEnchantment(Enchantment.PROTECTION_PROJECTILE, 10); } if (prefix.equalsIgnoreCase("Breathing")) { finalitem.addUnsafeEnchantment(Enchantment.OXYGEN, 10); } if (prefix.equalsIgnoreCase("Working")) { finalitem.addUnsafeEnchantment(Enchantment.WATER_WORKER, 10); } if (prefix.equalsIgnoreCase("Unbreaking")) { finalitem.addUnsafeEnchantment(Enchantment.DURABILITY, 10); } if (prefix.equalsIgnoreCase("Thorny")) { finalitem.addUnsafeEnchantment(Enchantment.THORNS, 10); } if (prefix.equalsIgnoreCase("Untouchable")) { finalitem.addUnsafeEnchantment(Enchantment.PROTECTION_PROJECTILE, 10); } if (prefix.equalsIgnoreCase("Lightweight")) { finalitem.addUnsafeEnchantment(Enchantment.PROTECTION_FALL, 10); } if (prefix.equalsIgnoreCase("Power")) { finalitem.addUnsafeEnchantment(Enchantment.ARROW_DAMAGE, 10); } if (prefix.equalsIgnoreCase("Damaging")) { finalitem.addUnsafeEnchantment(Enchantment.DAMAGE_ALL, 10); } if (prefix.equalsIgnoreCase("Knockback")) { finalitem.addUnsafeEnchantment(Enchantment.KNOCKBACK, 10); } if (prefix.equalsIgnoreCase("Punch")) { finalitem.addUnsafeEnchantment(Enchantment.ARROW_KNOCKBACK, 10); } if (prefix.equalsIgnoreCase("Flaming")) { finalitem.addUnsafeEnchantment(Enchantment.ARROW_FIRE, 10); } if (prefix.equalsIgnoreCase("Infinite")) { finalitem.addUnsafeEnchantment(Enchantment.ARROW_INFINITE, 10); } if (prefix.equalsIgnoreCase("Undead")) { finalitem.addUnsafeEnchantment(Enchantment.DAMAGE_UNDEAD, 10); } if (prefix.equalsIgnoreCase("Baning")) { finalitem.addUnsafeEnchantment(Enchantment.DAMAGE_ARTHROPODS, 10); } if (prefix.equalsIgnoreCase("Fiery")) { finalitem.addUnsafeEnchantment(Enchantment.FIRE_ASPECT, 10); } if (prefix.equalsIgnoreCase("Greedy")) { finalitem.addUnsafeEnchantment(Enchantment.LOOT_BONUS_MOBS, 10); } ItemMeta meta = finalitem.getItemMeta(); meta.setDisplayName(ChatColor.GOLD+""+ChatColor.BOLD+prefix+" "+convertToItemName(finalitem.getType().name())+" of "+suffix); List<String> setLore = new ArrayList<String>(); if (suffix.equalsIgnoreCase("Life")) { setLore.add(ChatColor.YELLOW+"+"+((int)(Math.random()*30)+10)+" "+ChatColor.BLUE+"Health"); } if (suffix.equalsIgnoreCase("Resistance")) { setLore.add(ChatColor.YELLOW+"+"+((int)(Math.random()*70)+20)+"% "+ChatColor.BLUE+"Damage Reduction"); } if (suffix.equalsIgnoreCase("Durability")) { setLore.add(ChatColor.YELLOW+"+"+(((int)(Math.random()*200)+50)*10)+"% "+ChatColor.BLUE+"Durability"); } if (suffix.equalsIgnoreCase("Protection")) { setLore.add(ChatColor.YELLOW+"+"+(((int)(Math.random()*50)+10))+"% "+ChatColor.BLUE+"Block Chance"); } if (suffix.equalsIgnoreCase("Smiting")) { setLore.add(ChatColor.YELLOW+"+"+(((int)(Math.random()*50)+10))+"% "+ChatColor.BLUE+"Critical Chance"); } if (suffix.equalsIgnoreCase("Penetration")) { setLore.add(ChatColor.YELLOW+"+"+(((int)(Math.random()*20)+5))+" "+ChatColor.BLUE+"Armor Penetration"); } if (suffix.equalsIgnoreCase("Draining")) { setLore.add(ChatColor.YELLOW+"+"+(((int)(Math.random()*30)+20))+"% "+ChatColor.BLUE+"Life Steal"); } if (suffix.equalsIgnoreCase("Fury")) { setLore.add(ChatColor.YELLOW+"+"+(((int)(Math.random()*50)+10))+"% "+ChatColor.BLUE+"Attack Speed"); } if (suffix.equalsIgnoreCase("Power")) { setLore.add(ChatColor.YELLOW+"+"+(((int)(Math.random()*10)+5))+" "+ChatColor.BLUE+"Damage"); } setLore.add(""); setLore.add(ChatColor.YELLOW+"[Halloween]"); setLore.add("This item was created during the Halloween"); setLore.add("event. When this item breaks, it simply turns"); setLore.add("into a \"broken\" state and has a recharge time"); setLore.add("of 1 week. The item will be fully restored after"); setLore.add("a week of cooldown."); meta.setLore(setLore); finalitem.setItemMeta(meta); //finalitem.setDurability((short)1560); //TESTING. boolean full=true; for (int i=0;i<p.getInventory().getContents().length;i++) { if (p.getInventory().getContents()[i]==null) { full=false; break; } } if (!full) { p.getInventory().addItem(finalitem); } else { p.getWorld().dropItemNaturally(p.getLocation(), finalitem); //Drop item on the ground if our inventory is full. That way we don't lose it. } } public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { if ((sender instanceof Player)) { Player p = (Player)sender; boolean status = this.plugin.getAccountsConfig().getBoolean(p.getName().toLowerCase().toLowerCase() + ".status"); int playerBankBalance = this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase() + ".money"); String currencySingular = Main.economy.currencyNameSingular(); String currencyPlural = Main.economy.currencyNamePlural(); if (!status) p.sendMessage(this.prefix + " " + this.accountDisabled); else if (status) { if ((args.length == 0)) { if (cmd.getName().toLowerCase().equalsIgnoreCase("sp")) { //Show a list of all stat points and what you have currently allocated. p.sendMessage(""); p.sendMessage("Stat Listing shown as: "+ChatColor.AQUA+"Cost, "+ChatColor.YELLOW+"Current Buff, "+ChatColor.RED+"Next Level, "+ChatColor.GREEN+" Description"); p.sendMessage(ChatColor.GRAY+""+ChatColor.ITALIC+"#10 "+ChatColor.RESET+ChatColor.WHITE+"+"+this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat1")/6+" - "+ChatColor.AQUA+" 6 pts: "+ChatColor.YELLOW+((this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat1")<24 /*Not maxed.*/?(this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat1")>0/*Has a point in it.*/?ChatColor.YELLOW+"+"+this.plugin.getStatBonus(0, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat1")/6)+"/"+ChatColor.RED+"+"+this.plugin.getStatBonus(0, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat1")/6+1):ChatColor.RED+"+"+this.plugin.getStatBonus(0, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat1")/6+1)):(ChatColor.YELLOW+"+"+this.plugin.getStatBonus(0, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat1")/6))))+ChatColor.GREEN+" Health Regeneration."); p.sendMessage(ChatColor.GRAY+""+ChatColor.ITALIC+"#9 "+ChatColor.RESET+ChatColor.WHITE+"+"+this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat2")/5+" - "+ChatColor.AQUA+" 5 pts: "+ChatColor.YELLOW+((this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat2")<24 /*Not maxed.*/?(this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat2")>0/*Has a point in it.*/?ChatColor.YELLOW+"+"+this.plugin.getStatBonus(1, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat2")/5)+"%"+"/"+ChatColor.RED+"+"+this.plugin.getStatBonus(1, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat2")/5+1)+"%":ChatColor.RED+"+"+this.plugin.getStatBonus(1, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat2")/5+1)+"%"):(ChatColor.YELLOW+"+"+this.plugin.getStatBonus(1, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat2")/5)+"%")))+ChatColor.GREEN+" block destroying speed."); p.sendMessage(ChatColor.GRAY+""+ChatColor.ITALIC+"#8 "+ChatColor.RESET+ChatColor.WHITE+"+"+this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat3")/4+" - "+ChatColor.AQUA+" 4 pts: "+ChatColor.YELLOW+((this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat3")<24 /*Not maxed.*/?(this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat3")>0/*Has a point in it.*/?ChatColor.YELLOW+"+"+this.plugin.getStatBonus(2, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat3")/4)+"%"+"/"+ChatColor.RED+"+"+this.plugin.getStatBonus(2, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat3")/4+1)+"%":ChatColor.RED+"+"+this.plugin.getStatBonus(2, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat3")/4+1)+"%"):(ChatColor.YELLOW+"+"+this.plugin.getStatBonus(2, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat3")/4)+"%")))+ChatColor.GREEN+" damage reduction."); p.sendMessage(ChatColor.GRAY+""+ChatColor.ITALIC+"#7 "+ChatColor.RESET+ChatColor.WHITE+"+"+this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat5")/4+" - "+ChatColor.AQUA+" 4 pts: "+ChatColor.YELLOW+((this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat5")<24 /*Not maxed.*/?(this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat5")>0/*Has a point in it.*/?ChatColor.YELLOW+"+"+this.plugin.getStatBonus(4, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat5")/4)+"/"+ChatColor.RED+"+"+this.plugin.getStatBonus(4, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat5")/4+1):ChatColor.RED+"+"+this.plugin.getStatBonus(4, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat5")/4+1)):(ChatColor.YELLOW+"+"+this.plugin.getStatBonus(4, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat5")/4))))+ChatColor.GREEN+" armor penetration."); p.sendMessage(ChatColor.GRAY+""+ChatColor.ITALIC+"#6 "+ChatColor.RESET+ChatColor.WHITE+"+"+this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat4")/3+" - "+ChatColor.AQUA+" 3 pts: "+ChatColor.YELLOW+((this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat4")<24 /*Not maxed.*/?(this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat4")>0/*Has a point in it.*/?ChatColor.YELLOW+"+"+this.plugin.getStatBonus(3, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat4")/3)+"/"+ChatColor.RED+"+"+this.plugin.getStatBonus(3, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat4")/3+1):ChatColor.RED+"+"+this.plugin.getStatBonus(3, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat4")/3+1)):(ChatColor.YELLOW+"+"+this.plugin.getStatBonus(3, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat4")/3))))+ChatColor.GREEN+" temporary health. (Regenerates every 3 minutes)"); p.sendMessage(ChatColor.GRAY+""+ChatColor.ITALIC+"#5 "+ChatColor.RESET+ChatColor.WHITE+"+"+this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat6")/3+" - "+ChatColor.AQUA+" 3 pts: "+ChatColor.YELLOW+((this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat6")<24 /*Not maxed.*/?(this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat6")>0/*Has a point in it.*/?ChatColor.YELLOW+"+"+this.plugin.getStatBonus(5, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat6")/3)+"/"+ChatColor.RED+"+"+this.plugin.getStatBonus(5, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat6")/3+1):ChatColor.RED+"+"+this.plugin.getStatBonus(5, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat6")/3+1)):(ChatColor.YELLOW+"+"+this.plugin.getStatBonus(5, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat6")/3))))+ChatColor.GREEN+" seconds of fire resistance when caught on fire."); p.sendMessage(ChatColor.GRAY+""+ChatColor.ITALIC+"#4 "+ChatColor.RESET+ChatColor.WHITE+"+"+this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat7")/2+" - "+ChatColor.AQUA+" 2 pts: "+ChatColor.YELLOW+((this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat7")<24 /*Not maxed.*/?(this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat7")>0/*Has a point in it.*/?ChatColor.YELLOW+"+"+this.plugin.getStatBonus(6, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat7")/2)+"/"+ChatColor.RED+"+"+this.plugin.getStatBonus(6, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat7")/2+1):ChatColor.RED+"+"+this.plugin.getStatBonus(6, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat7")/2+1)):(ChatColor.YELLOW+"+"+this.plugin.getStatBonus(6, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat7")/2))))+ChatColor.GREEN+" base damage."); p.sendMessage(ChatColor.GRAY+""+ChatColor.ITALIC+"#3 "+ChatColor.RESET+ChatColor.WHITE+"+"+this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat8")/2+" - "+ChatColor.AQUA+" 2 pts: "+ChatColor.YELLOW+((this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat8")<24 /*Not maxed.*/?(this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat8")>0/*Has a point in it.*/?ChatColor.YELLOW+"+"+this.plugin.getStatBonus(7, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat8")/2)+"/"+ChatColor.RED+"+"+this.plugin.getStatBonus(7, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat8")/2+1):ChatColor.RED+"+"+this.plugin.getStatBonus(7, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat8")/2+1)):(ChatColor.YELLOW+"+"+this.plugin.getStatBonus(7, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat8")/2))))+ChatColor.GREEN+" health."); p.sendMessage(ChatColor.GRAY+""+ChatColor.ITALIC+"#2 "+ChatColor.RESET+ChatColor.WHITE+"-"+this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat9")/1+" - "+ChatColor.AQUA+" 1 pt: "+ChatColor.YELLOW+((this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat9")<25 /*Not maxed.*/?(this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat9")>0/*Has a point in it.*/?ChatColor.YELLOW+"-"+this.plugin.getStatBonus(8, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat9")/1)+"%"+"/"+ChatColor.RED+"-"+this.plugin.getStatBonus(8, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat9")/1+1)+"%":ChatColor.RED+"-"+this.plugin.getStatBonus(8, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat9")/1+1)+"%"):(ChatColor.YELLOW+"-"+this.plugin.getStatBonus(8, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat9")/1)+"%")))+ChatColor.GREEN+" hunger decay."); p.sendMessage(ChatColor.GRAY+""+ChatColor.ITALIC+"#1 "+ChatColor.RESET+ChatColor.WHITE+"+"+this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat10")/1+" - "+ChatColor.AQUA+" 1 pt: "+ChatColor.YELLOW+((this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat10")<25 /*Not maxed.*/?(this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat10")>0/*Has a point in it.*/?ChatColor.YELLOW+"+"+this.plugin.getStatBonus(9, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat10")/1)+"/"+ChatColor.RED+"+"+this.plugin.getStatBonus(9, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat10")/1+1):ChatColor.RED+"+"+this.plugin.getStatBonus(9, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat10")/1+1)):(ChatColor.YELLOW+"+"+this.plugin.getStatBonus(9, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat10")/1))))+ChatColor.GREEN+" seconds of water breathing."); p.sendMessage(ChatColor.ITALIC+""+ChatColor.DARK_AQUA+"Remember that 1 Health / Damage point is half a heart."); if (this.plugin.getStatPointTotal(p)<this.plugin.getJobTotalLvs(p)/5+1) { //Check if we have extra stat points. p.sendMessage(ChatColor.GOLD+"Type "+ChatColor.BLUE+ChatColor.BOLD+"/sp #"+ChatColor.RESET+ChatColor.GOLD+" with the number of the buff you want to add a point to. (You have "+((this.plugin.getJobTotalLvs(p)/5+1)-this.plugin.getStatPointTotal(p))+" stat point"+(((this.plugin.getJobTotalLvs(p)/5+1)-this.plugin.getStatPointTotal(p))==1?"":"s")+".)"); } } else if (cmd.getName().toLowerCase().equalsIgnoreCase("tele")) { p.sendMessage("Usage: "+ChatColor.RED+"/tele to "+ChatColor.GREEN+" <player>"+ChatColor.WHITE+" - Teleport to a player for a cost."); } else if (cmd.getName().toLowerCase().equalsIgnoreCase("settings")) { Inventory i = Bukkit.createInventory(p, 27, "Notification Options"); int count=-1; ItemStack temp,on,off; temp=new ItemStack(Material.DIRT); ItemMeta temp_meta=temp.getItemMeta();temp_meta.setDisplayName(ChatColor.YELLOW+"Pick Up Items");List<String> temp_meta_lore = new ArrayList<String>();temp_meta_lore.add(ChatColor.ITALIC+"Get notified whenever you pick up items.");temp_meta_lore.add(ChatColor.ITALIC+"");temp_meta_lore.add(ChatColor.ITALIC+""+ChatColor.GRAY+"Click to toggle this option on or off.");temp_meta.setLore(temp_meta_lore);temp.setItemMeta(temp_meta); on=new ItemStack(Material.REDSTONE_TORCH_ON); off=new ItemStack(Material.REDSTONE_TORCH_OFF); i.setItem(count+=2, temp);on.setItemMeta(temp_meta);off.setItemMeta(temp_meta); i.setItem(count+=1, (this.plugin.getAccountsConfig().getBoolean(p.getName().toLowerCase().toLowerCase()+".settings.notify1")?on:off)); temp_meta.setDisplayName(ChatColor.YELLOW+"Craft Items");temp_meta_lore = new ArrayList<String>();temp_meta_lore.add(ChatColor.ITALIC+"Get notified whenever you craft an item.");temp_meta_lore.add(ChatColor.ITALIC+"");temp_meta_lore.add(ChatColor.ITALIC+""+ChatColor.GRAY+"Click to toggle this option on or off.");temp_meta.setLore(temp_meta_lore); temp=new ItemStack(Material.WORKBENCH); temp.setItemMeta(temp_meta);i.setItem(count+=3, temp);on.setItemMeta(temp_meta);off.setItemMeta(temp_meta); i.setItem(count+=1, (this.plugin.getAccountsConfig().getBoolean(p.getName().toLowerCase().toLowerCase()+".settings.notify2")?on:off)); temp_meta.setDisplayName(ChatColor.YELLOW+"Experience Points");temp_meta_lore = new ArrayList<String>();temp_meta_lore.add(ChatColor.ITALIC+"Get notified whenever you gain");temp_meta_lore.add(ChatColor.ITALIC+"experience points.");temp_meta_lore.add(ChatColor.ITALIC+"");temp_meta_lore.add(ChatColor.ITALIC+""+ChatColor.GRAY+"Click to toggle this option on or off.");temp_meta.setLore(temp_meta_lore); temp=new ItemStack(Material.SLIME_BALL); temp.setItemMeta(temp_meta);i.setItem(count+=4, temp);on.setItemMeta(temp_meta);off.setItemMeta(temp_meta); i.setItem(count+=1, (this.plugin.getAccountsConfig().getBoolean(p.getName().toLowerCase().toLowerCase()+".settings.notify3")?on:off)); temp_meta.setDisplayName(ChatColor.YELLOW+"Damage Dealt");temp_meta_lore = new ArrayList<String>();temp_meta_lore.add(ChatColor.ITALIC+"Get notified whenever you deal");temp_meta_lore.add(ChatColor.ITALIC+"damage to enemies.");temp_meta_lore.add(ChatColor.ITALIC+"");temp_meta_lore.add(ChatColor.ITALIC+""+ChatColor.GRAY+"Click to toggle this option on or off.");temp_meta.setLore(temp_meta_lore); temp=new ItemStack(Material.IRON_SWORD); temp.setItemMeta(temp_meta);i.setItem(count+=3, temp);on.setItemMeta(temp_meta);off.setItemMeta(temp_meta); i.setItem(count+=1, (this.plugin.getAccountsConfig().getBoolean(p.getName().toLowerCase().toLowerCase()+".settings.notify4")?on:off)); temp_meta.setDisplayName(ChatColor.YELLOW+"Damage Received");temp_meta_lore = new ArrayList<String>();temp_meta_lore.add(ChatColor.ITALIC+"Get notified whenever you take damage");temp_meta_lore.add(ChatColor.ITALIC+" from enemies and other sources of damage.");temp_meta_lore.add(ChatColor.ITALIC+"");temp_meta_lore.add(ChatColor.ITALIC+""+ChatColor.GRAY+"Click to toggle this option on or off.");temp_meta.setLore(temp_meta_lore); temp=new ItemStack(Material.IRON_CHESTPLATE); temp.setItemMeta(temp_meta); i.setItem(count+=4, temp);on.setItemMeta(temp_meta);off.setItemMeta(temp_meta); i.setItem(count+=1, (this.plugin.getAccountsConfig().getBoolean(p.getName().toLowerCase().toLowerCase()+".settings.notify5")?on:off)); temp_meta.setDisplayName(ChatColor.YELLOW+"Money Gained");temp_meta_lore = new ArrayList<String>();temp_meta_lore.add(ChatColor.ITALIC+"Get notified of how much money you made");temp_meta_lore.add(ChatColor.ITALIC+" from your jobs in the past hour.");temp_meta_lore.add(ChatColor.ITALIC+"");temp_meta_lore.add(ChatColor.ITALIC+""+ChatColor.GRAY+"Click to toggle this option on or off.");temp_meta.setLore(temp_meta_lore); temp=new ItemStack(Material.GOLD_INGOT); temp.setItemMeta(temp_meta);i.setItem(count+=3, temp);on.setItemMeta(temp_meta);off.setItemMeta(temp_meta); i.setItem(count+=1, (this.plugin.getAccountsConfig().getBoolean(p.getName().toLowerCase().toLowerCase()+".settings.notify6")?on:off)); p.openInventory(i); } else if (cmd.getName().toLowerCase().equalsIgnoreCase("event")) { if (p.hasPermission("maintenance-mode-admin")) { p.sendMessage("Events available: halloween, thanksgiving. Use: /event <eventname>"); } } else if (cmd.getName().toLowerCase().equalsIgnoreCase("maintenance")) { if (p.hasPermission("maintenance-mode-admin")) { if (this.plugin.getConfig().getBoolean("maintenance-mode")) { this.plugin.getConfig().set("maintenance-mode", Boolean.valueOf(false)); Bukkit.broadcastMessage("Maintenance mode is now "+ChatColor.BLUE+" OFF"+ChatColor.RESET+"."); } else { this.plugin.getConfig().set("maintenance-mode", Boolean.valueOf(true)); Bukkit.broadcastMessage("Maintenance mode is now "+ChatColor.RED+" ON"+ChatColor.RESET+"."); } this.plugin.saveConfig(); } } else if (cmd.getName().toLowerCase().equalsIgnoreCase("transfer")) { p.sendMessage("Usage: "+ChatColor.RED+"/transfer name money"+ChatColor.WHITE+" - Transfer money to a player."); } else if (cmd.getName().toLowerCase().equalsIgnoreCase("revive")) { p.sendMessage("Usage: "+ChatColor.RED+"/revive me "+ChatColor.WHITE+" - Revive to the last location you died at."); } else if (cmd.getName().toLowerCase().equalsIgnoreCase("unenchant")) { Map<Enchantment,Integer> map = p.getItemInHand().getEnchantments(); for (Map.Entry<Enchantment,Integer> entry : map.entrySet()) { p.getItemInHand().removeEnchantment(entry.getKey()); } if (p.getItemInHand().hasItemMeta() && p.getItemInHand().getItemMeta().hasLore()) { List<String> newlore = new ArrayList<String>(); for (int i=0;i<p.getItemInHand().getItemMeta().getLore().size();i++) { //Remove all lore when unenchanting. //Do not remove -400% durability. if (this.plugin.is_PermanentProperty(p.getItemInHand().getItemMeta().getLore().get(i))) { newlore.add(p.getItemInHand().getItemMeta().getLore().get(i)); } } ItemMeta meta = p.getItemInHand().getItemMeta(); meta.setLore(newlore); p.getItemInHand().setItemMeta(meta); } p.sendMessage("Enchantments and bonuses removed on this item."); } else if (cmd.getName().toLowerCase().equalsIgnoreCase("ticktime")) { p.sendMessage("Current Server Time: "+ChatColor.GRAY+""+ChatColor.ITALIC+Main.SERVER_TICK_TIME); } else if (cmd.getName().toLowerCase().equalsIgnoreCase("jobs")) { FileConfiguration config = this.plugin.getConfig(); int MAXJOBS = config.getInt("jobs.MAX_JOBS"); p.sendMessage(ChatColor.GOLD+" Blacksmith ("+config.getInt("jobs.Blacksmith")+"/"+MAXJOBS+")"); p.sendMessage(ChatColor.DARK_GREEN+" Breeder ("+config.getInt("jobs.Breeder")+"/"+MAXJOBS+")"); p.sendMessage(ChatColor.LIGHT_PURPLE+" Brewer ("+config.getInt("jobs.Brewer")+"/"+MAXJOBS+")"); p.sendMessage(ChatColor.WHITE+" Builder ("+config.getInt("jobs.Builder")+"/"+MAXJOBS+")"); p.sendMessage(ChatColor.YELLOW+" Cook ("+config.getInt("jobs.Cook")+"/"+MAXJOBS+")"); p.sendMessage(ChatColor.GOLD+" Digger ("+config.getInt("jobs.Digger")+"/"+MAXJOBS+")"); p.sendMessage(ChatColor.DARK_BLUE+" Enchanter ("+config.getInt("jobs.Enchanter")+"/"+MAXJOBS+")"); p.sendMessage(ChatColor.WHITE+" Explorer ("+config.getInt("jobs.Explorer")+"/"+MAXJOBS+")"); p.sendMessage(ChatColor.BLUE+" Farmer ("+config.getInt("jobs.Farmer")+"/"+MAXJOBS+")"); p.sendMessage(ChatColor.AQUA+" Fisherman ("+config.getInt("jobs.Fisherman")+"/"+MAXJOBS+")"); p.sendMessage(ChatColor.RED+" Hunter ("+config.getInt("jobs.Hunter")+"/"+MAXJOBS+")"); p.sendMessage(ChatColor.GRAY+" Miner ("+config.getInt("jobs.Miner")+"/"+MAXJOBS+")"); p.sendMessage(ChatColor.DARK_RED+" Support ("+config.getInt("jobs.Support")+"/"+MAXJOBS+")"); p.sendMessage(ChatColor.DARK_PURPLE+" Weaponsmith ("+config.getInt("jobs.Weaponsmith")+"/"+MAXJOBS+")"); p.sendMessage(ChatColor.GREEN+" Woodcutter ("+config.getInt("jobs.Woodcutter")+"/"+MAXJOBS+")"); p.sendMessage("For more information, type "+ChatColor.GREEN+"/jobs info [JobName]"); } else if (!p.hasPermission("bankeconomy.main.admin")) { p.sendMessage(ChatColor.GOLD + "---===" + this.prefix + ChatColor.GOLD + "===---"); p.sendMessage(ChatColor.RED + "/bankeconomy transfer " + ChatColor.AQUA + "- Transfer some money to other player."); p.sendMessage(ChatColor.RED + "/bankeconomy info " + ChatColor.AQUA + "- See your bank informations."); p.sendMessage(ChatColor.RED + "/revive me" + ChatColor.AQUA + "- Revive after a death."); p.sendMessage(ChatColor.RED + "/revive amount " + ChatColor.AQUA + "- Check cost to revive at current location."); } else { p.sendMessage(ChatColor.GOLD + "---===" + this.prefix + ChatColor.GOLD + "===---"); p.sendMessage(ChatColor.RED + "/bankeconomy transfer " + ChatColor.AQUA + "- Transfer some money to other player."); p.sendMessage(ChatColor.RED + "/bankeconomy info " + ChatColor.AQUA + "- See your bank informations."); p.sendMessage(ChatColor.DARK_RED + "/bankeconomy edit " + ChatColor.DARK_AQUA + "- Edit a player bank account."); p.sendMessage(ChatColor.RED + "/revive me" + ChatColor.AQUA + "- Revive after a death."); p.sendMessage(ChatColor.RED + "/revive amount " + ChatColor.AQUA + "- Check cost to revive at current location."); p.sendMessage(ChatColor.DARK_RED + "/bankeconomy check " + ChatColor.DARK_AQUA + "- Check a player bank account."); p.sendMessage(ChatColor.DARK_RED + "/bankeconomy reset " + ChatColor.DARK_AQUA + "- Delete a player bank account."); p.sendMessage(ChatColor.DARK_RED + "/bankeconomy reload " + ChatColor.DARK_AQUA + "- Reloads config and accounts."); } } else if (cmd.getName().toLowerCase().equalsIgnoreCase("event") && args.length==1 && p.hasPermission("maintenance-mode-admin")) { if (args[0].equalsIgnoreCase("halloween")) { if (this.plugin.getConfig().getBoolean("halloween-enabled")) { this.plugin.getConfig().set("halloween-enabled", Boolean.valueOf(false)); p.sendMessage("Halloween event disabled."); } else { this.plugin.getConfig().set("halloween-enabled", Boolean.valueOf(true)); p.sendMessage("Halloween event enabled."); } this.plugin.saveConfig(); } if (args[0].equalsIgnoreCase("thanksgiving")) { if (this.plugin.getConfig().getBoolean("thanksgiving-enabled")) { this.plugin.getConfig().set("thanksgiving-enabled", Boolean.valueOf(false)); p.sendMessage("Thanksgiving event disabled."); } else { this.plugin.getConfig().set("thanksgiving-enabled", Boolean.valueOf(true)); p.sendMessage("Thanksgiving event enabled."); } this.plugin.saveConfig(); } if (args[0].equalsIgnoreCase("loot")) { ItemStack chest = new ItemStack(Material.CHEST); ItemMeta chest_name = chest.getItemMeta(); chest_name.setDisplayName(ChatColor.YELLOW+"Closed Chest"); List<String> chestlore = new ArrayList<String>(); chestlore.add(ChatColor.GRAY+""+ChatColor.ITALIC+"A mysterious chest!"); chestlore.add(ChatColor.GRAY+""+ChatColor.ITALIC+""); chestlore.add(ChatColor.GRAY+""+ChatColor.ITALIC+"It feels heavy; there"); chestlore.add(ChatColor.GRAY+""+ChatColor.ITALIC+"might be items inside."); chest_name.setLore(chestlore); chest.setItemMeta(chest_name); p.getWorld().dropItemNaturally(p.getLocation(), chest); } } else if (cmd.getName().toLowerCase().equalsIgnoreCase("event") && args.length==2 && p.hasPermission("maintenance-mode-admin")) { if (args[0].equalsIgnoreCase("head")) { ItemStack m = new ItemStack(Material.SKULL_ITEM, 64, (short)SkullType.PLAYER.ordinal()); SkullMeta skullMeta = (SkullMeta) m.getItemMeta(); skullMeta.setOwner(args[1]); skullMeta.setDisplayName(ChatColor.RESET + args[1]+"'s Head"); m.setItemMeta(skullMeta); p.getInventory().addItem(m); } if (args[0].equalsIgnoreCase("halloween_reward")) { Bukkit.broadcastMessage(args[1]+" has won the Pumpkin Patch contest due to popular vote! "+ChatColor.BOLD+"Congratulations!"); Player f = Bukkit.getPlayer(args[1]); f.sendMessage("You have received $800 in holding money, and 5 Job Boost cards!"); this.plugin.economy.depositPlayer(args[1], 800); ItemStack i = new ItemStack(Material.getMaterial(34),5); ItemMeta meta = i.getItemMeta(); meta.setDisplayName(ChatColor.LIGHT_PURPLE+"Job Boost Card"); List<String> lore = new ArrayList<String>(); lore.add("Use /jobs boost <jobname> to instantly level up"); lore.add("that job with this card!"); meta.setLore(lore); i.setItemMeta(meta); f.getInventory().addItem(i); } if (args[0].equalsIgnoreCase("halloween") && args[1].equalsIgnoreCase("end")) { p.sendMessage(ChatColor.GRAY+"Ending Harrowing night... Did you make sure it was night time? If not, type this command again after /time night instead."); this.plugin.harrowing_night=true; this.plugin.getConfig().set("halloween-enabled", Boolean.valueOf(false)); p.sendMessage("Halloween event disabled."); Bukkit.broadcastMessage(ChatColor.GRAY+"Ending 'The Harrowing' Event..."); Bukkit.getScheduler().scheduleSyncDelayedTask(this.plugin, new Runnable() { @Override public void run() { Bukkit.broadcastMessage(" Thanks for playing and sticking with us through this event!"); } },20); Bukkit.getScheduler().scheduleSyncDelayedTask(this.plugin, new Runnable() { @Override public void run() { Bukkit.broadcastMessage(ChatColor.GOLD+" Please make 3 slots of room in your inventory now if you do not have room. We are giving prizes...."); } },100); Bukkit.getScheduler().scheduleSyncDelayedTask(this.plugin, new Runnable() { @Override public void run() { Bukkit.broadcastMessage(ChatColor.GREEN+" You each have received an extra Harrowing item, a bonus extra item, and a special Polymorph Wand for participating in this event! I have also given you appropriate buffs."); for (int i=0;i<Bukkit.getOnlinePlayers().length;i++) { Player p = Bukkit.getOnlinePlayers()[i]; String prefix = ""; String suffix = ""; int type=(int)(Math.random()*6); //int type=5; //TESTING. List<String> enchants1 = new ArrayList<String>(); List<String> enchants2 = new ArrayList<String>(); ItemStack finalitem = null; if (type==0) { finalitem=new ItemStack(Material.DIAMOND_HELMET); enchants1.add("Protective"); enchants1.add("Fire-Proof"); enchants1.add("Blast Resistant"); enchants1.add("Untouchable"); enchants1.add("Breathing"); enchants1.add("Working"); enchants1.add("Unbreaking"); enchants1.add("Thorny"); enchants2.add("Life"); enchants2.add("Resistance"); enchants2.add("Durability"); enchants2.add("Protection"); } if (type==1) { finalitem=new ItemStack(Material.DIAMOND_CHESTPLATE); enchants1.add("Protective"); enchants1.add("Fire-Proof"); enchants1.add("Blast Resistant"); enchants1.add("Untouchable"); enchants1.add("Unbreaking"); enchants1.add("Thorny"); enchants2.add("Life"); enchants2.add("Resistance"); enchants2.add("Durability"); enchants2.add("Protection"); } if (type==2) { finalitem=new ItemStack(Material.DIAMOND_LEGGINGS); enchants1.add("Protective"); enchants1.add("Fire-Proof"); enchants1.add("Blast Resistant"); enchants1.add("Untouchable"); enchants1.add("Unbreaking"); enchants1.add("Thorny"); enchants2.add("Life"); enchants2.add("Resistance"); enchants2.add("Durability"); enchants2.add("Protection"); } if (type==3) { finalitem=new ItemStack(Material.DIAMOND_BOOTS); enchants1.add("Protective"); enchants1.add("Fire-Proof"); enchants1.add("Blast Resistant"); enchants1.add("Untouchable"); enchants1.add("Lightweight"); enchants1.add("Unbreaking"); enchants1.add("Thorny"); enchants2.add("Life"); enchants2.add("Resistance"); enchants2.add("Durability"); enchants2.add("Protection"); } if (type==4) { finalitem=new ItemStack(Material.BOW); enchants1.add("Power"); enchants1.add("Punch"); enchants1.add("Flaming"); enchants1.add("Infinite"); enchants1.add("Unbreaking"); enchants2.add("Smiting"); enchants2.add("Penetration"); enchants2.add("Draining"); enchants2.add("Fury"); enchants2.add("Power"); } if (type==5) { finalitem=new ItemStack(Material.DIAMOND_SWORD); enchants1.add("Damaging"); enchants1.add("Knockback"); enchants1.add("Undead"); enchants1.add("Baning"); enchants1.add("Fiery"); enchants1.add("Greedy"); enchants1.add("Unbreaking"); enchants2.add("Smiting"); enchants2.add("Penetration"); enchants2.add("Draining"); enchants2.add("Fury"); enchants2.add("Power"); } prefix = enchants1.get((int)(Math.random()*enchants1.size())); suffix = enchants2.get((int)(Math.random()*enchants2.size())); if (prefix.equalsIgnoreCase("Protective")) { finalitem.addUnsafeEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 10); } if (prefix.equalsIgnoreCase("Fire-Proof")) { finalitem.addUnsafeEnchantment(Enchantment.PROTECTION_FIRE, 10); } if (prefix.equalsIgnoreCase("Blast Resistant")) { finalitem.addUnsafeEnchantment(Enchantment.PROTECTION_EXPLOSIONS, 10); } if (prefix.equalsIgnoreCase("Untouchable")) { finalitem.addUnsafeEnchantment(Enchantment.PROTECTION_PROJECTILE, 10); } if (prefix.equalsIgnoreCase("Breathing")) { finalitem.addUnsafeEnchantment(Enchantment.OXYGEN, 10); } if (prefix.equalsIgnoreCase("Working")) { finalitem.addUnsafeEnchantment(Enchantment.WATER_WORKER, 10); } if (prefix.equalsIgnoreCase("Unbreaking")) { finalitem.addUnsafeEnchantment(Enchantment.DURABILITY, 10); } if (prefix.equalsIgnoreCase("Thorny")) { finalitem.addUnsafeEnchantment(Enchantment.THORNS, 10); } if (prefix.equalsIgnoreCase("Untouchable")) { finalitem.addUnsafeEnchantment(Enchantment.PROTECTION_PROJECTILE, 10); } if (prefix.equalsIgnoreCase("Lightweight")) { finalitem.addUnsafeEnchantment(Enchantment.PROTECTION_FALL, 10); } if (prefix.equalsIgnoreCase("Power")) { finalitem.addUnsafeEnchantment(Enchantment.ARROW_DAMAGE, 10); } if (prefix.equalsIgnoreCase("Damaging")) { finalitem.addUnsafeEnchantment(Enchantment.DAMAGE_ALL, 10); } if (prefix.equalsIgnoreCase("Knockback")) { finalitem.addUnsafeEnchantment(Enchantment.KNOCKBACK, 10); } if (prefix.equalsIgnoreCase("Punch")) { finalitem.addUnsafeEnchantment(Enchantment.ARROW_KNOCKBACK, 10); } if (prefix.equalsIgnoreCase("Flaming")) { finalitem.addUnsafeEnchantment(Enchantment.ARROW_FIRE, 10); } if (prefix.equalsIgnoreCase("Infinite")) { finalitem.addUnsafeEnchantment(Enchantment.ARROW_INFINITE, 10); } if (prefix.equalsIgnoreCase("Undead")) { finalitem.addUnsafeEnchantment(Enchantment.DAMAGE_UNDEAD, 10); } if (prefix.equalsIgnoreCase("Baning")) { finalitem.addUnsafeEnchantment(Enchantment.DAMAGE_ARTHROPODS, 10); } if (prefix.equalsIgnoreCase("Fiery")) { finalitem.addUnsafeEnchantment(Enchantment.FIRE_ASPECT, 10); } if (prefix.equalsIgnoreCase("Greedy")) { finalitem.addUnsafeEnchantment(Enchantment.LOOT_BONUS_MOBS, 10); } ItemMeta meta = finalitem.getItemMeta(); meta.setDisplayName(ChatColor.GOLD+""+ChatColor.BOLD+prefix+" "+convertToItemName(finalitem.getType().name())+" of "+suffix); List<String> setLore = new ArrayList<String>(); if (suffix.equalsIgnoreCase("Life")) { setLore.add(ChatColor.YELLOW+"+"+((int)(Math.random()*30)+10)+" "+ChatColor.BLUE+"Health"); } if (suffix.equalsIgnoreCase("Resistance")) { setLore.add(ChatColor.YELLOW+"+"+((int)(Math.random()*70)+20)+"% "+ChatColor.BLUE+"Damage Reduction"); } if (suffix.equalsIgnoreCase("Durability")) { setLore.add(ChatColor.YELLOW+"+"+(((int)(Math.random()*200)+50)*10)+"% "+ChatColor.BLUE+"Durability"); } if (suffix.equalsIgnoreCase("Protection")) { setLore.add(ChatColor.YELLOW+"+"+(((int)(Math.random()*50)+10))+"% "+ChatColor.BLUE+"Block Chance"); } if (suffix.equalsIgnoreCase("Smiting")) { setLore.add(ChatColor.YELLOW+"+"+(((int)(Math.random()*50)+10))+"% "+ChatColor.BLUE+"Critical Chance"); } if (suffix.equalsIgnoreCase("Penetration")) { setLore.add(ChatColor.YELLOW+"+"+(((int)(Math.random()*20)+5))+" "+ChatColor.BLUE+"Armor Penetration"); } if (suffix.equalsIgnoreCase("Draining")) { setLore.add(ChatColor.YELLOW+"+"+(((int)(Math.random()*30)+20))+"% "+ChatColor.BLUE+"Life Steal"); } if (suffix.equalsIgnoreCase("Fury")) { setLore.add(ChatColor.YELLOW+"+"+(((int)(Math.random()*50)+10))+"% "+ChatColor.BLUE+"Attack Speed"); } if (suffix.equalsIgnoreCase("Power")) { setLore.add(ChatColor.YELLOW+"+"+(((int)(Math.random()*10)+5))+" "+ChatColor.BLUE+"Damage"); } setLore.add(""); setLore.add(ChatColor.YELLOW+"[Halloween]"); setLore.add("This item was created during the Halloween"); setLore.add("event. When this item breaks, it simply turns"); setLore.add("into a \"broken\" state and has a recharge time"); setLore.add("of 1 week. The item will be fully restored after"); setLore.add("a week of cooldown."); meta.setLore(setLore); finalitem.setItemMeta(meta); //finalitem.setDurability((short)1560); //TESTING. boolean full=true; for (int j=0;j<p.getInventory().getContents().length;j++) { if (p.getInventory().getContents()[j]==null) { full=false; break; } } if (!full) { p.getInventory().addItem(finalitem); } else { p.getWorld().dropItemNaturally(p.getLocation(), finalitem); //Drop item on the ground if our inventory is full. That way we don't lose it. } ItemStack item = null; //Add a weapon/armor piece. int rand = (int)(Math.random()*5); String type1 = "DIAMOND"; String type2 = ""; int rarity=2; //0 = Normal, 1 = Rare, 2 = Legendary if (rand!=0 && rand!=3) { rand = (int)(Math.random()*9); type2 = ""; switch (rand) { case 0: { type2 = "HELMET"; }break; case 1: { type2 = "CHESTPLATE"; }break; case 2: { type2 = "LEGGINGS"; }break; case 3: { type2 = "BOOTS"; }break; case 4: { type2 = "SWORD"; }break; case 5: { type2 = "BOOTS"; }break; case 6: { type2 = "LEGGINGS"; }break; case 7: { type2 = "CHESTPLATE"; }break; case 8: { type2 = "HELMET"; }break; } } else { rand = (int)(Math.random()*5); type2 = ""; switch (rand) { case 0: { type2 = "HELMET"; }break; case 1: { type2 = "CHESTPLATE"; }break; case 2: { type2 = "LEGGINGS"; }break; case 3: { type2 = "BOOTS"; }break; case 4: { type2 = "SWORD"; }break; } } double chance_increase=0; if (rarity>0) { chance_increase=1.5d; } if (type2.equalsIgnoreCase("BOW")) { item = new ItemStack(Material.BOW); int enchants[] = {48,49,50,51}; for (int j=0;j<enchants.length;j++) { if (Math.random()*chance_increase<1.0d/enchants.length) { if (rarity==2) { item.addUnsafeEnchantment(Enchantment.getById(enchants[j]), (int)(Math.random()*10)+1); } else { item.addUnsafeEnchantment(Enchantment.getById(enchants[j]), (int)(Math.random()*6)+1); } } } List<String> ourLore = new ArrayList<String>(); if (Math.random()<=0.2) { ourLore.add(ChatColor.YELLOW+"+"+((int)(Math.random()*10)+1)+"% "+ChatColor.BLUE+"Critical Chance"); } if (Math.random()<=0.2) { ourLore.add(ChatColor.YELLOW+"+"+((int)(Math.random()*3)+1)+" "+ChatColor.BLUE+"Armor Penetration"); } if (Math.random()<=0.2) { ourLore.add(ChatColor.YELLOW+"+"+((int)(Math.random()*10)+1)+"% "+ChatColor.BLUE+"Life Steal"); } if (Math.random()<=0.2) { ourLore.add(ChatColor.YELLOW+"+"+((int)(Math.random()*30)+1)+"% "+ChatColor.BLUE+"Attack Speed"); } if (Math.random()<=0.2) { ourLore.add(ChatColor.YELLOW+"+"+((int)(Math.random()*5)+1)+" "+ChatColor.BLUE+"Damage"); } ItemMeta meta1 = item.getItemMeta(); meta1.setLore(ourLore); item.setItemMeta(meta1); } else { item = new ItemStack(Material.getMaterial(type1+"_"+type2)); if (type2.equalsIgnoreCase("SWORD")) { int enchants[] = {16,17,18,19,20,21,34}; for (int j=0;j<enchants.length;j++) { if (Math.random()*chance_increase<1.0d/enchants.length) { if (rarity==2) { item.addUnsafeEnchantment(Enchantment.getById(enchants[j]), (int)(Math.random()*10)+1); } else { item.addUnsafeEnchantment(Enchantment.getById(enchants[j]), (int)(Math.random()*6)+1); } } } List<String> ourLore = new ArrayList<String>(); if (Math.random()<=0.2) { ourLore.add(ChatColor.YELLOW+"+"+((int)(Math.random()*10)+1)+"% "+ChatColor.BLUE+"Critical Chance"); } if (Math.random()<=0.2) { ourLore.add(ChatColor.YELLOW+"+"+((int)(Math.random()*3)+1)+" "+ChatColor.BLUE+"Armor Penetration"); } if (Math.random()<=0.2) { ourLore.add(ChatColor.YELLOW+"+"+((int)(Math.random()*10)+1)+"% "+ChatColor.BLUE+"Life Steal"); } if (Math.random()<=0.2) { ourLore.add(ChatColor.YELLOW+"+"+((int)(Math.random()*30)+1)+"% "+ChatColor.BLUE+"Attack Speed"); } if (Math.random()<=0.2) { ourLore.add(ChatColor.YELLOW+"+"+((int)(Math.random()*5)+1)+" "+ChatColor.BLUE+"Damage"); } ItemMeta meta1 = item.getItemMeta(); meta1.setLore(ourLore); if (rarity==1) { meta.setDisplayName(ChatColor.BLUE+"Rare "+convertToItemName(item.getType().name().replace("_", " "))); } if (rarity==2) { meta.setDisplayName(ChatColor.YELLOW+""+ChatColor.BOLD+"Legendary "+convertToItemName(item.getType().name().replace("_", " "))); } item.setItemMeta(meta1); } else if (type2.equalsIgnoreCase("SPADE") || type2.equalsIgnoreCase("PICKAXE") || type2.equalsIgnoreCase("HOE") || type2.equalsIgnoreCase("AXE")) { int enchants[] = {32,33,34,35}; for (int j=0;j<enchants.length;j++) { if (Math.random()<1.0d/enchants.length) { if (Math.random()<1.0d/enchants.length) { if (Math.random()*chance_increase<1.0d/enchants.length) { if (rarity==2) { if (enchants[j]==33) { if (item.getEnchantmentLevel(Enchantment.LOOT_BONUS_BLOCKS)==0) { item.addUnsafeEnchantment(Enchantment.getById(enchants[j]), (int)(Math.random()*10)+1); } } if (enchants[j]==35) { if (item.getEnchantmentLevel(Enchantment.SILK_TOUCH)==0) { item.addUnsafeEnchantment(Enchantment.getById(enchants[j]), (int)(Math.random()*10)+1); } } } else { if (enchants[j]==33) { if (item.getEnchantmentLevel(Enchantment.LOOT_BONUS_BLOCKS)==0) { item.addUnsafeEnchantment(Enchantment.getById(enchants[j]), (int)(Math.random()*6)+1); } } if (enchants[j]==35) { if (item.getEnchantmentLevel(Enchantment.SILK_TOUCH)==0) { item.addUnsafeEnchantment(Enchantment.getById(enchants[j]), (int)(Math.random()*6)+1); } } } } } } } List<String> ourLore = new ArrayList<String>(); if (Math.random()<=0.2) { ourLore.add(ChatColor.YELLOW+"+"+((int)(Math.random()*10)+1)+"% "+ChatColor.BLUE+"Critical Chance"); } if (Math.random()<=0.2) { ourLore.add(ChatColor.YELLOW+"+"+((int)(Math.random()*3)+1)+" "+ChatColor.BLUE+"Armor Penetration"); } if (Math.random()<=0.2) { ourLore.add(ChatColor.YELLOW+"+"+((int)(Math.random()*10)+1)+"% "+ChatColor.BLUE+"Life Steal"); } if (Math.random()<=0.2) { ourLore.add(ChatColor.YELLOW+"+"+((int)(Math.random()*30)+1)+"% "+ChatColor.BLUE+"Attack Speed"); } if (Math.random()<=0.2) { ourLore.add(ChatColor.YELLOW+"+"+((int)(Math.random()*5)+1)+" "+ChatColor.BLUE+"Damage"); } ItemMeta meta1 = item.getItemMeta(); meta1.setLore(ourLore); if (rarity==1) { meta.setDisplayName(ChatColor.BLUE+"Rare "+convertToItemName(item.getType().name().replace("_", " "))); } if (rarity==2) { meta.setDisplayName(ChatColor.YELLOW+""+ChatColor.BOLD+"Legendary "+convertToItemName(item.getType().name().replace("_", " "))); } item.setItemMeta(meta1); } else { int enchants[] = {0,1,2,3,4,5,6,7,34}; for (int j=0;j<enchants.length;j++) { if (Math.random()<1.0d/enchants.length) { if (rarity==2) { item.addUnsafeEnchantment(Enchantment.getById(enchants[j]), (int)(Math.random()*10)+1); } else { item.addUnsafeEnchantment(Enchantment.getById(enchants[j]), (int)(Math.random()*6)+1); } } } List<String> ourLore = new ArrayList<String>(); if (rarity==2) { if (Math.random()<=0.2) { ourLore.add(ChatColor.YELLOW+"+"+((int)(Math.random()*16)+1)+" "+ChatColor.BLUE+"Health"); } else if (Math.random()<=0.2) { ourLore.add(ChatColor.YELLOW+"+"+((int)(Math.random()*40)+1)+"% "+ChatColor.BLUE+"Damage Reduction"); } else if (Math.random()<=0.2) { ourLore.add(ChatColor.YELLOW+"+"+(((int)(Math.random()*200)+1)*10)+"% "+ChatColor.BLUE+"Durability"); } else if (Math.random()<=0.2) { ourLore.add(ChatColor.YELLOW+"+"+((int)(Math.random()*40)+1)+"% "+ChatColor.BLUE+"Block Chance"); } else { ourLore.add(ChatColor.YELLOW+"+"+((int)(Math.random()*40)+1)+"% "+ChatColor.BLUE+"Speed Boost Chance"); } } else if (rarity==1) { if (Math.random()<=0.2) { ourLore.add(ChatColor.YELLOW+"+"+((int)(Math.random()*8)+1)+" "+ChatColor.BLUE+"Health"); } else if (Math.random()<=0.2) { ourLore.add(ChatColor.YELLOW+"+"+((int)(Math.random()*20)+1)+"% "+ChatColor.BLUE+"Damage Reduction"); } else if (Math.random()<=0.2) { ourLore.add(ChatColor.YELLOW+"+"+(((int)(Math.random()*100)+1)*10)+"% "+ChatColor.BLUE+"Durability"); } else if (Math.random()<=0.2) { ourLore.add(ChatColor.YELLOW+"+"+((int)(Math.random()*20)+1)+"% "+ChatColor.BLUE+"Block Chance"); } else { ourLore.add(ChatColor.YELLOW+"+"+((int)(Math.random()*20)+1)+"% "+ChatColor.BLUE+"Speed Boost Chance"); } if (Math.random()<=0.2) { ourLore.add(ChatColor.YELLOW+"+"+((int)(Math.random()*8)+1)+" "+ChatColor.BLUE+"Health"); } else if (Math.random()<=0.2) { ourLore.add(ChatColor.YELLOW+"+"+((int)(Math.random()*20)+1)+"% "+ChatColor.BLUE+"Damage Reduction"); } else if (Math.random()<=0.2) { ourLore.add(ChatColor.YELLOW+"+"+(((int)(Math.random()*100)+1)*10)+"% "+ChatColor.BLUE+"Durability"); } else if (Math.random()<=0.2) { ourLore.add(ChatColor.YELLOW+"+"+((int)(Math.random()*20)+1)+"% "+ChatColor.BLUE+"Block Chance"); } else { ourLore.add(ChatColor.YELLOW+"+"+((int)(Math.random()*20)+1)+"% "+ChatColor.BLUE+"Speed Boost Chance"); } } else { if (Math.random()<=0.2) { ourLore.add(ChatColor.YELLOW+"+"+((int)(Math.random()*4)+1)+" "+ChatColor.BLUE+"Health"); } if (Math.random()<=0.2) { ourLore.add(ChatColor.YELLOW+"+"+((int)(Math.random()*10)+1)+"% "+ChatColor.BLUE+"Damage Reduction"); } if (Math.random()<=0.2) { ourLore.add(ChatColor.YELLOW+"+"+(((int)(Math.random()*50)+1)*10)+"% "+ChatColor.BLUE+"Durability"); } if (Math.random()<=0.2) { ourLore.add(ChatColor.YELLOW+"+"+((int)(Math.random()*10)+1)+"% "+ChatColor.BLUE+"Block Chance"); } if (Math.random()<=0.2) { ourLore.add(ChatColor.YELLOW+"+"+((int)(Math.random()*10)+1)+"% "+ChatColor.BLUE+"Speed Boost Chance"); } } ItemMeta meta1 = item.getItemMeta(); meta1.setLore(ourLore); if (rarity==1) { meta.setDisplayName(ChatColor.BLUE+"Rare "+convertToItemName(item.getType().name().replace("_", " "))); } if (rarity==2) { meta.setDisplayName(ChatColor.YELLOW+""+ChatColor.BOLD+"Legendary "+convertToItemName(item.getType().name().replace("_", " "))); } item.setItemMeta(meta1); } } p.getInventory().addItem(item); ItemStack wand = new ItemStack(Material.getMaterial(127)); ItemMeta wand_meta = wand.getItemMeta(); wand_meta.setDisplayName(ChatColor.RED+"P"+ ChatColor.GOLD+"o"+ChatColor.YELLOW+"l"+ ChatColor.GREEN+"y"+ChatColor.BLUE+"m"+ ChatColor.LIGHT_PURPLE+"o"+ChatColor.DARK_RED+"r" +ChatColor.DARK_GREEN+"p"+ChatColor.DARK_PURPLE+"h"+ChatColor.RESET+" Wand"); List<String> newLore = new ArrayList<String>(); newLore.add("A "+ChatColor.YELLOW+"[Halloween]"+ChatColor.DARK_PURPLE+""+ChatColor.ITALIC+" item received as a reward"); newLore.add("for participating in the event. This item can"); newLore.add("turn a creature into another creature."); newLore.add("Can be used once a minute."); wand_meta.setLore(newLore); wand.setItemMeta(wand_meta); p.getInventory().addItem(wand); p.addPotionEffect(new PotionEffect(PotionEffectType.INCREASE_DAMAGE,1728000,1)); p.addPotionEffect(new PotionEffect(PotionEffectType.HEALTH_BOOST,1728000,1)); p.addPotionEffect(new PotionEffect(PotionEffectType.REGENERATION,1728000,0)); } } },400); Bukkit.getScheduler().scheduleSyncDelayedTask(this.plugin, new Runnable() { @Override public void run() { Bukkit.broadcastMessage(ChatColor.GOLD+""+ChatColor.BOLD+""); Bukkit.broadcastMessage(ChatColor.GOLD+""+ChatColor.BOLD+"Again, thank you for participating, and everyone have a great night!"); } },600); Bukkit.getScheduler().scheduleSyncDelayedTask(this.plugin, new Runnable() { @Override public void run() { Bukkit.broadcastMessage(ChatColor.DARK_GRAY+""+ChatColor.ITALIC+" And so the Harrowing ends...."); } },700); Bukkit.getWorld("world").setDifficulty(Difficulty.HARD); this.plugin.harrowing_night=true; this.plugin.saveConfig(); } if (args[0].equalsIgnoreCase("spawn_dungeon") && args[1].equalsIgnoreCase("boss")) { //Empty the whole area. double xoffset = Math.random()*10+15; double zoffset = Math.random()*10+15; if (Math.random()<=0.5) { xoffset*=-1; } if (Math.random()<=0.5) { zoffset*=-1; } for (int j=-15;j<16;j++) { for (int y=0;y<10;y++) { for (int k=-15;k<16;k++) { Bukkit.getWorld("world").getBlockAt(p.getLocation().add(xoffset+j,y,zoffset+k)).setType(Material.AIR); } } } Bukkit.getLogger().info("Spawned a new boss area."); File file = new File("plugins/WorldEdit/schematics/boss.schematic"); if (file.exists()) { try { com.sk89q.worldedit.Vector v = new com.sk89q.worldedit.Vector(p.getLocation().getX()+xoffset-8, p.getLocation().getY(), p.getLocation().getZ()+zoffset-8); World worldf = Bukkit.getWorld("world"); BukkitWorld BWf = new BukkitWorld(worldf); EditSession es = new EditSession(BWf, 2000000); CuboidClipboard c1 = SchematicFormat.MCEDIT.load(file); c1.place(es, v, true); Bukkit.getWorld("world").getBlockAt(new Location(p.getWorld(),p.getLocation().getX()+xoffset, p.getLocation().getY()+2, p.getLocation().getZ()+zoffset)).setType(Material.COMMAND); } catch (DataException ex) { Bukkit.getLogger().warning("DataException while trying to create structure."); } catch (IOException ex) { Bukkit.getLogger().warning("IOException while trying to create structure."); } catch (MaxChangedBlocksException ex) { Bukkit.getLogger().warning("MaxChangedBlocksException while trying to create structure."); } } else { Bukkit.getLogger().warning(("File does not exist.")); } this.plugin.last_boss_dungeon_time=this.plugin.SERVER_TICK_TIME+12000; } if (args[0].equalsIgnoreCase("fatal_survivor") && args[1].equalsIgnoreCase("reset")) { boolean survivor=false; this.plugin.explorers.clear(); } if (args[0].equalsIgnoreCase("halloween") && args[1].equalsIgnoreCase("giant_pumpkin")) { if (this.plugin.getConfig().getBoolean("halloween-enabled")) { ItemStack item = new ItemStack(Material.PUMPKIN); ItemMeta meta = item.getItemMeta(); meta.setDisplayName(ChatColor.GREEN+"Giant Pumpkin"); List<String> lore = new ArrayList<String>(); lore.add("Place the Giant Pumpkin on an Orange"); lore.add("Block to start carving your pumpkin!"); meta.setLore(lore); item.setItemMeta(meta); p.getInventory().addItem(item); } this.plugin.saveConfig(); } if (args[0].equalsIgnoreCase("halloween") && args[1].equalsIgnoreCase("pie_label")) { if (this.plugin.getConfig().getBoolean("halloween-enabled")) { for (int i=1;i<11;i++) { ItemStack item = new ItemStack(Material.PUMPKIN_PIE); ItemMeta meta = item.getItemMeta(); meta.setDisplayName("Pie "+i); item.setItemMeta(meta); p.getInventory().addItem(item); } } this.plugin.saveConfig(); } if (args[0].equalsIgnoreCase("halloween") && args[1].equalsIgnoreCase("legendary_item")) { if (this.plugin.getConfig().getBoolean("halloween-enabled")) { giveLegendaryItem(p); } this.plugin.saveConfig(); } if (args[0].equalsIgnoreCase("halloween") && args[1].equalsIgnoreCase("break")) { if (this.plugin.getConfig().getBoolean("halloween-enabled")) { if (p.getItemInHand()!=null) { p.getItemInHand().setDurability((short)9000); } } this.plugin.saveConfig(); } } else if (cmd.getName().toLowerCase().equalsIgnoreCase("dungeon") && p.hasPermission("maintenance-mode-admin") && args.length==1) { //Dungeon x = new Dungeon(new Location(Bukkit.getWorld("world"),-8990,0,-4),new Location(Bukkit.getWorld("world"),50,255,50),Integer.valueOf(args[0])); } else if (cmd.getName().toLowerCase().equalsIgnoreCase("transfer") && args.length==1) { p.sendMessage("Usage: "+ChatColor.RED+"/transfer name money"+ChatColor.WHITE+" - Transfer money to a player."); } else if (cmd.getName().toLowerCase().equalsIgnoreCase("transfer") && args.length==2) { double amount = Double.parseDouble(args[1].replaceAll("[^0-9\\.]", "")); Player target = p.getServer().getPlayer(args[0]); if (target == null) { p.sendMessage(this.prefix + " " + this.offlinePlayer); } else if (target.getName().toLowerCase() == p.getName().toLowerCase()) { p.sendMessage(this.prefix + " " + this.cmdTransferSameNick); } else if (amount > playerBankBalance) { p.sendMessage(this.prefix + " " + this.notEnoughMoney); } else if (amount <= playerBankBalance) { double totalWithdraw = playerBankBalance - amount; double totalDeposit = amount + this.plugin.getAccountsConfig().getInt(target.getName().toLowerCase() + ".money"); this.plugin.getAccountsConfig().set(p.getName().toLowerCase().toLowerCase() + ".money", Double.valueOf(totalWithdraw)); this.plugin.getAccountsConfig().set(target.getName().toLowerCase() + ".money", Double.valueOf(totalDeposit)); //this.plugin.saveAccountsConfig(); if (amount > 1.0D) { p.sendMessage(this.prefix + " " + this.cmdTransferToPlayer1 + " " + amount + currencyPlural + " " + this.cmdTransferToPlayer2 + " " + target.getName().toLowerCase() + "��a."); target.sendMessage(this.prefix + " ��b" + p.getName().toLowerCase() + " " + this.cmdTransferToTarget1 + " " + amount + currencyPlural + "��a."); } else if (amount <= 1.0D) { p.sendMessage(this.prefix + " " + this.cmdTransferToPlayer1 + " " + amount + currencySingular + " " + this.cmdTransferToPlayer2 + " " + target.getName().toLowerCase() + "��a."); target.sendMessage(this.prefix + " ��b" + p.getName().toLowerCase() + " " + this.cmdTransferToTarget1 + " " + amount + currencySingular + "��a."); } } } else if (cmd.getName().toLowerCase().equalsIgnoreCase("sp") && args.length==1) { try { int readvalue = Integer.valueOf(args[0]); if (readvalue<=10 && readvalue>=1) { int statpoints = (this.plugin.getJobTotalLvs(p)/5+1)-this.plugin.getStatPointTotal(p); if (readvalue==10) { if (statpoints>=6) { this.plugin.getAccountsConfig().set(p.getName().toLowerCase().toLowerCase()+".stats.stat1", Integer.valueOf(this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat1")+6)); //this.plugin.saveAccountsConfig(); p.sendMessage("You added 1 stat point to Health Regeneration! "+ChatColor.BLUE+"You now have "+this.plugin.getStatBonus(0, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat1")/6)+" of extra health regeneration! (Every time you regenerate health, you get "+this.plugin.getStatBonus(0, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat1"))+" extra hearts!) "+((this.plugin.getJobTotalLvs(p)/5+1)-this.plugin.getStatPointTotal(p))+" stat point"+(((this.plugin.getJobTotalLvs(p)/5+1)-this.plugin.getStatPointTotal(p))==1?"":"s")+" left."); } else { p.sendMessage(ChatColor.RED+"You do not have enough stat points to get that stat! (You need 6.)"); } } else if (readvalue==9) { if (statpoints>=5) { this.plugin.getAccountsConfig().set(p.getName().toLowerCase().toLowerCase()+".stats.stat2", Integer.valueOf(this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat2")+5)); //this.plugin.saveAccountsConfig(); p.sendMessage("You added 1 stat point to block destroying speed! "+ChatColor.BLUE+"You now have "+this.plugin.getStatBonus(1, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat2")/5)+"% block destruction speed! "+((this.plugin.getJobTotalLvs(p)/5+1)-this.plugin.getStatPointTotal(p))+" stat point"+(((this.plugin.getJobTotalLvs(p)/5+1)-this.plugin.getStatPointTotal(p))==1?"":"s")+" left."); } else { p.sendMessage(ChatColor.RED+"You do not have enough stat points to get that stat! (You need 5.)"); } } else if (readvalue==8) { if (statpoints>=4) { this.plugin.getAccountsConfig().set(p.getName().toLowerCase().toLowerCase()+".stats.stat3", Integer.valueOf(this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat3")+4)); //this.plugin.saveAccountsConfig(); p.sendMessage("You added 1 stat point to block damage reduction! "+ChatColor.BLUE+"You now have "+this.plugin.getStatBonus(2, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat3")/4)+"% of damage taken reduced! "+((this.plugin.getJobTotalLvs(p)/5+1)-this.plugin.getStatPointTotal(p))+" stat point"+(((this.plugin.getJobTotalLvs(p)/5+1)-this.plugin.getStatPointTotal(p))==1?"":"s")+" left."); } else { p.sendMessage(ChatColor.RED+"You do not have enough stat points to get that stat! (You need 4.)"); } } else if (readvalue==6) { if (statpoints>=3) { this.plugin.getAccountsConfig().set(p.getName().toLowerCase().toLowerCase()+".stats.stat4", Integer.valueOf(this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat4")+3)); //this.plugin.saveAccountsConfig(); p.sendMessage("You added 1 stat point to temporary health! "+ChatColor.BLUE+"You now have "+this.plugin.getStatBonus(3, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat4")/4)+" extra temporary health. (Regenerates every 3 minutes.) "+((this.plugin.getJobTotalLvs(p)/5+1)-this.plugin.getStatPointTotal(p))+" stat point"+(((this.plugin.getJobTotalLvs(p)/5+1)-this.plugin.getStatPointTotal(p))==1?"":"s")+" left."); } else { p.sendMessage(ChatColor.RED+"You do not have enough stat points to get that stat! (You need 3.)"); } } else if (readvalue==7) { if (statpoints>=4) { this.plugin.getAccountsConfig().set(p.getName().toLowerCase().toLowerCase()+".stats.stat5", Integer.valueOf(this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat5")+4)); //this.plugin.saveAccountsConfig(); p.sendMessage("You added 1 stat point to armor penetration! "+ChatColor.BLUE+"You now have "+this.plugin.getStatBonus(4, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat5")/4)+" damage of armor penetration. Armor-Wearers will be more afraid of you! "+((this.plugin.getJobTotalLvs(p)/5+1)-this.plugin.getStatPointTotal(p))+" stat point"+(((this.plugin.getJobTotalLvs(p)/5+1)-this.plugin.getStatPointTotal(p))==1?"":"s")+" left."); } else { p.sendMessage(ChatColor.RED+"You do not have enough stat points to get that stat! (You need 4.)"); } } else if (readvalue==5) { if (statpoints>=3) { this.plugin.getAccountsConfig().set(p.getName().toLowerCase().toLowerCase()+".stats.stat6", Integer.valueOf(this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat6")+3)); //this.plugin.saveAccountsConfig(); p.sendMessage("You added 1 stat point to fire resistance! "+ChatColor.BLUE+"You now have "+this.plugin.getStatBonus(5, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat6")/3)+" seconds of fire resistance when you catch on fire. (Resets when you stop burning) "+((this.plugin.getJobTotalLvs(p)/5+1)-this.plugin.getStatPointTotal(p))+" stat point"+(((this.plugin.getJobTotalLvs(p)/5+1)-this.plugin.getStatPointTotal(p))==1?"":"s")+" left."); } else { p.sendMessage(ChatColor.RED+"You do not have enough stat points to get that stat! (You need 3.)"); } } else if (readvalue==4) { if (statpoints>=2) { this.plugin.getAccountsConfig().set(p.getName().toLowerCase().toLowerCase()+".stats.stat7", Integer.valueOf(this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat7")+2)); //this.plugin.saveAccountsConfig(); p.sendMessage("You added 1 stat point to base damage! "+ChatColor.BLUE+"You now have +"+this.plugin.getStatBonus(6, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat7")/2)+" base damage. "+((this.plugin.getJobTotalLvs(p)/5+1)-this.plugin.getStatPointTotal(p))+" stat point"+(((this.plugin.getJobTotalLvs(p)/5+1)-this.plugin.getStatPointTotal(p))==1?"":"s")+" left."); } else { p.sendMessage(ChatColor.RED+"You do not have enough stat points to get that stat! (You need 2.)"); } } else if (readvalue==3) { if (statpoints>=2) { this.plugin.getAccountsConfig().set(p.getName().toLowerCase().toLowerCase()+".stats.stat8", Integer.valueOf(this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat8")+2)); //this.plugin.saveAccountsConfig(); p.sendMessage("You added 1 stat point to base health! "+ChatColor.BLUE+"You now have +"+this.plugin.getStatBonus(7, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat8")/2)+" base health. "+((this.plugin.getJobTotalLvs(p)/5+1)-this.plugin.getStatPointTotal(p))+" stat point"+(((this.plugin.getJobTotalLvs(p)/5+1)-this.plugin.getStatPointTotal(p))==1?"":"s")+" left."); } else { p.sendMessage(ChatColor.RED+"You do not have enough stat points to get that stat! (You need 2.)"); } } else if (readvalue==2) { if (statpoints>=1) { this.plugin.getAccountsConfig().set(p.getName().toLowerCase().toLowerCase()+".stats.stat9", Integer.valueOf(this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat9")+1)); //this.plugin.saveAccountsConfig(); p.sendMessage("You added 1 stat point to hunger decay! "+ChatColor.BLUE+"You now have "+this.plugin.getStatBonus(8, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat9"))+"% less hunger decay "+((this.plugin.getJobTotalLvs(p)/5+1)-this.plugin.getStatPointTotal(p))+" stat point"+(((this.plugin.getJobTotalLvs(p)/5+1)-this.plugin.getStatPointTotal(p))==1?"":"s")+" left."); } else { p.sendMessage(ChatColor.RED+"You do not have enough stat points to get that stat! (You need 1.)"); } } else if (readvalue==1) { if (statpoints>=1) { this.plugin.getAccountsConfig().set(p.getName().toLowerCase().toLowerCase()+".stats.stat10", Integer.valueOf(this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat10")+1)); //this.plugin.saveAccountsConfig(); p.sendMessage("You added 1 stat point to water breathing! "+ChatColor.BLUE+"You now have "+this.plugin.getStatBonus(9, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".stats.stat10"))+" seconds of water breathing. "+ChatColor.WHITE+((this.plugin.getJobTotalLvs(p)/5+1)-this.plugin.getStatPointTotal(p))+" stat point"+(((this.plugin.getJobTotalLvs(p)/5+1)-this.plugin.getStatPointTotal(p))==1?"":"s")+" left."); //Increase maximum air by 200 ticks. p.setMaximumAir(300+this.plugin.getStatBonus(9, this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase() + ".stats.stat10"))*20); } else { p.sendMessage(ChatColor.RED+"You do not have enough stat points to get that stat! (You need 1.)"); } } } else { p.sendMessage(ChatColor.RED+"Please choose an appropriate stat point slot (1-10)."); } } catch (NumberFormatException ex_e) { p.sendMessage(ChatColor.RED+"The inputted slot is not a valid number."); } } else if (cmd.getName().toLowerCase().equalsIgnoreCase("bankeconomy") && (args[0].equalsIgnoreCase("info")) && (p.hasPermission("bankeconomy.info"))) { if (args.length == 1) { if (playerBankBalance <= 1) p.sendMessage(this.prefix + " " + this.cmdInfo + " " + playerBankBalance + currencySingular + "��a."); else if (playerBankBalance > 1) p.sendMessage(this.prefix + " " + this.cmdInfo + " " + playerBankBalance + currencyPlural + "��a."); } else p.sendMessage(this.invARG); } else if (cmd.getName().toLowerCase().equalsIgnoreCase("bankeconomy") && (args[0].equalsIgnoreCase("check")) && (p.hasPermission("bankeconomy.check"))) { if (args.length == 1) { p.sendMessage(this.prefix + " " + this.usage + " " + this.cmdCheckARG1); } else if (args.length == 2) { Player target = p.getServer().getPlayer(args[1]); if (target == null) { p.sendMessage(this.prefix + " " + this.offlinePlayer); } else { int targetBalance = this.plugin.getAccountsConfig().getInt(target.getName().toLowerCase() + ".money"); if (targetBalance <= 1) p.sendMessage(this.prefix + "��a " + target.getName().toLowerCase() + this.cmdCheckReponsePlayer + " " + targetBalance + currencySingular); else if (targetBalance > 1) p.sendMessage(this.prefix + "��a " + target.getName().toLowerCase() + this.cmdCheckReponsePlayer + " " + targetBalance + currencyPlural); } } else { p.sendMessage(this.invARG); } } else if (cmd.getName().toLowerCase().equalsIgnoreCase("bankeconomy") && (args[0].equalsIgnoreCase("reset")) && (p.hasPermission("bankeconomy.reset"))) { if (args.length == 1) { p.sendMessage(this.prefix + " " + this.usage + " " + this.cmdResetARG1); } else if (args.length == 2) { Player target = p.getServer().getPlayer(args[1]); if (target == null) { p.sendMessage(this.prefix + " " + this.offlinePlayer); } else { this.plugin.getAccountsConfig().set(target.getName().toLowerCase() + ".money", Integer.valueOf(0)); //this.plugin.saveAccountsConfig(); p.sendMessage(this.prefix + " " + this.cmdResetToPlayer1 + " " + target.getName().toLowerCase() + this.cmdResetToPlayer2); target.sendMessage(this.prefix + " ��a" + p.getName().toLowerCase() + " " + this.cmdResetToTarget); } } else { p.sendMessage(this.invARG); } } else if ((args[0].equalsIgnoreCase("reload")) && (p.hasPermission("bankeconomy.reload"))) { if (args.length == 1) { p.sendMessage(this.prefix + " " + this.cmdReload); FileConfiguration conf = this.plugin.getConfig(); this.plugin.reloadConfig(); return conf == this.plugin.getConfig(); } p.sendMessage(this.invARG); } else if (cmd.getName().toLowerCase().equalsIgnoreCase("bankeconomy") && (args[0].equalsIgnoreCase("transfer")) && (p.hasPermission("bankeconomy.transfer"))) { if (args.length == 1) { p.sendMessage(this.prefix + " " + this.usage + " " + this.cmdTransferARG1); } else if (args.length == 2) { p.sendMessage(this.prefix + " " + this.cmdTransferARG2); } else if (args.length == 3) { double amount = Double.parseDouble(args[1].replaceAll("[^0-9\\.]", "")); Player target = p.getServer().getPlayer(args[2]); if (target == null) { p.sendMessage(this.prefix + " " + this.offlinePlayer); } else if (target.getName().toLowerCase() == p.getName().toLowerCase()) { p.sendMessage(this.prefix + " " + this.cmdTransferSameNick); } else if (amount > playerBankBalance) { p.sendMessage(this.prefix + " " + this.notEnoughMoney); } else if (amount <= playerBankBalance) { double totalWithdraw = playerBankBalance - amount; double totalDeposit = amount + this.plugin.getAccountsConfig().getInt(target.getName().toLowerCase() + ".money"); this.plugin.getAccountsConfig().set(p.getName().toLowerCase().toLowerCase() + ".money", Double.valueOf(totalWithdraw)); this.plugin.getAccountsConfig().set(target.getName().toLowerCase() + ".money", Double.valueOf(totalDeposit)); //this.plugin.saveAccountsConfig(); if (amount > 1.0D) { p.sendMessage(this.prefix + " " + this.cmdTransferToPlayer1 + " " + amount + currencyPlural + " " + this.cmdTransferToPlayer2 + " " + target.getName().toLowerCase() + "��a."); target.sendMessage(this.prefix + " ��b" + p.getName().toLowerCase() + " " + this.cmdTransferToTarget1 + " " + amount + currencyPlural + "��a."); } else if (amount <= 1.0D) { p.sendMessage(this.prefix + " " + this.cmdTransferToPlayer1 + " " + amount + currencySingular + " " + this.cmdTransferToPlayer2 + " " + target.getName().toLowerCase() + "��a."); target.sendMessage(this.prefix + " ��b" + p.getName().toLowerCase() + " " + this.cmdTransferToTarget1 + " " + amount + currencySingular + "��a."); } } } else { p.sendMessage(this.invARG); } } else if (cmd.getName().toLowerCase().equalsIgnoreCase("bankeconomy") && (args[0].equalsIgnoreCase("edit")) && (p.hasPermission("bankeconomy.edit"))) { if (args.length == 1) { p.sendMessage(this.prefix + " " + this.usage + " " + this.cmdEditARG1); p.sendMessage(this.prefix + " " + this.cmdEditAvaibleActions); } else if (args.length == 2) { p.sendMessage(this.prefix + " " + this.cmdTransferARG2); } else if (args.length == 3) { p.sendMessage(this.prefix + " " + this.cmdEditARG2); } else if (args.length == 4) { double amount = Double.parseDouble(args[3].replaceAll("[^0-9\\.]", "")); Player target = p.getServer().getPlayer(args[2]); if (target == null) { p.sendMessage(this.prefix + " " + this.offlinePlayer); } else if (args[1].equalsIgnoreCase("status")) { if (amount == 1.0D) { this.plugin.getAccountsConfig().set(target.getName().toLowerCase() + ".status", Boolean.valueOf(true)); //this.plugin.saveAccountsConfig(); p.sendMessage(this.prefix + " " + this.cmdEditEnableToPlayer1 + " " + p.getName().toLowerCase() + this.cmdEditEnableToPlayer2); } else if (amount == 0.0D) { this.plugin.getAccountsConfig().set(target.getName().toLowerCase() + ".status", Boolean.valueOf(false)); //this.plugin.saveAccountsConfig(); p.sendMessage(this.prefix + " " + this.cmdEditDisabledToPlayer1 + " " + p.getName().toLowerCase() + this.cmdEditDisabledToPlayer2); } } else if (args[1].equalsIgnoreCase("balance")) { this.plugin.getAccountsConfig().set(target.getName().toLowerCase() + ".money", Double.valueOf(amount)); //this.plugin.saveAccountsConfig(); if (amount > 1.0D) p.sendMessage(this.prefix + " " + this.cmdEditAmountSetPlayer1 + " ��b" + amount + currencyPlural + " " + this.cmdEditAmountSetPlayer2 + " " + target.getName().toLowerCase() + this.cmdEditAmountSetPlayer3); else if (amount <= 1.0D) p.sendMessage(this.prefix + " " + this.cmdEditAmountSetPlayer1 + " ��b" + amount + currencySingular + " " + this.cmdEditAmountSetPlayer2 + " " + target.getName().toLowerCase() + this.cmdEditAmountSetPlayer3); } else { p.sendMessage(this.prefix + " " + this.cmdEditAvaibleActions); } } else { p.sendMessage(this.invARG); } } else if (cmd.getName().toLowerCase().equalsIgnoreCase("revive") && args[0].equalsIgnoreCase("me")) { DecimalFormat df = new DecimalFormat("#0.00"); double deathX = this.plugin.getAccountsConfig().getDouble(p.getName().toLowerCase().toLowerCase() + ".deathpointX"); double deathY = this.plugin.getAccountsConfig().getDouble(p.getName().toLowerCase().toLowerCase() + ".deathpointY"); double deathZ = this.plugin.getAccountsConfig().getDouble(p.getName().toLowerCase().toLowerCase() + ".deathpointZ"); String deathWorld = this.plugin.getAccountsConfig().getString(p.getName().toLowerCase().toLowerCase() + ".deathworld"); //p.sendMessage("Got 1."); if (this.plugin.getAccountsConfig().getBoolean(p.getName().toLowerCase().toLowerCase() + ".revived")==false && this.plugin.SERVER_TICK_TIME-this.plugin.getAccountsConfig().getLong(p.getName().toLowerCase().toLowerCase() + ".revivetime")<12000) { double mincost = this.plugin.getConfig().getDouble("revive-cost-rate"); //p.sendMessage("Got 2."); if (p.getBedSpawnLocation()!=null) { mincost *= Math.abs(p.getBedSpawnLocation().getX()-deathX)+Math.abs(p.getBedSpawnLocation().getY()-deathY)+Math.abs(p.getBedSpawnLocation().getZ()-deathZ); } else { mincost *= Math.abs(p.getWorld().getSpawnLocation().getX()-deathX)+Math.abs(p.getWorld().getSpawnLocation().getY()-deathY)+Math.abs(p.getWorld().getSpawnLocation().getZ()-deathZ); } double mymoney = this.plugin.getAccountsConfig().getDouble(p.getName().toLowerCase().toLowerCase() + ".money"); double finalcost = (mincost*this.plugin.getConfig().getDouble("revive-cost-rate")) + (mymoney*this.plugin.getConfig().getDouble("revive-cost-tax")); if (this.plugin.PlayerinJob(p, "Explorer") && this.plugin.getJobLv("Explorer", p)>=20) { finalcost*=0.25; } //p.sendMessage("Got 3."); if (mymoney>=finalcost) { this.plugin.getAccountsConfig().set(p.getName().toLowerCase().toLowerCase() + ".revived", Boolean.valueOf(true)); this.plugin.getAccountsConfig().set(p.getName().toLowerCase().toLowerCase() + ".money", mymoney-finalcost); this.plugin.getAccountsConfig().set(p.getName().toLowerCase().toLowerCase() + ".revivetime", Long.valueOf(0)); //this.plugin.saveAccountsConfig(); //p.sendMessage("Got 4."); p.sendMessage("You spent $"+df.format(finalcost)+" to revive. New Bank Balance: $"+ChatColor.YELLOW+df.format(mymoney-finalcost)); //p.sendMessage("Got 5."); org.bukkit.Location teleportloc = p.getLocation(); if (p.getBedSpawnLocation()!=null) { teleportloc = p.getBedSpawnLocation(); } else { //Use world spawn point. teleportloc = p.getWorld().getSpawnLocation(); } teleportloc.setX(deathX); teleportloc.setY(deathY); teleportloc.setZ(deathZ); teleportloc.setWorld(Bukkit.getWorld(deathWorld)); //p.sendMessage("Got 6."); p.teleport(teleportloc); List<Entity> nearby = p.getNearbyEntities(30, 30, 30); for (int i=0;i<nearby.size();i++) { if (nearby.get(i) instanceof Monster) { LivingEntity l = (LivingEntity)nearby.get(i); if (l.getCustomName()!=null && (l.getCustomName().contains(ChatColor.GOLD+""+ChatColor.BOLD+"") || l.getCustomName().contains(ChatColor.DARK_PURPLE+"") || l.getCustomName().contains(ChatColor.DARK_AQUA+""))) { } else { nearby.get(i).remove(); } //Delete it from existence. } } //p.sendMessage("Got 7."); final Player p2 = p; p.setMaximumNoDamageTicks(100); p.setNoDamageTicks(100); Bukkit.getScheduler().scheduleSyncDelayedTask(this.plugin, new Runnable() { @Override public void run() { //After 5 seconds, set the no Damage Ticks back to normal. p2.setMaximumNoDamageTicks(20); } },100); Bukkit.broadcastMessage(ChatColor.GREEN+p.getName().toLowerCase()+ChatColor.WHITE+" decided to revive."); } else { p.sendMessage("You cannot revive. You need to have $"+df.format(finalcost)+" to do so."); } } else { p.sendMessage("You haven't died. So you cannot revive."); } //this.plugin.saveAccountsConfig(); return true; } else if (cmd.getName().toLowerCase().equalsIgnoreCase("revive") && (args[0].equalsIgnoreCase("amount"))) { DecimalFormat df = new DecimalFormat("#0.00"); double deathX = p.getLocation().getX(); double deathY = p.getLocation().getY(); double deathZ = p.getLocation().getZ(); double mincost = this.plugin.getConfig().getDouble("revive-cost-rate"); if (p.getBedSpawnLocation()!=null) { mincost *= Math.abs(p.getBedSpawnLocation().getX()-deathX)+Math.abs(p.getBedSpawnLocation().getY()-deathY)+Math.abs(p.getBedSpawnLocation().getZ()-deathZ); } else { mincost *= Math.abs(p.getWorld().getSpawnLocation().getX()-deathX)+Math.abs(p.getWorld().getSpawnLocation().getY()-deathY)+Math.abs(p.getWorld().getSpawnLocation().getZ()-deathZ); } double mymoney = this.plugin.getAccountsConfig().getDouble(p.getName().toLowerCase().toLowerCase() + ".money"); double finalcost = (mincost*this.plugin.getConfig().getDouble("revive-cost-rate")) + (mymoney*this.plugin.getConfig().getDouble("revive-cost-tax")); if (this.plugin.PlayerinJob(p, "Explorer") && this.plugin.getJobLv("Explorer", p)>=20) { finalcost*=0.25; } p.sendMessage("You need to have $"+df.format(finalcost)+" to revive."); return true; } else if (cmd.getName().toLowerCase().equalsIgnoreCase("tele") && (args[0].equalsIgnoreCase("to"))) { DecimalFormat df = new DecimalFormat("#0.00"); if (p.getPlayerTime()-this.plugin.getAccountsConfig().getDouble(p.getName().toLowerCase().toLowerCase() + ".teletime")<400) { if (args.length==1) { p.sendMessage("Usage: "+ChatColor.RED+"/tele to "+ChatColor.GREEN+" <player>"+ChatColor.WHITE+" - Teleport to a player for a cost."); } else if (args.length==2) { //Teleport. Player target = p.getServer().getPlayer(args[1]); if (target == null) { p.sendMessage(this.prefix + " " + this.offlinePlayer); } else { boolean is_in_vehicle = false; Entity vehicle = null; if (p.isInsideVehicle()) { is_in_vehicle=true; vehicle = p.getVehicle(); } if (target.getName().toLowerCase() == this.plugin.getAccountsConfig().getString(p.getName().toLowerCase().toLowerCase() + ".teleplayer")) { //Determine distance of player to other player. double otherx = target.getLocation().getX(); double othery = target.getLocation().getY(); double otherz = target.getLocation().getZ(); double mymoney = this.plugin.getAccountsConfig().getDouble(p.getName().toLowerCase().toLowerCase() + ".money"); double finalcost = Math.abs(p.getLocation().getX()-otherx)+Math.abs(p.getLocation().getY()-othery)+Math.abs(p.getLocation().getZ()-otherz); finalcost *= this.plugin.getConfig().getDouble("teleport-cost-rate"); //finalcost += mymoney*this.plugin.getConfig().getDouble("teleport-cost-tax"); if (mymoney>=finalcost) { //Allow teleport to occur. this.plugin.getAccountsConfig().set(p.getName().toLowerCase().toLowerCase() + ".money", mymoney-finalcost); this.plugin.getAccountsConfig().set(p.getName().toLowerCase().toLowerCase() + ".teletime", Double.valueOf(0.0d)); //this.plugin.saveAccountsConfig(); if (this.plugin.PlayerinJob(p, "Support")) { //Give exp for doing so. //this.plugin.gainMoneyExp(p,"Support",0,100); } p.sendMessage("Teleported to "+ChatColor.GREEN+target.getName().toLowerCase()+ChatColor.WHITE+" for $"+ChatColor.YELLOW+df.format(finalcost)+ChatColor.WHITE+". New Account balance: $"+df.format(mymoney-finalcost)); target.sendMessage(ChatColor.GREEN+p.getName().toLowerCase()+ChatColor.WHITE+" teleported to your location."); if (is_in_vehicle) { vehicle.eject(); p.eject(); final Player p2 = p; final Player target2 = target; Bukkit.getScheduler().scheduleSyncDelayedTask(this.plugin, new Runnable() { @Override public void run() { if (target2.isInsideVehicle()) { p2.teleport(target2.getLocation().add(0,1,0)); } else { p2.teleport(target2); } } },5); } else { if (target.isInsideVehicle()) { p.teleport(target.getLocation().add(0,1,0)); } else { p.teleport(target); } } } else { p.sendMessage("You need $"+ChatColor.YELLOW+df.format(finalcost)+" in the bank to teleport to "+ChatColor.GREEN+target.getName().toLowerCase()+ChatColor.WHITE+"!"); } } else { //Setup another player. //Determine distance of player to other player. double otherx = target.getLocation().getX(); double othery = target.getLocation().getY(); double otherz = target.getLocation().getZ(); double mymoney = this.plugin.getAccountsConfig().getDouble(p.getName().toLowerCase().toLowerCase() + ".money"); double finalcost = Math.abs(p.getLocation().getX()-otherx)+Math.abs(p.getLocation().getY()-othery)+Math.abs(p.getLocation().getZ()-otherz); finalcost *= this.plugin.getConfig().getDouble("teleport-cost-rate"); //finalcost += mymoney*this.plugin.getConfig().getDouble("teleport-cost-tax"); if (mymoney>=finalcost) { //Allow teleport to occur. p.sendMessage("Teleporting to "+ChatColor.GREEN+target.getName().toLowerCase()+ChatColor.WHITE+" costs $"+ChatColor.YELLOW+df.format(finalcost)+". Type the command again to teleport."); this.plugin.getAccountsConfig().set(p.getName().toLowerCase().toLowerCase() + ".teletime", Double.valueOf(p.getPlayerTime())); this.plugin.getAccountsConfig().set(p.getName().toLowerCase().toLowerCase() + ".teleplayer", String.valueOf(target.getName().toLowerCase())); } else { p.sendMessage("Teleporting to "+ChatColor.GREEN+target.getName().toLowerCase()+ChatColor.WHITE+" costs $"+ChatColor.YELLOW+df.format(finalcost)+". You do not have enough in the bank for that."); } } } } } else { //Say how much it costs. If the player is found. = if (args.length==1) { p.sendMessage("Usage: "+ChatColor.RED+"/tele to "+ChatColor.GREEN+" <player>"+ChatColor.WHITE+" - Teleport to a player for a cost."); } else if (args.length==2) { //Teleport. Player target = p.getServer().getPlayer(args[1]); if (target == null) { p.sendMessage(this.prefix + " " + this.offlinePlayer); } else { //Determine distance of player to other player. double otherx = target.getLocation().getX(); double othery = target.getLocation().getY(); double otherz = target.getLocation().getZ(); double mymoney = this.plugin.getAccountsConfig().getDouble(p.getName().toLowerCase().toLowerCase() + ".money"); double finalcost = Math.abs(p.getLocation().getX()-otherx)+Math.abs(p.getLocation().getY()-othery)+Math.abs(p.getLocation().getZ()-otherz); finalcost *= this.plugin.getConfig().getDouble("teleport-cost-rate"); //finalcost += mymoney*this.plugin.getConfig().getDouble("teleport-cost-tax"); if (mymoney>=finalcost) { //Allow teleport to occur. p.sendMessage("Teleporting to "+ChatColor.GREEN+target.getName().toLowerCase()+ChatColor.WHITE+" costs $"+ChatColor.YELLOW+df.format(finalcost)+". Type the command again to teleport."); this.plugin.getAccountsConfig().set(p.getName().toLowerCase().toLowerCase() + ".teletime", Double.valueOf(p.getPlayerTime())); this.plugin.getAccountsConfig().set(p.getName().toLowerCase().toLowerCase() + ".teleplayer", String.valueOf(target.getName().toLowerCase())); } else { p.sendMessage("Teleporting to "+ChatColor.GREEN+target.getName().toLowerCase()+ChatColor.WHITE+" costs $"+ChatColor.YELLOW+df.format(finalcost)+". You do not have enough in the bank for that."); } } } } return true; } else if (cmd.getName().toLowerCase().equalsIgnoreCase("jobs") && args.length == 1 && args[0].equalsIgnoreCase("info")) { p.sendMessage("Usage: "+ChatColor.GREEN+"/jobs info [JobName]"+ChatColor.WHITE+" - Get information about a job."); p.sendMessage("Usage: "+ChatColor.GREEN+"/jobs info [JobName] "+ChatColor.LIGHT_PURPLE+"[lv]"+ChatColor.WHITE+" - Get information about a job at a certain job level."); p.sendMessage(" Type /jobs to see the jobs."); } else if (cmd.getName().toLowerCase().equalsIgnoreCase("jobs") && args.length == 1 && args[0].equalsIgnoreCase("join")) { p.sendMessage("Usage: "+ChatColor.GREEN+"/jobs join [JobName]"+ChatColor.WHITE+" - Join a job. Type /jobs to see the jobs."); } else if (cmd.getName().equalsIgnoreCase("jobs") && args.length == 1 && args[0].equalsIgnoreCase("members")) { p.sendMessage("Usage: "+ChatColor.GREEN+"/jobs members [JobName]"+ChatColor.WHITE+" - Check all members in a job."); } else if (cmd.getName().toLowerCase().equalsIgnoreCase("jobs") && args.length == 1 && args[0].equalsIgnoreCase("leave")) { p.sendMessage("Usage: "+ChatColor.GREEN+"/jobs leave [JobName]"+ChatColor.WHITE+" - Leave a job. Type /jobs stats to see your jobs."); } else if (cmd.getName().toLowerCase().equalsIgnoreCase("jobs") && args.length == 1 && args[0].equalsIgnoreCase("buffs")) { p.sendMessage("Usage: "+ChatColor.GREEN+"/jobs buffs [JobName]"+ChatColor.WHITE+" - Get buffs information about a job. Type /jobs to see the jobs."); } else if (cmd.getName().toLowerCase().equalsIgnoreCase("jobs") && args.length == 2 && args[0].equalsIgnoreCase("ultimate")) { //Attempt to join the job. this.plugin.setUltimate(p,args[1]); } else if (cmd.getName().toLowerCase().equalsIgnoreCase("jobs") && args.length == 2 && args[0].equalsIgnoreCase("boost")) { //Attempt to level up the job. this.plugin.levelUpJob(p,args[1]); } else if (cmd.getName().toLowerCase().equalsIgnoreCase("jobs") && args.length == 2 && args[0].equalsIgnoreCase("join")) { //Attempt to join the job. this.plugin.joinJob(p,args[1]); } else if (cmd.getName().toLowerCase().equalsIgnoreCase("jobs") && args.length == 2 && args[0].equalsIgnoreCase("leave")) { //Attempt to join the job. this.plugin.leaveJob(p,args[1]); } else if (cmd.getName().equalsIgnoreCase("jobs") && args.length == 2 && args[0].equalsIgnoreCase("members")) { JobsDataInfo[] Jobsinfo = {this.plugin.Woodcutter_job,this.plugin.Miner_job,this.plugin.Builder_job,this.plugin.Digger_job,this.plugin.Farmer_job,this.plugin.Hunter_job,this.plugin.Fisherman_job,this.plugin.Weaponsmith_job,this.plugin.Blacksmith_job,this.plugin.Cook_job,this.plugin.Brewer_job,this.plugin.Enchanter_job,this.plugin.Breeder_job,this.plugin.Explorer_job,this.plugin.Support_job}; boolean found=false; String job = ""; ChatColor job_color = null; for (int i=0;i<this.plugin.ValidJobs.length;i++) { if (this.plugin.ValidJobs[i].toLowerCase().equalsIgnoreCase(args[1])) { found=true; job = this.plugin.ValidJobs[i]; job_color = this.plugin.getJobColor(this.plugin.ValidJobs[i]); break; } } if (found) { if (this.plugin.getConfig().contains("jobs."+job+"_members")) { p.sendMessage("Players in the "+job_color+job+" job:"); String[] players = this.plugin.getConfig().getString("jobs."+job+"_members").split(", "); char lowest = 'z'+1; List<String> sorted_players = new ArrayList<String>(); for (int i=0;i<players.length;i++) { sorted_players.add(players[i]); //Add everyone to the list. } //Sort them. List<String> sorted_list_players = new ArrayList<String>(); int lowest_slot = -1; while (sorted_players.size()>0) { for (int i=0;i<sorted_players.size();i++) { if (sorted_players.get(i).length()>0) { //If it's 0, for some reason it didn't read this name right....Skip it. if (sorted_players.get(i).toCharArray()[0]<lowest) { lowest=sorted_players.get(i).toCharArray()[0]; lowest_slot=i; } } } if (lowest_slot!=-1) { sorted_list_players.add(sorted_players.get(lowest_slot)); sorted_players.remove(lowest_slot); lowest_slot=-1; lowest='z'+1; } } if (sorted_list_players.size()>0) { for (int i=0;i<sorted_list_players.size();i++) { OfflinePlayer q = Bukkit.getOfflinePlayer(sorted_list_players.get(i)); p.sendMessage(" "+q.getName()+ChatColor.GRAY+ChatColor.ITALIC+" (Lv"+this.plugin.getJobLv(job, q.getName().toLowerCase())+")"); } } else { p.sendMessage(ChatColor.GRAY+""+ChatColor.ITALIC+"- No one in this job yet. -"); } } else { p.sendMessage(ChatColor.GOLD+"Sorry, something bad happened! Please report this to an administrator."); } } else { p.sendMessage(ChatColor.RED+"Sorry, that is not a valid job!"); } } else if (cmd.getName().toLowerCase().equalsIgnoreCase("jobs") && (args.length == 2 || args.length==3) && args[0].equalsIgnoreCase("info")) { JobsDataInfo[] Jobsinfo = {this.plugin.Woodcutter_job,this.plugin.Miner_job,this.plugin.Builder_job,this.plugin.Digger_job,this.plugin.Farmer_job,this.plugin.Hunter_job,this.plugin.Fisherman_job,this.plugin.Weaponsmith_job,this.plugin.Blacksmith_job,this.plugin.Cook_job,this.plugin.Brewer_job,this.plugin.Enchanter_job,this.plugin.Breeder_job,this.plugin.Explorer_job,this.plugin.Support_job}; boolean found=false; int matchedjob=0; boolean error=false; for (int i=0;i<this.plugin.ValidJobs.length;i++) { if (this.plugin.ValidJobs[i].equalsIgnoreCase(args[1])) { //Found the job, display that data. if (args.length==2) { //Get slot this job is in for this player. String[] joblist = this.plugin.getJobs(p); int slot=0; for (int j=0;j<joblist.length;j++) { if (args[1].equalsIgnoreCase(joblist[j])) { slot=j; break; } } if (this.plugin.PlayerinJob(p, args[1])) { Jobsinfo[i].sendOutput(p,this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".jobs.job"+(slot+1)+"lv")); } else { Jobsinfo[i].sendOutput(p); } } else { Jobsinfo[i].sendOutput(p,(int)Double.parseDouble(args[2].replaceAll("[^0-9\\.]", ""))); error=true; } found=true; matchedjob=i; break; } } if (!error) { p.sendMessage(ChatColor.GOLD+"Job $$ Growth Rate: "+ChatColor.WHITE+Math.round(Jobsinfo[matchedjob].moneymult*100)+"% per level"); p.sendMessage(""); p.sendMessage(ChatColor.BLUE+"To see the buffs this job gives, type "+ChatColor.GREEN+" /jobs buffs "+args[1]+ChatColor.WHITE+"."); } if (!found) { p.sendMessage(ChatColor.GOLD+"That is not a valid job name."); p.sendMessage("Usage: "+ChatColor.GREEN+"/jobs info [JobName]"+ChatColor.WHITE+" - Get information about a job. Type /jobs to see the jobs."); } else { if (!this.plugin.PlayerinJob(p, args[1]) && this.plugin.getPlayerJobCount(p)<3) { p.sendMessage(""); p.sendMessage("To join this job, type "+ChatColor.GREEN+" /jobs join "+args[1]+ChatColor.WHITE+"."); } else { if (!this.plugin.PlayerinJob(p, args[1]) && this.plugin.getPlayerJobCount(p)==3) { p.sendMessage(""); p.sendMessage("You can't join this job until you leave a job with "+ChatColor.GREEN+" /jobs leave"+ChatColor.WHITE+"."); } } } p.sendMessage(""); } else if (cmd.getName().toLowerCase().equalsIgnoreCase("jobs") && (args.length == 2) && args[0].equalsIgnoreCase("buffs")) { JobsDataInfo[] Jobsinfo = {this.plugin.Woodcutter_job,this.plugin.Miner_job,this.plugin.Builder_job,this.plugin.Digger_job,this.plugin.Farmer_job,this.plugin.Hunter_job,this.plugin.Fisherman_job,this.plugin.Weaponsmith_job,this.plugin.Blacksmith_job,this.plugin.Cook_job,this.plugin.Brewer_job,this.plugin.Enchanter_job,this.plugin.Breeder_job,this.plugin.Explorer_job,this.plugin.Support_job}; boolean found=false; int slot=0; for (int i=0;i<this.plugin.ValidJobs.length;i++) { if (this.plugin.ValidJobs[i].equalsIgnoreCase(args[1])) { //This is a valid job. found=true; slot=i; break; } } if (!found) { p.sendMessage(ChatColor.GOLD+"That is not a valid job name."); p.sendMessage("Usage: "+ChatColor.GREEN+"/jobs buffs [JobName]"+ChatColor.WHITE+" - Get buffs information about a job. Type /jobs to see the jobs."); } else { p.sendMessage(""); p.sendMessage("Buffs for the "+args[1]+" job:"); p.sendMessage(""); p.sendMessage(ChatColor.BLUE+"Lv5 BUFF: "+ChatColor.WHITE+Jobsinfo[slot].lv5buff); p.sendMessage(""); p.sendMessage(ChatColor.GREEN+"Lv10 BUFF: "+ChatColor.WHITE+Jobsinfo[slot].lv10buff); p.sendMessage(""); p.sendMessage(ChatColor.GOLD+"Lv20 BUFF: "+ChatColor.WHITE+Jobsinfo[slot].lv20buff); p.sendMessage(""); p.sendMessage(ChatColor.RED+"Lv40 ULTI: "+ChatColor.WHITE+Jobsinfo[slot].lv40buff); p.sendMessage(""); p.sendMessage(ChatColor.ITALIC+"Note that only one ultimate buff can be chosen. And CANNOT BE CHANGED."); } } else if (cmd.getName().toLowerCase().equalsIgnoreCase("jobs") && (args.length == 1 || args.length==2) && args[0].equalsIgnoreCase("stats")) { if (args.length==1) { //Show your stats. p.sendMessage(""); p.sendMessage("Your jobs:"); String[] joblist=this.plugin.getJobs(p); for (int i=0;i<joblist.length;i++) { if (!joblist[i].equalsIgnoreCase("None")) { int mylv=this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".jobs.job"+(i+1)+"lv"); if (mylv==40) { p.sendMessage("Lv"+mylv+" "+this.plugin.getJobColor(joblist[i])+joblist[i]+ChatColor.WHITE+": "+Math.round(this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".jobs.job"+(i+1)+"exp"))+"xp "+ChatColor.BLUE+(mylv>=5?"+Lv5 Buff":"")+ChatColor.GREEN+(mylv>=10?" +Lv10 Buff":"")+ChatColor.GOLD+(mylv>=20?" +Lv20 Buff":"")); } else { p.sendMessage("Lv"+mylv+" "+this.plugin.getJobColor(joblist[i])+joblist[i]+ChatColor.WHITE+": "+Math.round(this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".jobs.job"+(i+1)+"exp"))+"/"+Math.round(this.plugin.getJobExp(joblist[i], this.plugin.getAccountsConfig().getInt(p.getName().toLowerCase().toLowerCase()+".jobs.job"+(i+1)+"lv")))+"xp "+ChatColor.BLUE+(mylv>=5?"+Lv5 Buff":"")+ChatColor.GREEN+(mylv>=10?" +Lv10 Buff":"")+ChatColor.GOLD+(mylv>=20?" +Lv20 Buff":"")); } if (joblist[i].equalsIgnoreCase("Explorer") && this.plugin.getJobLv(joblist[i], p)>=10) { //Check to see if the buff is on cooldown for this player or not. boolean discovered=false; long timeleft=0; for (int j=0;j<this.plugin.explorers.size();j++) { if (this.plugin.explorers.get(j).name.compareToIgnoreCase(p.getName().toLowerCase().toLowerCase())==0 && this.plugin.explorers.get(j).event==0) { discovered=true; timeleft=this.plugin.explorers.get(j).expiretime-this.plugin.SERVER_TICK_TIME; } } //Add-on message for explorer buff cooldown. DecimalFormat df = new DecimalFormat("00"); p.sendMessage(" "+ChatColor.ITALIC+ChatColor.GOLD+"Fatal Survivor Buff: "+ChatColor.RESET+((discovered)?((timeleft<=0)?ChatColor.GREEN+"Available":ChatColor.RED+"Unavailable"+ChatColor.ITALIC+ChatColor.WHITE+" Cooldown: "+df.format(timeleft/36000)+":"+df.format((timeleft/600)%60)+":"+df.format((timeleft/10)%60)):ChatColor.GREEN+"Available")); } } } } else { //Look for that player. First just see if they are online. boolean found=false; if (Bukkit.getPlayer(args[1])!=null) { //This is the player. Show job stats. p.sendMessage(""); p.sendMessage(Bukkit.getPlayer(args[1]).getName().toLowerCase()+"'s jobs:"); String[] joblist=this.plugin.getJobs(Bukkit.getPlayer(args[1])); for (int i=0;i<joblist.length;i++) { if (!joblist[i].equalsIgnoreCase("None")) { int mylv=this.plugin.getAccountsConfig().getInt(Bukkit.getPlayer(args[1]).getName().toLowerCase()+".jobs.job"+(i+1)+"lv"); if (mylv==40) { p.sendMessage("Lv"+mylv+" "+this.plugin.getJobColor(joblist[i])+joblist[i]+ChatColor.WHITE+": "+Math.round(this.plugin.getAccountsConfig().getInt(Bukkit.getPlayer(args[1]).getName().toLowerCase()+".jobs.job"+(i+1)+"exp"))+"xp "+ChatColor.BLUE+(mylv>=5?"+Lv5 Buff":"")+ChatColor.GREEN+(mylv>=10?" +Lv10 Buff":"")+ChatColor.GOLD+(mylv>=20?" +Lv20 Buff":"")); } else { p.sendMessage("Lv"+mylv+" "+this.plugin.getJobColor(joblist[i])+joblist[i]+ChatColor.WHITE+": "+Math.round(this.plugin.getAccountsConfig().getInt(Bukkit.getPlayer(args[1]).getName().toLowerCase()+".jobs.job"+(i+1)+"exp"))+"/"+Math.round(this.plugin.getJobExp(joblist[i], this.plugin.getAccountsConfig().getInt(Bukkit.getPlayer(args[1]).getName().toLowerCase()+".jobs.job"+(i+1)+"lv")))+"xp "+ChatColor.BLUE+(mylv>=5?"+Lv5 Buff":"")+ChatColor.GREEN+(mylv>=10?" +Lv10 Buff":"")+ChatColor.GOLD+(mylv>=20?" +Lv20 Buff":"")); } if (joblist[i].equalsIgnoreCase("Explorer") && this.plugin.getJobLv(joblist[i], Bukkit.getPlayer(args[1]))>=10) { //Check to see if the buff is on cooldown for this player or not. boolean discovered=false; long timeleft=0; for (int j=0;j<this.plugin.explorers.size();j++) { if (this.plugin.explorers.get(j).name.compareToIgnoreCase(Bukkit.getPlayer(args[1]).getName().toLowerCase())==0 && this.plugin.explorers.get(j).event==0) { discovered=true; timeleft=this.plugin.explorers.get(j).expiretime-this.plugin.SERVER_TICK_TIME; } } //Add-on message for explorer buff cooldown. DecimalFormat df = new DecimalFormat("00"); p.sendMessage(" "+ChatColor.ITALIC+ChatColor.GOLD+"Fatal Survivor Buff: "+ChatColor.RESET+((discovered)?((timeleft<=0)?ChatColor.GREEN+"Available":ChatColor.RED+"Unavailable"+ChatColor.ITALIC+ChatColor.WHITE+" Cooldown: "+df.format(timeleft/36000)+":"+df.format((timeleft/600)%60)+":"+df.format((timeleft/10)%60)):ChatColor.GREEN+"Available")); } } } found=true; } if (!found) { OfflinePlayer q = Bukkit.getOfflinePlayer(args[1]); //Try a search in the config directly. if (this.plugin.getAccountsConfig().contains(q.getName().toLowerCase())) { //This player seems to exist. Check out their stats. p.sendMessage(""); p.sendMessage(q.getName().toLowerCase()+"'s jobs:"); String[] joblist=this.plugin.getJobs(q.getName().toLowerCase()); for (int i=0;i<joblist.length;i++) { if (!joblist[i].equalsIgnoreCase("None")) { int mylv=this.plugin.getAccountsConfig().getInt(q.getName().toLowerCase()+".jobs.job"+(i+1)+"lv"); if (mylv==40) { p.sendMessage("Lv"+mylv+" "+this.plugin.getJobColor(joblist[i])+joblist[i]+ChatColor.WHITE+": "+Math.round(this.plugin.getAccountsConfig().getInt(q.getName().toLowerCase()+".jobs.job"+(i+1)+"exp"))+"xp "+ChatColor.BLUE+(mylv>=5?"+Lv5 Buff":"")+ChatColor.GREEN+(mylv>=10?" +Lv10 Buff":"")+ChatColor.GOLD+(mylv>=20?" +Lv20 Buff":"")); } else { p.sendMessage("Lv"+mylv+" "+this.plugin.getJobColor(joblist[i])+joblist[i]+ChatColor.WHITE+": "+Math.round(this.plugin.getAccountsConfig().getInt(q.getName().toLowerCase()+".jobs.job"+(i+1)+"exp"))+"/"+Math.round(this.plugin.getJobExp(joblist[i], this.plugin.getAccountsConfig().getInt(q.getName().toLowerCase()+".jobs.job"+(i+1)+"lv")))+"xp "+ChatColor.BLUE+(mylv>=5?"+Lv5 Buff":"")+ChatColor.GREEN+(mylv>=10?" +Lv10 Buff":"")+ChatColor.GOLD+(mylv>=20?" +Lv20 Buff":"")); } } if (joblist[i].equalsIgnoreCase("Explorer") && this.plugin.getJobLv(joblist[i], q.getName().toLowerCase())>=10) { //Check to see if the buff is on cooldown for this player or not. boolean discovered=false; long timeleft=0; for (int j=0;j<this.plugin.explorers.size();j++) { if (this.plugin.explorers.get(j).name.compareToIgnoreCase(q.getName().toLowerCase())==0 && this.plugin.explorers.get(j).event==0) { discovered=true; timeleft=this.plugin.explorers.get(j).expiretime-this.plugin.SERVER_TICK_TIME; } } //Add-on message for explorer buff cooldown. DecimalFormat df = new DecimalFormat("00"); p.sendMessage(" "+ChatColor.ITALIC+ChatColor.GOLD+"Fatal Survivor Buff: "+ChatColor.RESET+((discovered)?((timeleft<=0)?ChatColor.GREEN+"Available":ChatColor.RED+"Unavailable"+ChatColor.ITALIC+ChatColor.WHITE+" Cooldown: "+df.format(timeleft/36000)+":"+df.format((timeleft/600)%60)+":"+df.format((timeleft/10)%60)):ChatColor.GREEN+"Available")); } } found=true; } } if (!found) { p.sendMessage(ChatColor.GOLD+"Could not find player!"); } } } else { p.sendMessage(this.invARGT2); } } } return false; } }