Advertisement
Guest User

Untitled

a guest
Jan 31st, 2016
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 96.39 KB | None | 0 0
  1. package me.wazup.kitbattle;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.ResultSet;
  6. import java.sql.SQLException;
  7. import java.sql.Statement;
  8. import java.util.ArrayList;
  9. import java.util.Arrays;
  10. import java.util.Collection;
  11. import java.util.HashMap;
  12. import java.util.Iterator;
  13. import java.util.List;
  14. import java.util.Random;
  15. import java.util.Set;
  16. import java.util.UUID;
  17. import java.util.logging.Logger;
  18. import net.milkbowl.vault.economy.Economy;
  19. import org.bukkit.Bukkit;
  20. import org.bukkit.ChatColor;
  21. import org.bukkit.GameMode;
  22. import org.bukkit.Location;
  23. import org.bukkit.Material;
  24. import org.bukkit.Server;
  25. import org.bukkit.SkullType;
  26. import org.bukkit.World;
  27. import org.bukkit.block.Block;
  28. import org.bukkit.block.BlockFace;
  29. import org.bukkit.block.BlockState;
  30. import org.bukkit.block.Skull;
  31. import org.bukkit.command.Command;
  32. import org.bukkit.command.CommandSender;
  33. import org.bukkit.configuration.ConfigurationSection;
  34. import org.bukkit.configuration.file.FileConfiguration;
  35. import org.bukkit.entity.Entity;
  36. import org.bukkit.entity.Player;
  37. import org.bukkit.inventory.Inventory;
  38. import org.bukkit.inventory.ItemStack;
  39. import org.bukkit.inventory.PlayerInventory;
  40. import org.bukkit.inventory.meta.ItemMeta;
  41. import org.bukkit.plugin.PluginDescriptionFile;
  42. import org.bukkit.plugin.PluginManager;
  43. import org.bukkit.plugin.RegisteredServiceProvider;
  44. import org.bukkit.plugin.ServicesManager;
  45. import org.bukkit.plugin.java.JavaPlugin;
  46. import org.bukkit.potion.PotionEffect;
  47. import org.bukkit.potion.PotionEffectType;
  48. import org.bukkit.scheduler.BukkitRunnable;
  49. import org.bukkit.scheduler.BukkitScheduler;
  50. import org.bukkit.scheduler.BukkitTask;
  51. import org.bukkit.scoreboard.DisplaySlot;
  52. import org.bukkit.scoreboard.Objective;
  53. import org.bukkit.scoreboard.Score;
  54. import org.bukkit.scoreboard.Scoreboard;
  55. import org.bukkit.scoreboard.ScoreboardManager;
  56.  
  57. public class main
  58. extends JavaPlugin
  59. {
  60. public static main plugin;
  61. Logger logger = Logger.getLogger("Minecraft");
  62. List<String> commands = Arrays.asList(new String[] { "admin", "list", "create", "delete", "setspawn", "join", "leave", "reset", "coins", "setchallenge", "kit", "kitunlocker", "resetkit", "stats", "reload", "info" });
  63. String kb = ChatColor.DARK_AQUA + "[" + ChatColor.AQUA + "KitBattle" + ChatColor.DARK_AQUA + "] " + ChatColor.GRAY;
  64. Random random = new Random();
  65. String ListOfMaps = null;
  66. HashMap<String, Location> maps = new HashMap();
  67. HashMap<String, PlayerData> playerData = new HashMap();
  68. HashMap<String, Kit> Kits = new HashMap();
  69. HashMap<String, Rank> Ranks = new HashMap();
  70. HashMap<String, String> Challenging = new HashMap();
  71. HashMap<String, BukkitTask> Fighting = new HashMap();
  72. ArrayList<String> game = new ArrayList();
  73. ArrayList<String> cantMove = new ArrayList();
  74. ArrayList<String> openingKitunlocker = new ArrayList();
  75. ItemStack KitSelector = setName(new ItemStack(Material.CHEST), ChatColor.GRAY + "Kit Selector (" + ChatColor.GREEN + "Right click!" + ChatColor.GRAY + ")");
  76. ItemStack ShopOpener = setName(new ItemStack(Material.ANVIL), ChatColor.GRAY + "Shop (" + ChatColor.GREEN + "Right click!" + ChatColor.GRAY + ")");
  77. ItemStack Challenger = setName(new ItemStack(Material.BLAZE_ROD), ChatColor.GREEN + "Right click a player to challenge him!");
  78. ItemStack KitUnlocker = setName(new ItemStack(Material.CHEST), ChatColor.GRAY + "Kit Unlocker! (" + ChatColor.GREEN + "Right click!" + ChatColor.GRAY + ")");
  79. listener listen;
  80. AbilityListener abilityListener;
  81. Config config;
  82. FileManager fileManager;
  83. Messages msgs;
  84. public static Economy econ = null;
  85. Connection connection;
  86. ScoreboardManager manager;
  87. Location challengeLocation1;
  88. Location challengeLocation2;
  89. String currentMap = null;
  90. Iterator<String> shuffler;
  91. String playerNamePrefix = "player_name";
  92. BukkitTask Updater;
  93. int totalUpdates = 0;
  94. long nextUpdate;
  95.  
  96. public void onEnable()
  97. {
  98. loadConfig0();this.logger.info("[KitBattle] has been enabled!");
  99. plugin = this;
  100. this.fileManager = new FileManager(this);
  101. this.fileManager.setupAll();
  102. this.fileManager.setupKits();
  103. this.fileManager.loadKits();
  104. this.fileManager.setupRanks();
  105. this.fileManager.loadRanks();
  106. this.fileManager.setupAbilities();
  107.  
  108. this.msgs = new Messages(this.fileManager);
  109. this.msgs.createDefaultMessages();
  110. this.msgs.loadMessages();
  111.  
  112. this.config = new Config(this);
  113. this.config.loadConfig();
  114. this.config.loadAbilities();
  115. this.config.loadSignPrefixes();
  116.  
  117. this.kb = this.msgs.prefix;
  118. this.listen = new listener(this, this.kb);
  119. this.abilityListener = new AbilityListener(this, this.kb);
  120. Bukkit.getPluginManager().registerEvents(this.listen, this);
  121. Bukkit.getPluginManager().registerEvents(this.abilityListener, this);
  122. this.manager = Bukkit.getScoreboardManager();
  123. if (getConfig().getBoolean("use-Vault"))
  124. {
  125. setupEcon();
  126. if (econ != null) {
  127. this.logger.info("[KitBattle] Found vault! The option to use vault is enabled, due to that the plugin will use vault instead of coins");
  128. } else {
  129. this.logger.info("[KitBattle] The option to use vault is enabled, but Vault doesn't seem to be installed! due to that the plugin will continue using coins system");
  130. }
  131. }
  132. if (this.config.useMySQL) {
  133. new BukkitRunnable()
  134. {
  135. public void run()
  136. {
  137. try
  138. {
  139. main.this.connection = DriverManager.getConnection("jdbc:mysql://" + main.this.config.mysqlhost + ":" + main.this.config.mysqlport + "/" + main.this.config.mysqldatabase, main.this.config.mysqlusername, main.this.config.mysqlpassword);
  140. main.this.connection.createStatement().executeUpdate("CREATE TABLE IF NOT EXISTS " + main.this.config.tableprefix + " (player_uuid VARCHAR(40), player_name VARCHAR(40), Coins int, Kills int, Deaths int, Exp int, Rank VARCHAR(20), Kitunlockers int, Kits VARCHAR(9999))");
  141. main.this.fixUpdater();
  142. }
  143. catch (SQLException localSQLException)
  144. {
  145. localSQLException.printStackTrace();
  146. }
  147. }
  148. }.runTaskAsynchronously(this);
  149. } else {
  150. fixUpdater();
  151. }
  152. Player[] arrayOfPlayer;
  153. int j = (arrayOfPlayer = Bukkit.getOnlinePlayers()).length;
  154. for (int i = 0; i < j; i++)
  155. {
  156. Player localPlayer = arrayOfPlayer[i];
  157. this.playerData.put(localPlayer.getName(), new PlayerData(localPlayer, this));
  158. }
  159. Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable()
  160. {
  161. public void run()
  162. {
  163. main.this.loadMaps();
  164. main.this.updateList();
  165. main.this.loadChallengeLocation();
  166. if (main.this.config.BungeeMode)
  167. {
  168. Player[] arrayOfPlayer;
  169. int j;
  170. int i;
  171. Player localPlayer;
  172. if (!main.this.maps.isEmpty())
  173. {
  174. main.this.shuffler = main.this.maps.keySet().iterator();
  175. if ((main.this.maps.size() > 1) && (main.this.config.MapShuffle)) {
  176. main.this.startShuffler();
  177. } else {
  178. main.this.currentMap = ((String)main.this.shuffler.next());
  179. }
  180. j = (arrayOfPlayer = Bukkit.getOnlinePlayers()).length;
  181. for (i = 0; i < j; i++)
  182. {
  183. localPlayer = arrayOfPlayer[i];
  184. localPlayer.sendMessage(main.this.kb + main.this.msgs.PlayerJoinMap.replace("%map%", main.this.currentMap));
  185. main.this.game.add(localPlayer.getName());
  186. localPlayer.teleport((Location)main.this.maps.get(main.this.currentMap));
  187. ((PlayerData)main.this.playerData.get(localPlayer.getName())).saveData(localPlayer, main.this.currentMap);
  188. main.this.clearData(localPlayer);
  189. main.this.giveDefaultItems(localPlayer);
  190. try
  191. {
  192. main.this.createScoreboard(localPlayer);
  193. }
  194. catch (Exception localException)
  195. {
  196. main.this.logger.info("[KitBattle] Couldn't create a scoreboard for the player " + localPlayer.getName() + "! the player stats probably didn't load quickly enough");
  197. localException.printStackTrace();
  198. }
  199. }
  200. }
  201. else
  202. {
  203. j = (arrayOfPlayer = Bukkit.getOnlinePlayers()).length;
  204. for (i = 0; i < j; i++)
  205. {
  206. localPlayer = arrayOfPlayer[i];
  207. localPlayer.kickPlayer(main.this.kb + main.this.msgs.NoAvailableMaps);
  208. }
  209. }
  210. }
  211. }
  212. }, getConfig().getInt("Load-Delay"));
  213. if (this.config.UUID) {
  214. this.playerNamePrefix = "player_uuid";
  215. }
  216. }
  217.  
  218. public void onDisable()
  219. {
  220. this.logger.info("[KitBattle] has been disabled!");
  221. Object localObject;
  222. for (Iterator localIterator1 = this.game.iterator(); localIterator1.hasNext();)
  223. {
  224. localObject = (String)localIterator1.next();
  225. Player localPlayer = Bukkit.getPlayer((String)localObject);
  226. localPlayer.sendMessage(this.kb + this.msgs.pluginReloadKickMessage);
  227. clearData(localPlayer);
  228. ((PlayerData)this.playerData.get(localPlayer.getName())).restoreData(localPlayer);
  229. }
  230. for (localIterator1 = this.abilityListener.toRemove.iterator(); localIterator1.hasNext();)
  231. {
  232. localObject = (Entity)localIterator1.next();
  233. ((Entity)localObject).remove();
  234. }
  235. Player[] arrayOfPlayer;
  236. int j = (arrayOfPlayer = Bukkit.getOnlinePlayers()).length;
  237. for (int i = 0; i < j; i++)
  238. {
  239. localObject = arrayOfPlayer[i];
  240. ((PlayerData)this.playerData.get(((Player)localObject).getName())).saveStatsIntoFile((Player)localObject, true);
  241. }
  242. for (Iterator localIterator2 = this.abilityListener.toRollback.iterator(); localIterator2.hasNext();)
  243. {
  244. localObject = (BlockState)localIterator2.next();
  245. this.abilityListener.Rollback((BlockState)localObject);
  246. }
  247. }
  248.  
  249. public boolean onCommand(final CommandSender paramCommandSender, Command paramCommand, String paramString, final String[] paramArrayOfString)
  250. {
  251. if ((paramString.equalsIgnoreCase("kb")) || (paramString.equalsIgnoreCase("kitbattle")))
  252. {
  253. if (paramArrayOfString.length == 0)
  254. {
  255. paramCommandSender.sendMessage(ChatColor.DARK_AQUA + ChatColor.STRIKETHROUGH + " ----------" + ChatColor.AQUA + " KitBattle " + ChatColor.DARK_AQUA + ChatColor.STRIKETHROUGH + "----------");
  256. paramCommandSender.sendMessage(ChatColor.DARK_AQUA + " - " + ChatColor.AQUA + "/kb" + ChatColor.DARK_AQUA + " - " + ChatColor.GRAY + "Main command");
  257. paramCommandSender.sendMessage(ChatColor.DARK_AQUA + " - " + ChatColor.AQUA + "/kb " + ChatColor.GREEN + "List" + ChatColor.DARK_AQUA + " - " + ChatColor.GRAY + "Shows a list of maps");
  258. paramCommandSender.sendMessage(ChatColor.DARK_AQUA + " - " + ChatColor.AQUA + "/kb " + ChatColor.GREEN + "Stats" + ChatColor.DARK_AQUA + " - " + ChatColor.GRAY + "View your stats");
  259. if (!this.config.BungeeMode)
  260. {
  261. paramCommandSender.sendMessage(ChatColor.DARK_AQUA + " - " + ChatColor.AQUA + "/kb " + ChatColor.GREEN + "Join" + ChatColor.DARK_AQUA + " - " + ChatColor.GRAY + "Join the selected map");
  262. paramCommandSender.sendMessage(ChatColor.DARK_AQUA + " - " + ChatColor.AQUA + "/kb " + ChatColor.GREEN + "Leave" + ChatColor.DARK_AQUA + " - " + ChatColor.GRAY + "Leave your current map");
  263. }
  264. paramCommandSender.sendMessage(ChatColor.DARK_AQUA + " - " + ChatColor.AQUA + "/kb " + ChatColor.GREEN + "Resetkit" + ChatColor.DARK_AQUA + " - " + ChatColor.GRAY + "Reset your current kit!");
  265. paramCommandSender.sendMessage(ChatColor.DARK_AQUA + " - " + ChatColor.AQUA + "/kb " + ChatColor.GREEN + "Info" + ChatColor.DARK_AQUA + " - " + ChatColor.GRAY + "Shows some information");
  266. paramCommandSender.sendMessage(ChatColor.DARK_AQUA + " - " + ChatColor.AQUA + "/kb " + ChatColor.RED + "Admin" + ChatColor.DARK_AQUA + " - " + ChatColor.GRAY + "Shows the admin commands");
  267. paramCommandSender.sendMessage(ChatColor.DARK_AQUA + ChatColor.STRIKETHROUGH + " --------------------------");
  268. return true;
  269. }
  270. if (!this.commands.contains(paramArrayOfString[0].toLowerCase()))
  271. {
  272. paramCommandSender.sendMessage(this.kb + this.msgs.UnknownCommand);
  273. return true;
  274. }
  275. Object localObject1;
  276. Object localObject2;
  277. if (paramArrayOfString[0].equalsIgnoreCase("join"))
  278. {
  279. if ((paramCommandSender instanceof Player))
  280. {
  281. localObject1 = (Player)paramCommandSender;
  282. if (this.config.BungeeMode)
  283. {
  284. ((Player)localObject1).sendMessage(this.kb + this.msgs.CommandDisabled);
  285. return true;
  286. }
  287. if (paramArrayOfString.length == 1)
  288. {
  289. ((Player)localObject1).sendMessage(this.kb + "Usage: /kb " + ChatColor.GREEN + "Join" + ChatColor.GRAY + " <Map>");
  290. return true;
  291. }
  292. localObject2 = paramArrayOfString[1].toLowerCase();
  293. if (!this.maps.containsKey(localObject2))
  294. {
  295. ((Player)localObject1).sendMessage(this.kb + this.msgs.UnknownMap);
  296. return true;
  297. }
  298. ((Player)localObject1).sendMessage(this.kb + this.msgs.PlayerJoinMap.replace("%map%", (CharSequence)localObject2));
  299. if (this.game.contains(((Player)localObject1).getName()))
  300. {
  301. clearData((Player)localObject1);
  302. ((Player)localObject1).teleport((Location)this.maps.get(localObject2));
  303. giveDefaultItems((Player)localObject1);
  304. ((PlayerData)this.playerData.get(((Player)localObject1).getName())).setMap((String)localObject2);
  305. ((PlayerData)this.playerData.get(((Player)localObject1).getName())).setKit(null);
  306. ((PlayerData)this.playerData.get(((Player)localObject1).getName())).killstreak = 0;
  307. removeFromChallenge((Player)localObject1);
  308. }
  309. else
  310. {
  311. this.game.add(((Player)localObject1).getName());
  312. ((PlayerData)this.playerData.get(((Player)localObject1).getName())).saveData((Player)localObject1, (String)localObject2);
  313. clearData((Player)localObject1);
  314. ((Player)localObject1).teleport((Location)this.maps.get(localObject2));
  315. giveDefaultItems((Player)localObject1);
  316. createScoreboard((Player)localObject1);
  317. }
  318. }
  319. else
  320. {
  321. paramCommandSender.sendMessage(this.kb + this.msgs.noconsole);
  322. }
  323. }
  324. else if (paramArrayOfString[0].equalsIgnoreCase("leave"))
  325. {
  326. if ((paramCommandSender instanceof Player))
  327. {
  328. localObject1 = (Player)paramCommandSender;
  329. if (this.config.BungeeMode)
  330. {
  331. ((Player)localObject1).sendMessage(this.kb + this.msgs.CommandDisabled);
  332. return true;
  333. }
  334. if (this.game.contains(((Player)localObject1).getName())) {
  335. leave((Player)localObject1);
  336. } else {
  337. ((Player)localObject1).sendMessage(this.kb + this.msgs.NotInAGame);
  338. }
  339. }
  340. else
  341. {
  342. paramCommandSender.sendMessage(this.kb + this.msgs.noconsole);
  343. }
  344. }
  345. else if (paramArrayOfString[0].equalsIgnoreCase("admin"))
  346. {
  347. if (paramCommandSender.hasPermission("kitbattle.admin"))
  348. {
  349. paramCommandSender.sendMessage(ChatColor.DARK_AQUA + ChatColor.STRIKETHROUGH + " ----------" + ChatColor.AQUA + " KitBattle Admin " + ChatColor.DARK_AQUA + ChatColor.STRIKETHROUGH + "----------");
  350. if (!this.config.BungeeMode)
  351. {
  352. paramCommandSender.sendMessage(ChatColor.DARK_AQUA + " - " + ChatColor.AQUA + "/kb " + ChatColor.GREEN + "Create" + ChatColor.DARK_AQUA + " - " + ChatColor.GRAY + "Create a new map!");
  353. paramCommandSender.sendMessage(ChatColor.DARK_AQUA + " - " + ChatColor.AQUA + "/kb " + ChatColor.GREEN + "Delete" + ChatColor.DARK_AQUA + " - " + ChatColor.GRAY + "Delete a map!");
  354. }
  355. paramCommandSender.sendMessage(ChatColor.DARK_AQUA + " - " + ChatColor.AQUA + "/kb " + ChatColor.GREEN + "Setspawn" + ChatColor.DARK_AQUA + " - " + ChatColor.GRAY + "Change a map spawnpoint location");
  356. paramCommandSender.sendMessage(ChatColor.DARK_AQUA + " - " + ChatColor.AQUA + "/kb " + ChatColor.GREEN + "Reset" + ChatColor.DARK_AQUA + " - " + ChatColor.GRAY + "Resets a player data");
  357. paramCommandSender.sendMessage(ChatColor.DARK_AQUA + " - " + ChatColor.AQUA + "/kb " + ChatColor.GREEN + "Coins" + ChatColor.DARK_AQUA + " - " + ChatColor.GRAY + "Modify a player coins");
  358. paramCommandSender.sendMessage(ChatColor.DARK_AQUA + " - " + ChatColor.AQUA + "/kb " + ChatColor.GREEN + "Setchallenge" + ChatColor.DARK_AQUA + " - " + ChatColor.GRAY + "Sets the location for challenges");
  359. paramCommandSender.sendMessage(ChatColor.DARK_AQUA + " - " + ChatColor.AQUA + "/kb " + ChatColor.GREEN + "Kit" + ChatColor.DARK_AQUA + " - " + ChatColor.GRAY + "Modify the kits");
  360. paramCommandSender.sendMessage(ChatColor.DARK_AQUA + " - " + ChatColor.AQUA + "/kb " + ChatColor.GREEN + "KitUnlocker" + ChatColor.DARK_AQUA + " - " + ChatColor.GRAY + "Give a player Kitunlockers");
  361. paramCommandSender.sendMessage(ChatColor.DARK_AQUA + " - " + ChatColor.AQUA + "/kb " + ChatColor.GREEN + "Reload" + ChatColor.DARK_AQUA + " - " + ChatColor.GRAY + "Reload the config files");
  362. paramCommandSender.sendMessage(ChatColor.DARK_AQUA + ChatColor.STRIKETHROUGH + " ---------------------------------");
  363. }
  364. else
  365. {
  366. paramCommandSender.sendMessage(this.kb + this.msgs.nopermission);
  367. }
  368. }
  369. else if (paramArrayOfString[0].equalsIgnoreCase("list"))
  370. {
  371. if (this.ListOfMaps == null)
  372. {
  373. paramCommandSender.sendMessage(this.kb + this.msgs.NoAvailableMaps);
  374. return true;
  375. }
  376. paramCommandSender.sendMessage(this.kb + "List: " + this.ListOfMaps);
  377. }
  378. else if (paramArrayOfString[0].equalsIgnoreCase("stats"))
  379. {
  380. if ((paramCommandSender instanceof Player))
  381. {
  382. localObject1 = (Player)paramCommandSender;
  383. localObject2 = paramArrayOfString.length == 1 ? localObject1 : Bukkit.getPlayer(paramArrayOfString[1]);
  384. if (localObject2 == null)
  385. {
  386. ((Player)localObject1).sendMessage(this.kb + this.msgs.PlayerNotFound);
  387. return true;
  388. }
  389. PlayerData localPlayerData1 = (PlayerData)this.playerData.get(((Player)localObject2).getName());
  390. ((Player)localObject1).sendMessage(ChatColor.DARK_AQUA + ChatColor.STRIKETHROUGH + " ----------" + ChatColor.YELLOW + " " + ((Player)localObject2).getName() + ChatColor.AQUA + " Stats " + ChatColor.DARK_AQUA + ChatColor.STRIKETHROUGH + "----------");
  391. ((Player)localObject1).sendMessage(ChatColor.AQUA + "Kills: " + ChatColor.GREEN + localPlayerData1.kills);
  392. ((Player)localObject1).sendMessage(ChatColor.AQUA + "Deaths: " + ChatColor.GREEN + localPlayerData1.deaths);
  393. ((Player)localObject1).sendMessage(ChatColor.AQUA + "Coins: " + ChatColor.GREEN + localPlayerData1.coins);
  394. ((Player)localObject1).sendMessage(ChatColor.AQUA + "Exp: " + ChatColor.GREEN + localPlayerData1.dataexp);
  395. ((Player)localObject1).sendMessage(ChatColor.AQUA + "Rank: " + ChatColor.GREEN + localPlayerData1.rank.getName());
  396. ((Player)localObject1).sendMessage(ChatColor.AQUA + "KDR: " + ChatColor.GREEN + localPlayerData1.kills / (localPlayerData1.deaths > 0 ? Double.valueOf(localPlayerData1.deaths).doubleValue() : 1.0D));
  397. ((Player)localObject1).sendMessage(ChatColor.DARK_AQUA + ChatColor.STRIKETHROUGH + " ---------------------------------");
  398. }
  399. else
  400. {
  401. paramCommandSender.sendMessage(this.kb + this.msgs.noconsole);
  402. }
  403. }
  404. else
  405. {
  406. Object localObject7;
  407. Object localObject9;
  408. Object localObject10;
  409. Object localObject15;
  410. Object localObject12;
  411. Object localObject13;
  412. if (paramArrayOfString[0].equalsIgnoreCase("reload"))
  413. {
  414. if (paramCommandSender.hasPermission("kitbattle.reload"))
  415. {
  416. this.fileManager.setupAll();
  417. this.fileManager.setupKits();
  418. this.Kits.clear();
  419. this.fileManager.loadKits();
  420. this.fileManager.setupRanks();
  421. this.Ranks.clear();
  422. this.fileManager.loadRanks();
  423. this.fileManager.setupAbilities();
  424. this.msgs.createDefaultMessages();
  425. this.msgs.loadMessages();
  426. this.config.loadConfig();
  427. this.config.loadAbilities();
  428. this.config.loadSignPrefixes();
  429. this.kb = this.msgs.prefix;
  430. this.listen.kb = this.kb;
  431. this.abilityListener.kb = this.kb;
  432. this.maps.clear();
  433. loadMaps();
  434. updateList();
  435. loadChallengeLocation();
  436. if (getConfig().getBoolean("use-Vault"))
  437. {
  438. setupEcon();
  439. if (econ != null) {
  440. this.logger.info("[KitBattle] Found vault! The option to use vault is enabled, due to that the plugin will use vault instead of coins");
  441. } else {
  442. this.logger.info("[KitBattle] The option to use vault is enabled, but Vault doesn't seem to be installed! due to that the plugin will continue using coins system");
  443. }
  444. }
  445. if (this.config.useMySQL) {
  446. new BukkitRunnable()
  447. {
  448. public void run()
  449. {
  450. try
  451. {
  452. if (main.this.connection == null) {
  453. main.this.connection = DriverManager.getConnection("jdbc:mysql://" + main.this.config.mysqlhost + ":" + main.this.config.mysqlport + "/" + main.this.config.mysqldatabase, main.this.config.mysqlusername, main.this.config.mysqlpassword);
  454. }
  455. main.this.connection.createStatement().executeUpdate("CREATE TABLE IF NOT EXISTS " + main.this.config.tableprefix + " (player_uuid VARCHAR(40), player_name VARCHAR(40), Coins int, Kills int, Deaths int, Exp int, Rank VARCHAR(20), Kitunlockers int, Kits VARCHAR(9999))");
  456. }
  457. catch (SQLException localSQLException)
  458. {
  459. localSQLException.printStackTrace();
  460. }
  461. }
  462. }.runTaskAsynchronously(this);
  463. }
  464. if ((this.config.BungeeMode) && (this.maps.isEmpty()))
  465. {
  466. k = (localObject7 = Bukkit.getOnlinePlayers()).length;
  467. for (i = 0; i < k; i++)
  468. {
  469. localObject1 = localObject7[i];
  470. ((Player)localObject1).kickPlayer(this.kb + this.msgs.NoAvailableMaps);
  471. }
  472. }
  473. int k = (localObject7 = Bukkit.getOnlinePlayers()).length;
  474. for (int i = 0; i < k; i++)
  475. {
  476. localObject1 = localObject7[i];
  477. localObject9 = (PlayerData)this.playerData.get(((Player)localObject1).getName());
  478. if ((((PlayerData)localObject9).getMap() != null) && (!this.maps.containsKey(((PlayerData)localObject9).getMap()))) {
  479. if (this.config.BungeeMode)
  480. {
  481. if (!this.Fighting.containsKey(((Player)localObject1).getName()))
  482. {
  483. clearData((Player)localObject1);
  484. ((PlayerData)this.playerData.get(((Player)localObject1).getName())).setKit(null);
  485. giveDefaultItems((Player)localObject1);
  486. ((Player)localObject1).teleport((Location)this.maps.get(this.currentMap));
  487. }
  488. ((PlayerData)this.playerData.get(((Player)localObject1).getName())).setMap(this.currentMap);
  489. }
  490. else if (this.maps.isEmpty())
  491. {
  492. ((Player)localObject1).sendMessage(this.kb + this.msgs.MapDeletedKick);
  493. ((Player)localObject1).performCommand("kb leave");
  494. }
  495. else
  496. {
  497. ((Player)localObject1).sendMessage(this.kb + this.msgs.MapDeletedSendToAnotherMap);
  498. ((Player)localObject1).performCommand("kb join " + (String)this.maps.keySet().iterator().next());
  499. }
  500. }
  501. localObject10 = new ArrayList();
  502. int i4 = (localObject15 = ((PlayerData)localObject9).myKits.getContents()).length;
  503. for (int i2 = 0; i2 < i4; i2++)
  504. {
  505. localObject12 = localObject15[i2];
  506. if (localObject12 == null) {
  507. break;
  508. }
  509. ((ArrayList)localObject10).add(ChatColor.stripColor(((ItemStack)localObject12).getItemMeta().getDisplayName().toLowerCase()));
  510. }
  511. ((PlayerData)localObject9).myKits.clear();
  512. ((PlayerData)localObject9).Shop.clear();
  513. for (localObject13 = ((ArrayList)localObject10).iterator(); ((Iterator)localObject13).hasNext();)
  514. {
  515. localObject12 = (String)((Iterator)localObject13).next();
  516. if (this.Kits.containsKey(localObject12)) {
  517. ((PlayerData)localObject9).myKits.addItem(new ItemStack[] { ((Kit)this.Kits.get(localObject12)).getLogo() });
  518. }
  519. }
  520. for (localObject13 = this.Kits.keySet().iterator(); ((Iterator)localObject13).hasNext();)
  521. {
  522. localObject12 = (String)((Iterator)localObject13).next();
  523. if (!((ArrayList)localObject10).contains(localObject12)) {
  524. ((PlayerData)localObject9).Shop.addItem(new ItemStack[] { ((Kit)this.Kits.get(localObject12)).getShopLogo() });
  525. }
  526. }
  527. }
  528. if (this.config.UUID) {
  529. this.playerNamePrefix = "player_uuid";
  530. } else {
  531. this.playerNamePrefix = "player_name";
  532. }
  533. fixUpdater();
  534.  
  535. paramCommandSender.sendMessage(this.kb + "The plugin has been reloaded");
  536. }
  537. else
  538. {
  539. paramCommandSender.sendMessage(this.kb + this.msgs.nopermission);
  540. }
  541. }
  542. else
  543. {
  544. Object localObject3;
  545. Object localObject5;
  546. if (paramArrayOfString[0].equalsIgnoreCase("resetkit"))
  547. {
  548. if ((paramCommandSender instanceof Player))
  549. {
  550. localObject1 = (Player)paramCommandSender;
  551. if (((Player)localObject1).hasPermission("kitbattle.resetkit"))
  552. {
  553. if (((PlayerData)this.playerData.get(((Player)localObject1).getName())).getKit() == null)
  554. {
  555. ((Player)localObject1).sendMessage(this.kb + this.msgs.MustHaveSelectedKit);
  556. return true;
  557. }
  558. localObject3 = ((PlayerData)this.playerData.get(((Player)localObject1).getName())).getKit().getName();
  559. ((PlayerData)this.playerData.get(((Player)localObject1).getName())).setKit(null);
  560. ((Player)localObject1).getInventory().clear();
  561. ((Player)localObject1).getInventory().setArmorContents(null);
  562. for (localObject7 = ((Player)localObject1).getActivePotionEffects().iterator(); ((Iterator)localObject7).hasNext();)
  563. {
  564. localObject5 = (PotionEffect)((Iterator)localObject7).next();
  565. ((Player)localObject1).removePotionEffect(((PotionEffect)localObject5).getType());
  566. }
  567. ((Player)localObject1).setAllowFlight(false);
  568. ((Player)localObject1).setFlying(false);
  569. giveDefaultItems((Player)localObject1);
  570. ((Player)localObject1).sendMessage(this.kb + this.msgs.PlayerResetKit.replace("%kit%", (CharSequence)localObject3));
  571. }
  572. else
  573. {
  574. ((Player)localObject1).sendMessage(this.kb + this.msgs.nopermission);
  575. }
  576. }
  577. else
  578. {
  579. paramCommandSender.sendMessage(this.kb + this.msgs.noconsole);
  580. }
  581. }
  582. else if (paramArrayOfString[0].equalsIgnoreCase("create"))
  583. {
  584. if ((paramCommandSender instanceof Player))
  585. {
  586. localObject1 = (Player)paramCommandSender;
  587. if (((Player)localObject1).hasPermission("kitbattle.create"))
  588. {
  589. if (this.config.BungeeMode)
  590. {
  591. ((Player)localObject1).sendMessage(this.kb + this.msgs.CommandDisabled);
  592. return true;
  593. }
  594. if (paramArrayOfString.length == 1)
  595. {
  596. ((Player)localObject1).sendMessage(this.kb + "Usage: /kb " + ChatColor.GREEN + "Create" + ChatColor.GRAY + " <Map>");
  597. return true;
  598. }
  599. localObject3 = paramArrayOfString[1].toLowerCase();
  600. if (this.maps.containsKey(localObject3))
  601. {
  602. ((Player)localObject1).sendMessage(this.kb + "There is already a map with that name!");
  603. return true;
  604. }
  605. setSpawn((String)localObject3, ((Player)localObject1).getLocation());
  606. this.maps.put(localObject3, ((Player)localObject1).getLocation());
  607. updateList();
  608. ((Player)localObject1).sendMessage(this.kb + "The map " + ChatColor.AQUA + (String)localObject3 + ChatColor.GRAY + " has been created successfully! the default location is set to (" + ChatColor.AQUA + ((Player)localObject1).getLocation().getBlockX() + ChatColor.GRAY + ", " + ChatColor.AQUA + ((Player)localObject1).getLocation().getBlockY() + ChatColor.GRAY + ", " + ChatColor.AQUA + ((Player)localObject1).getLocation().getBlockZ() + ChatColor.GRAY + ") to change it use /kb " + ChatColor.GREEN + "Setspawn " + ChatColor.AQUA + (String)localObject3);
  609. }
  610. else
  611. {
  612. ((Player)localObject1).sendMessage(this.kb + this.msgs.nopermission);
  613. }
  614. }
  615. else
  616. {
  617. paramCommandSender.sendMessage(this.kb + this.msgs.noconsole);
  618. }
  619. }
  620. else if (paramArrayOfString[0].equalsIgnoreCase("delete"))
  621. {
  622. if (paramCommandSender.hasPermission("kitbattle.delete"))
  623. {
  624. if (this.config.BungeeMode)
  625. {
  626. paramCommandSender.sendMessage(this.kb + this.msgs.CommandDisabled);
  627. return true;
  628. }
  629. if (paramArrayOfString.length == 1)
  630. {
  631. paramCommandSender.sendMessage(this.kb + "Usage: /kb " + ChatColor.GREEN + "Delete" + ChatColor.GRAY + " <Map>");
  632. return true;
  633. }
  634. localObject1 = paramArrayOfString[1].toLowerCase();
  635. if (!this.maps.containsKey(localObject1))
  636. {
  637. paramCommandSender.sendMessage(this.kb + this.msgs.UnknownMap);
  638. return true;
  639. }
  640. this.fileManager.getMapsConfig().set("Maps." + (String)localObject1, null);
  641. this.fileManager.saveMapsConfig();
  642. this.maps.remove(localObject1);
  643. updateList();
  644. localObject3 = new ArrayList();
  645. for (localObject7 = this.game.iterator(); ((Iterator)localObject7).hasNext();)
  646. {
  647. localObject5 = (String)((Iterator)localObject7).next();
  648. if (((PlayerData)this.playerData.get(localObject5)).getMap().equalsIgnoreCase((String)localObject1))
  649. {
  650. localObject9 = Bukkit.getPlayer((String)localObject5);
  651. if (this.maps.isEmpty())
  652. {
  653. ((Player)localObject9).sendMessage(this.kb + this.msgs.MapDeletedKick);
  654. ((ArrayList)localObject3).add(localObject5);
  655. }
  656. else
  657. {
  658. ((Player)localObject9).sendMessage(this.kb + this.msgs.MapDeletedSendToAnotherMap);
  659. ((Player)localObject9).performCommand("kb join " + (String)this.maps.keySet().iterator().next());
  660. }
  661. }
  662. }
  663. for (localObject7 = ((ArrayList)localObject3).iterator(); ((Iterator)localObject7).hasNext();)
  664. {
  665. localObject5 = (String)((Iterator)localObject7).next();
  666. Bukkit.getPlayer((String)localObject5).performCommand("kb leave");
  667. }
  668. paramCommandSender.sendMessage(this.kb + "The map " + ChatColor.AQUA + (String)localObject1 + ChatColor.GRAY + " was deleted successfully!");
  669. }
  670. else
  671. {
  672. paramCommandSender.sendMessage(this.kb + this.msgs.nopermission);
  673. }
  674. }
  675. else if (paramArrayOfString[0].equalsIgnoreCase("setspawn"))
  676. {
  677. if ((paramCommandSender instanceof Player))
  678. {
  679. localObject1 = (Player)paramCommandSender;
  680. if (((Player)localObject1).hasPermission("kitbattle.setspawn"))
  681. {
  682. if (paramArrayOfString.length == 1)
  683. {
  684. ((Player)localObject1).sendMessage(this.kb + "Usage: /kb " + ChatColor.GREEN + "Setspawn" + ChatColor.GRAY + " <Map>");
  685. return true;
  686. }
  687. localObject3 = paramArrayOfString[1].toLowerCase();
  688. if (!this.maps.containsKey(localObject3))
  689. {
  690. ((Player)localObject1).sendMessage(this.kb + this.msgs.UnknownMap);
  691. return true;
  692. }
  693. setSpawn((String)localObject3, ((Player)localObject1).getLocation());
  694. this.maps.put(localObject3, ((Player)localObject1).getLocation());
  695. ((Player)localObject1).sendMessage(this.kb + "You have changed the map " + ChatColor.AQUA + (String)localObject3 + ChatColor.GRAY + " spawnpoint location to (" + ChatColor.AQUA + ((Player)localObject1).getLocation().getBlockX() + ChatColor.GRAY + ", " + ChatColor.AQUA + ((Player)localObject1).getLocation().getBlockY() + ChatColor.GRAY + ", " + ChatColor.AQUA + ((Player)localObject1).getLocation().getBlockZ() + ChatColor.GRAY + ")");
  696. }
  697. else
  698. {
  699. ((Player)localObject1).sendMessage(this.kb + this.msgs.nopermission);
  700. }
  701. }
  702. else
  703. {
  704. paramCommandSender.sendMessage(this.kb + this.msgs.noconsole);
  705. }
  706. }
  707. else if (paramArrayOfString[0].equalsIgnoreCase("reset"))
  708. {
  709. if (paramCommandSender.hasPermission("kitbattle.reset"))
  710. {
  711. if (paramArrayOfString.length == 1)
  712. {
  713. paramCommandSender.sendMessage(this.kb + "Usage: /kb " + ChatColor.GREEN + "Reset" + ChatColor.GRAY + " <Player>");
  714. return true;
  715. }
  716. localObject1 = Bukkit.getPlayer(paramArrayOfString[1]);
  717. if (localObject1 != null)
  718. {
  719. localObject3 = (PlayerData)this.playerData.get(((Player)localObject1).getName());
  720. ((PlayerData)localObject3).joined = true;
  721. ((PlayerData)localObject3).coins = this.config.StartingCoins;
  722. ((PlayerData)localObject3).kills = 0;
  723. ((PlayerData)localObject3).deaths = 0;
  724. ((PlayerData)localObject3).dataexp = 0;
  725. ((PlayerData)localObject3).rank = ((Rank)Rank.orderd.get(0));
  726. ((PlayerData)localObject3).rankNumber = 0;
  727. ((PlayerData)localObject3).kitUnlockers = this.config.StartingAmountOfKitUnlockers;
  728. ((PlayerData)localObject3).updateNextRank();
  729. ((PlayerData)localObject3).myKits.clear();
  730. localObject5 = new ArrayList();
  731. for (localObject9 = this.config.defaultKits.iterator(); ((Iterator)localObject9).hasNext();)
  732. {
  733. localObject7 = (String)((Iterator)localObject9).next();
  734. ((List)localObject5).add(((String)localObject7).toLowerCase());
  735. }
  736. for (localObject9 = ((List)localObject5).iterator(); ((Iterator)localObject9).hasNext();)
  737. {
  738. localObject7 = (String)((Iterator)localObject9).next();
  739. if (this.Kits.containsKey(localObject7)) {
  740. ((PlayerData)localObject3).myKits.addItem(new ItemStack[] { ((Kit)this.Kits.get(localObject7)).getLogo() });
  741. }
  742. }
  743. ((PlayerData)localObject3).Shop.clear();
  744. for (localObject9 = this.Kits.keySet().iterator(); ((Iterator)localObject9).hasNext();)
  745. {
  746. localObject7 = (String)((Iterator)localObject9).next();
  747. if ((!((List)localObject5).contains(localObject7)) &&
  748. (this.Kits.containsKey(localObject7))) {
  749. ((PlayerData)localObject3).Shop.addItem(new ItemStack[] { ((Kit)this.Kits.get(localObject7)).getShopLogo() });
  750. }
  751. }
  752. if (this.game.contains(((Player)localObject1).getName()))
  753. {
  754. createScoreboard((Player)localObject1);
  755. if (((PlayerData)localObject3).getKit() == null)
  756. {
  757. ((Player)localObject1).getInventory().clear();
  758. giveDefaultItems((Player)localObject1);
  759. }
  760. }
  761. paramCommandSender.sendMessage(this.kb + "The player " + ChatColor.AQUA + paramArrayOfString[1] + ChatColor.GRAY + " data has been " + ChatColor.GREEN + "successfully " + ChatColor.GRAY + "cleared!");
  762. }
  763. else
  764. {
  765. paramCommandSender.sendMessage(this.kb + "Couldn't find that player!");
  766. }
  767. }
  768. else
  769. {
  770. paramCommandSender.sendMessage(this.kb + this.msgs.nopermission);
  771. }
  772. }
  773. else if (paramArrayOfString[0].equalsIgnoreCase("coins"))
  774. {
  775. if (paramCommandSender.hasPermission("kitbattle.coins"))
  776. {
  777. if ((paramArrayOfString.length < 4) || ((!paramArrayOfString[1].equalsIgnoreCase("add")) && (!paramArrayOfString[1].equalsIgnoreCase("set")) && (!paramArrayOfString[1].equalsIgnoreCase("remove"))) || (!isNumber(paramArrayOfString[3])))
  778. {
  779. paramCommandSender.sendMessage(this.kb + "Usage: /kb " + ChatColor.GREEN + "Coins" + ChatColor.GRAY + " Add/Set/Remove <Player> <Amount>");
  780. return true;
  781. }
  782. localObject1 = Bukkit.getPlayer(paramArrayOfString[2]);
  783. if (localObject1 != null)
  784. {
  785. localObject3 = (PlayerData)this.playerData.get(((Player)localObject1).getName());
  786. int m = Integer.valueOf(paramArrayOfString[3]).intValue();
  787. localObject7 = paramArrayOfString[1].toLowerCase();
  788. int i1 = getCoins((Player)localObject1);
  789. if (((String)localObject7).equals("add"))
  790. {
  791. addCoins((Player)localObject1, m);
  792. paramCommandSender.sendMessage(this.kb + "You gave the player " + ChatColor.AQUA + ((Player)localObject1).getName() + ChatColor.GRAY + " (" + ChatColor.GREEN + m + ChatColor.GRAY + ") coins!");
  793. ((Player)localObject1).sendMessage(this.kb + this.msgs.PlayerGainCoinsThroughCommand.replace("%coins%", String.valueOf(m)));
  794. }
  795. else if (((String)localObject7).equals("set"))
  796. {
  797. setCoins((Player)localObject1, m);
  798. paramCommandSender.sendMessage(this.kb + "You have set the player " + ChatColor.AQUA + ((Player)localObject1).getName() + ChatColor.GRAY + " coins to (" + ChatColor.GREEN + m + ChatColor.GRAY + ")");
  799. ((Player)localObject1).sendMessage(this.kb + this.msgs.PlayerCoinsSetThroughCommand.replace("%coins%", String.valueOf(m)));
  800. }
  801. else if (((String)localObject7).equals("remove"))
  802. {
  803. removeCoins((Player)localObject1, m);
  804. paramCommandSender.sendMessage(this.kb + "You have removed (" + ChatColor.GREEN + m + ChatColor.GRAY + ") coins from the player " + ChatColor.AQUA + ((Player)localObject1).getName() + ChatColor.GRAY + "!");
  805. ((Player)localObject1).sendMessage(this.kb + this.msgs.PlayerLoseCoinsThroughCommand.replace("%coins%", String.valueOf(m)));
  806. }
  807. if (this.game.contains(((Player)localObject1).getName())) {
  808. try
  809. {
  810. localObject10 = ((Player)localObject1).getScoreboard();
  811. if ((((Scoreboard)localObject10).getObjective(DisplaySlot.SIDEBAR) == null) || (!((Scoreboard)localObject10).getObjective(DisplaySlot.SIDEBAR).getDisplayName().equals(ChatColor.YELLOW + ChatColor.BOLD + ChatColor.UNDERLINE + "KitBattle")))
  812. {
  813. createScoreboard((Player)localObject1);
  814. }
  815. else
  816. {
  817. localObject12 = ((Scoreboard)localObject10).getObjective(DisplaySlot.SIDEBAR);
  818. ((Scoreboard)localObject10).resetScores(this.msgs.scoreboard_coins.replace("%coins%", String.valueOf(i1)));
  819. ((Objective)localObject12).getScore(this.msgs.scoreboard_coins.replace("%coins%", String.valueOf(getCoins((Player)localObject1)))).setScore(1);
  820. }
  821. }
  822. catch (Exception localException)
  823. {
  824. localException.printStackTrace();
  825. this.logger.info("[KitBattle] Error has occured while creating/updating the player: " + ((Player)localObject1).getName() + " scoreboard!");
  826. }
  827. }
  828. }
  829. else
  830. {
  831. paramCommandSender.sendMessage(this.kb + "Couldn't find that player!");
  832. }
  833. }
  834. else
  835. {
  836. paramCommandSender.sendMessage(this.kb + this.msgs.nopermission);
  837. }
  838. }
  839. else if (paramArrayOfString[0].equalsIgnoreCase("setchallenge"))
  840. {
  841. if ((paramCommandSender instanceof Player))
  842. {
  843. if (paramCommandSender.hasPermission("kitbattle.setchallenge"))
  844. {
  845. localObject1 = (Player)paramCommandSender;
  846. if ((paramArrayOfString.length == 1) || (!isNumber(paramArrayOfString[1])) || (Integer.valueOf(paramArrayOfString[1]).intValue() > 2) || (Integer.valueOf(paramArrayOfString[1]).intValue() < 1))
  847. {
  848. ((Player)localObject1).sendMessage(this.kb + "Usage: /kb " + ChatColor.GREEN + "Setchallenge " + ChatColor.GRAY + "1/2");
  849. return true;
  850. }
  851. int j = Integer.valueOf(paramArrayOfString[1]).intValue();
  852. if (j == 2) {
  853. this.challengeLocation2 = ((Player)localObject1).getLocation().add(0.0D, 1.0D, 0.0D);
  854. } else {
  855. this.challengeLocation1 = ((Player)localObject1).getLocation().add(0.0D, 1.0D, 0.0D);
  856. }
  857. getConfig().set("Challenge-Location." + j + ".world", ((Player)localObject1).getWorld().getName());
  858. getConfig().set("Challenge-Location." + j + ".x", Integer.valueOf(((Player)localObject1).getLocation().getBlockX()));
  859. getConfig().set("Challenge-Location." + j + ".y", Integer.valueOf(((Player)localObject1).getLocation().getBlockY() + 1));
  860. getConfig().set("Challenge-Location." + j + ".z", Integer.valueOf(((Player)localObject1).getLocation().getBlockZ()));
  861. getConfig().set("Challenge-Location." + j + ".yaw", Float.valueOf(((Player)localObject1).getLocation().getYaw()));
  862. getConfig().set("Challenge-Location." + j + ".pitch", Float.valueOf(((Player)localObject1).getLocation().getPitch()));
  863. saveConfig();
  864. ((Player)localObject1).sendMessage(this.kb + "The " + ChatColor.GREEN + "1v1" + ChatColor.GRAY + " challenge location " + ChatColor.LIGHT_PURPLE + "#" + j + ChatColor.GRAY + " has been set! (" + ChatColor.AQUA + ((Player)localObject1).getLocation().getBlockX() + ChatColor.GRAY + ", " + ChatColor.AQUA + ((Player)localObject1).getLocation().getBlockY() + ChatColor.GRAY + ", " + ChatColor.AQUA + ((Player)localObject1).getLocation().getBlockZ() + ChatColor.GRAY + ")");
  865. }
  866. else
  867. {
  868. paramCommandSender.sendMessage(this.kb + this.msgs.nopermission);
  869. }
  870. }
  871. else {
  872. paramCommandSender.sendMessage(this.kb + this.msgs.noconsole);
  873. }
  874. }
  875. else if (paramArrayOfString[0].equalsIgnoreCase("kit"))
  876. {
  877. if (paramCommandSender.hasPermission("kitbattle.kit"))
  878. {
  879. if ((paramArrayOfString.length == 1) || ((!paramArrayOfString[1].equalsIgnoreCase("Create")) && (!paramArrayOfString[1].equalsIgnoreCase("Delete")) && (!paramArrayOfString[1].equalsIgnoreCase("Rename")) && (!paramArrayOfString[1].equalsIgnoreCase("Enable")) && (!paramArrayOfString[1].equalsIgnoreCase("Disable"))))
  880. {
  881. paramCommandSender.sendMessage(this.kb + "Usage: /kb " + ChatColor.GREEN + "Kit " + ChatColor.GRAY + "Create/Delete/Rename/Enable/Disable");
  882. return true;
  883. }
  884. localObject1 = paramArrayOfString[1].toLowerCase();
  885. Object localObject4;
  886. Object localObject6;
  887. ItemStack localItemStack1;
  888. Object localObject11;
  889. Object localObject14;
  890. Object localObject17;
  891. Object localObject16;
  892. Object localObject20;
  893. Object localObject19;
  894. Object localObject18;
  895. if (((String)localObject1).equals("create"))
  896. {
  897. if ((paramCommandSender instanceof Player))
  898. {
  899. localObject4 = (Player)paramCommandSender;
  900. if ((paramArrayOfString.length < 5) || (!isMaterial(paramArrayOfString[3].split(":")[0].toUpperCase())) || (!isNumber(paramArrayOfString[4])))
  901. {
  902. ((Player)localObject4).sendMessage(this.kb + "Usage: /kb " + ChatColor.GREEN + "Kit " + ChatColor.GRAY + "Create <Name> <Logo " + ChatColor.LIGHT_PURPLE + ChatColor.UNDERLINE + "(MATERIAL ENUM) " + ChatColor.GRAY + "> <Price>");
  903. return true;
  904. }
  905. localObject6 = paramArrayOfString[2];
  906. if (this.Kits.containsKey(((String)localObject6).toLowerCase()))
  907. {
  908. ((Player)localObject4).sendMessage(this.kb + "There is already a kit with that name!");
  909. return true;
  910. }
  911. int n = Integer.valueOf(paramArrayOfString[4]).intValue();
  912. if (paramArrayOfString[3].contains(":")) {
  913. localItemStack1 = setName(new ItemStack(Material.valueOf(paramArrayOfString[3].split(":")[0].toUpperCase()), 1, Short.valueOf(paramArrayOfString[3].split(":")[1]).shortValue()), ChatColor.LIGHT_PURPLE + (String)localObject6);
  914. } else {
  915. localItemStack1 = setName(new ItemStack(Material.valueOf(paramArrayOfString[3].toUpperCase())), ChatColor.GREEN + (String)localObject6);
  916. }
  917. localObject11 = ChatColor.AQUA + "There is no description for this kit!";
  918. addLore(localItemStack1, (String)localObject11);
  919. localObject12 = ((Player)localObject4).getInventory().getContents();
  920. localObject13 = ((Player)localObject4).getInventory().getArmorContents();
  921. localObject14 = ((Player)localObject4).getActivePotionEffects();
  922. localObject15 = new Kit((String)localObject6, localItemStack1, (ItemStack[])localObject12, (ItemStack[])localObject13, n, (Collection)localObject14, new ArrayList(), true, false);
  923. this.Kits.put(((String)localObject6).toLowerCase(), localObject15);
  924. for (localObject17 = this.playerData.values().iterator(); ((Iterator)localObject17).hasNext();)
  925. {
  926. localObject16 = (PlayerData)((Iterator)localObject17).next();
  927. ((PlayerData)localObject16).getShop().addItem(new ItemStack[] { ((Kit)localObject15).getShopLogo() });
  928. }
  929. this.fileManager.getKitsConfig().set("Kits." + (String)localObject6 + ".Enabled", Boolean.valueOf(true));
  930. this.fileManager.getKitsConfig().set("Kits." + (String)localObject6 + ".Require-Permission", Boolean.valueOf(false));
  931. this.fileManager.getKitsConfig().set("Kits." + (String)localObject6 + ".Item", paramArrayOfString[3].toUpperCase());
  932. this.fileManager.getKitsConfig().set("Kits." + (String)localObject6 + ".Price", Integer.valueOf(n));
  933. this.fileManager.getKitsConfig().set("Kits." + (String)localObject6 + ".Armor.Helmet", this.fileManager.transformItemStackToString(((Player)localObject4).getInventory().getHelmet()));
  934. this.fileManager.getKitsConfig().set("Kits." + (String)localObject6 + ".Armor.Chestplate", this.fileManager.transformItemStackToString(((Player)localObject4).getInventory().getChestplate()));
  935. this.fileManager.getKitsConfig().set("Kits." + (String)localObject6 + ".Armor.Leggings", this.fileManager.transformItemStackToString(((Player)localObject4).getInventory().getLeggings()));
  936. this.fileManager.getKitsConfig().set("Kits." + (String)localObject6 + ".Armor.Boots", this.fileManager.transformItemStackToString(((Player)localObject4).getInventory().getBoots()));
  937. localObject16 = new ArrayList();
  938. int i6 = (localObject20 = localObject12).length;
  939. for (int i5 = 0; i5 < i6; i5++)
  940. {
  941. localObject17 = localObject20[i5];
  942. ((ArrayList)localObject16).add(this.fileManager.transformItemStackToString((ItemStack)localObject17));
  943. }
  944. this.fileManager.getKitsConfig().set("Kits." + (String)localObject6 + ".Items", localObject16);
  945. localObject17 = new ArrayList();
  946. for (localObject19 = ((Collection)localObject14).iterator(); ((Iterator)localObject19).hasNext();)
  947. {
  948. localObject18 = (PotionEffect)((Iterator)localObject19).next();
  949. ((ArrayList)localObject17).add(((PotionEffect)localObject18).getType().getName() + " : " + ((PotionEffect)localObject18).getDuration() / 20 + " : " + ((PotionEffect)localObject18).getAmplifier());
  950. }
  951. this.fileManager.getKitsConfig().set("Kits." + (String)localObject6 + ".Abilities", Arrays.asList(new String[0]));
  952. this.fileManager.getKitsConfig().set("Kits." + (String)localObject6 + ".Potion-Effects", localObject17);
  953. localObject11 = "&b" + ChatColor.stripColor((String)localObject11);
  954. this.fileManager.getKitsConfig().set("Kits." + (String)localObject6 + ".Description", Arrays.asList(new String[] { localObject11 }));
  955. this.fileManager.saveKitsConfig();
  956. ((Player)localObject4).getInventory().clear();
  957. ((Player)localObject4).getInventory().setArmorContents(null);
  958. for (localObject19 = ((Player)localObject4).getActivePotionEffects().iterator(); ((Iterator)localObject19).hasNext();)
  959. {
  960. localObject18 = (PotionEffect)((Iterator)localObject19).next();
  961. ((Player)localObject4).removePotionEffect(((PotionEffect)localObject18).getType());
  962. }
  963. ((Player)localObject4).sendMessage(this.kb + "The " + ChatColor.GREEN + (String)localObject6 + ChatColor.GRAY + " kit has been created!");
  964. }
  965. else
  966. {
  967. paramCommandSender.sendMessage(this.kb + this.msgs.noconsole);
  968. }
  969. }
  970. else
  971. {
  972. Object localObject8;
  973. if (((String)localObject1).equals("delete"))
  974. {
  975. if (paramArrayOfString.length == 2)
  976. {
  977. paramCommandSender.sendMessage(this.kb + "Usage: /kb " + ChatColor.GREEN + "Delete" + ChatColor.GRAY + " <Kit>");
  978. return true;
  979. }
  980. localObject4 = paramArrayOfString[2].toLowerCase();
  981. if (!this.Kits.containsKey(localObject4))
  982. {
  983. paramCommandSender.sendMessage(this.kb + "Couldn't find a kit with that name!");
  984. return true;
  985. }
  986. localObject6 = ((Kit)this.Kits.get(localObject4)).getName();
  987. localObject8 = ((Kit)this.Kits.get(localObject4)).getLogo();
  988. localItemStack1 = ((Kit)this.Kits.get(localObject4)).getShopLogo();
  989. this.Kits.remove(localObject4);
  990. this.fileManager.getKitsConfig().set("Kits." + (String)localObject6, null);
  991. this.fileManager.saveKitsConfig();
  992. for (localObject12 = this.playerData.values().iterator(); ((Iterator)localObject12).hasNext();)
  993. {
  994. localObject11 = (PlayerData)((Iterator)localObject12).next();
  995. if (((PlayerData)localObject11).getShop().contains(localItemStack1))
  996. {
  997. ((PlayerData)localObject11).getShop().remove(localItemStack1);
  998. organizeInventory(((PlayerData)localObject11).getShop());
  999. }
  1000. else if (((PlayerData)localObject11).getMyKits().contains((ItemStack)localObject8))
  1001. {
  1002. ((PlayerData)localObject11).getMyKits().removeItem(new ItemStack[] { localObject8 });
  1003. organizeInventory(((PlayerData)localObject11).getMyKits());
  1004. }
  1005. }
  1006. paramCommandSender.sendMessage(this.kb + "The kit " + ChatColor.GREEN + (String)localObject6 + ChatColor.GRAY + " has been deleted!");
  1007. }
  1008. else if (((String)localObject1).equals("rename"))
  1009. {
  1010. if (this.config.useMySQL)
  1011. {
  1012. paramCommandSender.sendMessage(this.kb + "This command is coming soon for MySql users!");
  1013. return true;
  1014. }
  1015. if (paramArrayOfString.length < 4)
  1016. {
  1017. paramCommandSender.sendMessage(this.kb + "Usage: /kb " + ChatColor.GREEN + "Kit" + ChatColor.GRAY + " rename <Kit> <New Name>");
  1018. return true;
  1019. }
  1020. localObject4 = paramArrayOfString[2].toLowerCase();
  1021. if (!this.Kits.containsKey(localObject4))
  1022. {
  1023. paramCommandSender.sendMessage(this.kb + "Couldn't find a kit with that name!");
  1024. return true;
  1025. }
  1026. if (this.Kits.containsKey(paramArrayOfString[3].toLowerCase()))
  1027. {
  1028. paramCommandSender.sendMessage(this.kb + "There is already a kit with that name!");
  1029. return true;
  1030. }
  1031. localObject6 = (Kit)this.Kits.get(localObject4);
  1032. localObject8 = "Kits." + ((Kit)localObject6).getName() + ".";
  1033. boolean bool1 = this.fileManager.getKitsConfig().getBoolean(localObject8 + "Enabled");
  1034. boolean bool2 = this.fileManager.getKitsConfig().getBoolean(localObject8 + "Require-Permission");
  1035. localObject12 = this.fileManager.getKitsConfig().getString(localObject8 + "Item");
  1036. int i3 = this.fileManager.getKitsConfig().getInt(localObject8 + "Price");
  1037. localObject14 = this.fileManager.getKitsConfig().getString(localObject8 + "Armor.Helmet");
  1038. localObject15 = this.fileManager.getKitsConfig().getString(localObject8 + "Armor.Chestplate");
  1039. localObject16 = this.fileManager.getKitsConfig().getString(localObject8 + "Armor.Leggings");
  1040. localObject17 = this.fileManager.getKitsConfig().getString(localObject8 + "Armor.Boots");
  1041. localObject18 = this.fileManager.getKitsConfig().getStringList(localObject8 + "Items");
  1042. localObject19 = this.fileManager.getKitsConfig().getStringList(localObject8 + "Potion-Effects");
  1043. localObject20 = this.fileManager.getKitsConfig().getStringList(localObject8 + "Abilities");
  1044. List localList = this.fileManager.getKitsConfig().getStringList(localObject8 + "Description");
  1045.  
  1046. this.fileManager.getKitsConfig().set("Kits." + ((Kit)localObject6).getName(), null);
  1047.  
  1048. this.fileManager.getKitsConfig().set("Kits." + paramArrayOfString[3] + ".Enabled", Boolean.valueOf(bool1));
  1049. this.fileManager.getKitsConfig().set("Kits." + paramArrayOfString[3] + ".Require-Permission", Boolean.valueOf(bool2));
  1050. this.fileManager.getKitsConfig().set("Kits." + paramArrayOfString[3] + ".Item", localObject12);
  1051. this.fileManager.getKitsConfig().set("Kits." + paramArrayOfString[3] + ".Price", Integer.valueOf(i3));
  1052. this.fileManager.getKitsConfig().set("Kits." + paramArrayOfString[3] + ".Armor.Helmet", localObject14);
  1053. this.fileManager.getKitsConfig().set("Kits." + paramArrayOfString[3] + ".Armor.Chestplate", localObject15);
  1054. this.fileManager.getKitsConfig().set("Kits." + paramArrayOfString[3] + ".Armor.Leggings", localObject16);
  1055. this.fileManager.getKitsConfig().set("Kits." + paramArrayOfString[3] + ".Armor.Boots", localObject17);
  1056. this.fileManager.getKitsConfig().set("Kits." + paramArrayOfString[3] + ".Items", localObject18);
  1057. this.fileManager.getKitsConfig().set("Kits." + paramArrayOfString[3] + ".Abilities", localObject20);
  1058. this.fileManager.getKitsConfig().set("Kits." + paramArrayOfString[3] + ".Potion-Effects", localObject19);
  1059. this.fileManager.getKitsConfig().set("Kits." + paramArrayOfString[3] + ".Description", localList);
  1060. this.fileManager.saveKitsConfig();
  1061. ItemStack localItemStack2 = ((Kit)localObject6).getLogo().clone();
  1062. ItemStack localItemStack3 = ((Kit)localObject6).getShopLogo().clone();
  1063. this.Kits.remove(localObject4);
  1064. ((Kit)localObject6).setName(paramArrayOfString[3]);
  1065. setName(((Kit)localObject6).getLogo(), ChatColor.GREEN + paramArrayOfString[3]);
  1066. setName(((Kit)localObject6).getShopLogo(), ChatColor.LIGHT_PURPLE + paramArrayOfString[3]);
  1067. this.Kits.put(paramArrayOfString[3].toLowerCase(), localObject6);
  1068. ItemStack localItemStack4 = ((Kit)localObject6).getLogo();
  1069. ItemStack localItemStack5 = ((Kit)localObject6).getShopLogo();
  1070. for (Iterator localIterator2 = this.playerData.values().iterator(); localIterator2.hasNext();)
  1071. {
  1072. localObject21 = (PlayerData)localIterator2.next();
  1073. if (((PlayerData)localObject21).getShop().contains(localItemStack3))
  1074. {
  1075. ((PlayerData)localObject21).getShop().removeItem(new ItemStack[] { localItemStack3 });
  1076. ((PlayerData)localObject21).getShop().addItem(new ItemStack[] { localItemStack5 });
  1077. }
  1078. else if (((PlayerData)localObject21).getMyKits().contains(localItemStack2))
  1079. {
  1080. ((PlayerData)localObject21).getMyKits().removeItem(new ItemStack[] { localItemStack2 });
  1081. ((PlayerData)localObject21).getMyKits().addItem(new ItemStack[] { localItemStack4 });
  1082. }
  1083. }
  1084. final Object localObject21 = ChatColor.stripColor(localItemStack2.getItemMeta().getDisplayName());
  1085. paramCommandSender.sendMessage(this.kb + "The kit " + ChatColor.LIGHT_PURPLE + (String)localObject21 + ChatColor.GRAY + " has been renamed to " + ChatColor.GREEN + paramArrayOfString[3] + ChatColor.GRAY + "!");
  1086.  
  1087. new BukkitRunnable()
  1088. {
  1089. Iterator<String> iterator = main.this.fileManager.getPlayersConfig().getConfigurationSection("Players").getKeys(false).iterator();
  1090. int updated = 0;
  1091.  
  1092. public void run()
  1093. {
  1094. int i = 0;
  1095. while ((i < 50) && (this.iterator.hasNext()))
  1096. {
  1097. i++;
  1098. String str = (String)this.iterator.next();
  1099. if (main.this.fileManager.getPlayersConfig().getStringList("Players." + str + ".Kits").contains(localObject21))
  1100. {
  1101. List localList = main.this.fileManager.getPlayersConfig().getStringList("Players." + str + ".Kits");
  1102. localList.remove(localObject21);
  1103. localList.add(paramArrayOfString[3]);
  1104. main.this.fileManager.getPlayersConfig().set("Players." + str + ".Kits", localList);
  1105. this.updated += 1;
  1106. }
  1107. }
  1108. if (!this.iterator.hasNext())
  1109. {
  1110. main.this.fileManager.savePlayersConfig();
  1111. paramCommandSender.sendMessage(main.this.kb + "Updated the owned kits in the file for " + ChatColor.LIGHT_PURPLE + this.updated + ChatColor.GRAY + " players!");
  1112. cancel();
  1113. }
  1114. }
  1115. }.runTaskTimerAsynchronously(this, 1L, 2L);
  1116. }
  1117. else
  1118. {
  1119. Iterator localIterator1;
  1120. PlayerData localPlayerData2;
  1121. if (((String)localObject1).equals("enable"))
  1122. {
  1123. if (paramArrayOfString.length < 3)
  1124. {
  1125. paramCommandSender.sendMessage(this.kb + "Usage: /kb " + ChatColor.GREEN + "Kit" + ChatColor.GRAY + " enable <Kit>");
  1126. return true;
  1127. }
  1128. localObject4 = (Kit)this.Kits.get(paramArrayOfString[2].toLowerCase());
  1129. if (localObject4 == null)
  1130. {
  1131. paramCommandSender.sendMessage(this.kb + "Couldn't find a kit with that name!");
  1132. return true;
  1133. }
  1134. if (((Kit)localObject4).enabled)
  1135. {
  1136. paramCommandSender.sendMessage(this.kb + "This kit is already enabled!");
  1137. return true;
  1138. }
  1139. ((Kit)localObject4).enabled = true;
  1140. this.fileManager.getKitsConfig().set("Kits." + ((Kit)localObject4).getName() + ".Enabled", Boolean.valueOf(true));
  1141. this.fileManager.saveKitsConfig();
  1142. localObject6 = ((Kit)localObject4).getLogo().clone();
  1143. localObject8 = ((Kit)localObject4).getShopLogo().clone();
  1144. replaceLore(((Kit)localObject4).getLogo(), ChatColor.BLUE + "State: " + ChatColor.RED + "Disabled", ChatColor.BLUE + "State: " + ChatColor.GREEN + "Enabled");
  1145. replaceLore(((Kit)localObject4).getShopLogo(), ChatColor.BLUE + "State: " + ChatColor.RED + "Disabled", ChatColor.BLUE + "State: " + ChatColor.GREEN + "Enabled");
  1146. for (localIterator1 = this.playerData.values().iterator(); localIterator1.hasNext();)
  1147. {
  1148. localPlayerData2 = (PlayerData)localIterator1.next();
  1149. if (localPlayerData2.getShop().contains((ItemStack)localObject8))
  1150. {
  1151. localPlayerData2.getShop().removeItem(new ItemStack[] { localObject8 });
  1152. localPlayerData2.getShop().addItem(new ItemStack[] { ((Kit)localObject4).getShopLogo() });
  1153. }
  1154. else
  1155. {
  1156. localPlayerData2.getMyKits().removeItem(new ItemStack[] { localObject6 });
  1157. localPlayerData2.getMyKits().addItem(new ItemStack[] { ((Kit)localObject4).getLogo() });
  1158. }
  1159. }
  1160. paramCommandSender.sendMessage(this.kb + "You have " + ChatColor.GREEN + "enabled" + ChatColor.GRAY + " the kit " + ChatColor.LIGHT_PURPLE + ((Kit)localObject4).getName());
  1161. }
  1162. else if (((String)localObject1).equals("disable"))
  1163. {
  1164. if (paramArrayOfString.length < 3)
  1165. {
  1166. paramCommandSender.sendMessage(this.kb + "Usage: /kb " + ChatColor.GREEN + "Kit" + ChatColor.GRAY + " disable <Kit>");
  1167. return true;
  1168. }
  1169. localObject4 = (Kit)this.Kits.get(paramArrayOfString[2].toLowerCase());
  1170. if (localObject4 == null)
  1171. {
  1172. paramCommandSender.sendMessage(this.kb + "Couldn't find a kit with that name!");
  1173. return true;
  1174. }
  1175. if (!((Kit)localObject4).enabled)
  1176. {
  1177. paramCommandSender.sendMessage(this.kb + "This kit is already disabled!");
  1178. return true;
  1179. }
  1180. ((Kit)localObject4).enabled = false;
  1181. this.fileManager.getKitsConfig().set("Kits." + ((Kit)localObject4).getName() + ".Enabled", Boolean.valueOf(false));
  1182. this.fileManager.saveKitsConfig();
  1183. localObject6 = ((Kit)localObject4).getLogo().clone();
  1184. localObject8 = ((Kit)localObject4).getShopLogo().clone();
  1185. replaceLore(((Kit)localObject4).getLogo(), ChatColor.BLUE + "State: " + ChatColor.GREEN + "Enabled", ChatColor.BLUE + "State: " + ChatColor.RED + "Disabled");
  1186. replaceLore(((Kit)localObject4).getShopLogo(), ChatColor.BLUE + "State: " + ChatColor.GREEN + "Enabled", ChatColor.BLUE + "State: " + ChatColor.RED + "Disabled");
  1187. for (localIterator1 = this.playerData.values().iterator(); localIterator1.hasNext();)
  1188. {
  1189. localPlayerData2 = (PlayerData)localIterator1.next();
  1190. if (localPlayerData2.getShop().contains((ItemStack)localObject8))
  1191. {
  1192. localPlayerData2.getShop().removeItem(new ItemStack[] { localObject8 });
  1193. localPlayerData2.getShop().addItem(new ItemStack[] { ((Kit)localObject4).getShopLogo() });
  1194. }
  1195. else
  1196. {
  1197. localPlayerData2.getMyKits().removeItem(new ItemStack[] { localObject6 });
  1198. localPlayerData2.getMyKits().addItem(new ItemStack[] { ((Kit)localObject4).getLogo() });
  1199. }
  1200. }
  1201. paramCommandSender.sendMessage(this.kb + "You have " + ChatColor.RED + "disabled" + ChatColor.GRAY + " the kit " + ChatColor.LIGHT_PURPLE + ((Kit)localObject4).getName());
  1202. }
  1203. }
  1204. }
  1205. }
  1206. else
  1207. {
  1208. paramCommandSender.sendMessage(this.kb + this.msgs.nopermission);
  1209. }
  1210. }
  1211. else if (paramArrayOfString[0].equalsIgnoreCase("kitunlocker"))
  1212. {
  1213. if (paramCommandSender.hasPermission("kitbattle.kitunlocker"))
  1214. {
  1215. if ((paramArrayOfString.length < 4) || (!isNumber(paramArrayOfString[3])) || (!paramArrayOfString[1].equalsIgnoreCase("give")))
  1216. {
  1217. paramCommandSender.sendMessage(this.kb + "Usage: /kb " + ChatColor.GREEN + "Kitunlocker" + ChatColor.GRAY + " give <Player> <Amount>");
  1218. return true;
  1219. }
  1220. localObject1 = Bukkit.getPlayer(paramArrayOfString[2]);
  1221. if (localObject1 == null)
  1222. {
  1223. paramCommandSender.sendMessage(this.kb + "Couldn't find that player!");
  1224. return true;
  1225. }
  1226. ((PlayerData)this.playerData.get(((Player)localObject1).getName())).kitUnlockers += Integer.valueOf(paramArrayOfString[3]).intValue();
  1227. ((PlayerData)this.playerData.get(((Player)localObject1).getName())).joined = true;
  1228. if ((this.game.contains(((Player)localObject1).getName())) && (((PlayerData)this.playerData.get(((Player)localObject1).getName())).getKit() == null))
  1229. {
  1230. ((Player)localObject1).getInventory().clear();
  1231. giveDefaultItems((Player)localObject1);
  1232. }
  1233. ((Player)localObject1).sendMessage(this.kb + this.msgs.PlayerReceiveKitUnlocker.replace("%amount%", paramArrayOfString[3]));
  1234. paramCommandSender.sendMessage(this.kb + ChatColor.GREEN + ((Player)localObject1).getName() + ChatColor.GRAY + " has received " + ChatColor.LIGHT_PURPLE + paramArrayOfString[3] + ChatColor.GRAY + " Kitunlockers successfully");
  1235. }
  1236. else
  1237. {
  1238. paramCommandSender.sendMessage(this.kb + this.msgs.nopermission);
  1239. }
  1240. }
  1241. else if (paramArrayOfString[0].equalsIgnoreCase("info"))
  1242. {
  1243. paramCommandSender.sendMessage(ChatColor.DARK_AQUA + ChatColor.STRIKETHROUGH + " ----------" + ChatColor.AQUA + " Information " + ChatColor.DARK_AQUA + ChatColor.STRIKETHROUGH + "----------");
  1244. paramCommandSender.sendMessage(ChatColor.AQUA + "Version: " + ChatColor.GREEN + getDescription().getVersion());
  1245. paramCommandSender.sendMessage(ChatColor.AQUA + "Vault: " + ChatColor.GREEN + (econ != null));
  1246. paramCommandSender.sendMessage(ChatColor.AQUA + "UUID: " + ChatColor.GREEN + this.config.UUID);
  1247. paramCommandSender.sendMessage(ChatColor.AQUA + "MySQL: " + ChatColor.GREEN + this.config.useMySQL);
  1248. paramCommandSender.sendMessage(ChatColor.AQUA + "Updater Running: " + ChatColor.GREEN + (this.Updater != null));
  1249. long l = this.nextUpdate == 0L ? 0L : (this.nextUpdate - System.currentTimeMillis()) / 1000L;
  1250. paramCommandSender.sendMessage(ChatColor.AQUA + "Next Update: " + ChatColor.GREEN + l + "s " + ChatColor.AQUA + "(" + ChatColor.LIGHT_PURPLE + l / 60L + "m" + ChatColor.AQUA + ")");
  1251. paramCommandSender.sendMessage(ChatColor.AQUA + "Total Updates: " + ChatColor.GREEN + this.totalUpdates);
  1252. paramCommandSender.sendMessage(ChatColor.DARK_AQUA + ChatColor.STRIKETHROUGH + " ---------------------------------");
  1253. }
  1254. }
  1255. }
  1256. }
  1257. return true;
  1258. }
  1259.  
  1260. public void loadMaps()
  1261. {
  1262. this.maps.clear();
  1263. if (this.fileManager.getMapsConfig().getConfigurationSection("Maps") == null) {
  1264. return;
  1265. }
  1266. for (String str1 : this.fileManager.getMapsConfig().getConfigurationSection("Maps").getKeys(false))
  1267. {
  1268. String str2 = this.fileManager.getMapsConfig().getString("Maps." + str1 + ".world");
  1269. int i = this.fileManager.getMapsConfig().getInt("Maps." + str1 + ".x");
  1270. int j = this.fileManager.getMapsConfig().getInt("Maps." + str1 + ".y");
  1271. int k = this.fileManager.getMapsConfig().getInt("Maps." + str1 + ".z");
  1272. int m = this.fileManager.getMapsConfig().getInt("Maps." + str1 + ".yaw");
  1273. int n = this.fileManager.getMapsConfig().getInt("Maps." + str1 + ".pitch");
  1274. this.maps.put(str1.toLowerCase(), new Location(Bukkit.getWorld(str2), i, j, k, m, n));
  1275. }
  1276. }
  1277.  
  1278. public void updateList()
  1279. {
  1280. if (this.maps.isEmpty())
  1281. {
  1282. this.ListOfMaps = null;
  1283. return;
  1284. }
  1285. Iterator localIterator = this.maps.keySet().iterator();
  1286. this.ListOfMaps = (ChatColor.AQUA + (String)localIterator.next());
  1287. while (localIterator.hasNext()) {
  1288. this.ListOfMaps = (this.ListOfMaps + ChatColor.GRAY + ", " + ChatColor.AQUA + (String)localIterator.next());
  1289. }
  1290. }
  1291.  
  1292. public void setSpawn(String paramString, Location paramLocation)
  1293. {
  1294. this.fileManager.getMapsConfig().set("Maps." + paramString + ".world", paramLocation.getWorld().getName());
  1295. this.fileManager.getMapsConfig().set("Maps." + paramString + ".x", Integer.valueOf(paramLocation.getBlockX()));
  1296. this.fileManager.getMapsConfig().set("Maps." + paramString + ".y", Integer.valueOf(paramLocation.getBlockY()));
  1297. this.fileManager.getMapsConfig().set("Maps." + paramString + ".z", Integer.valueOf(paramLocation.getBlockZ()));
  1298. this.fileManager.getMapsConfig().set("Maps." + paramString + ".yaw", Float.valueOf(paramLocation.getYaw()));
  1299. this.fileManager.getMapsConfig().set("Maps." + paramString + ".pitch", Float.valueOf(paramLocation.getPitch()));
  1300. this.fileManager.saveMapsConfig();
  1301. }
  1302.  
  1303. public void clearData(Player paramPlayer)
  1304. {
  1305. paramPlayer.getInventory().clear();
  1306. paramPlayer.getInventory().setArmorContents(null);
  1307. paramPlayer.setHealth(20.0D);
  1308. paramPlayer.setFoodLevel(20);
  1309. paramPlayer.setLevel(0);
  1310. paramPlayer.setExp(0.0F);
  1311. for (PotionEffect localPotionEffect : paramPlayer.getActivePotionEffects()) {
  1312. paramPlayer.removePotionEffect(localPotionEffect.getType());
  1313. }
  1314. paramPlayer.setGameMode(GameMode.SURVIVAL);
  1315. paramPlayer.setAllowFlight(false);
  1316. paramPlayer.setFlying(false);
  1317. paramPlayer.setFireTicks(0);
  1318. }
  1319.  
  1320. public String target(Player paramPlayer)
  1321. {
  1322. return this.config.UUID ? paramPlayer.getUniqueId().toString() : paramPlayer.getName();
  1323. }
  1324.  
  1325. public void createScoreboard(Player paramPlayer)
  1326. {
  1327. PlayerData localPlayerData = (PlayerData)this.playerData.get(paramPlayer.getName());
  1328. Scoreboard localScoreboard = this.manager.getNewScoreboard();
  1329. Objective localObjective = localScoreboard.registerNewObjective("KitBattle", "dummy");
  1330. localObjective.setDisplaySlot(DisplaySlot.SIDEBAR);
  1331. localObjective.setDisplayName(this.msgs.scoreboard_prefix);
  1332. localObjective.getScore(" ").setScore(5);
  1333. localObjective.getScore(this.msgs.scoreboard_stats).setScore(4);
  1334. localObjective.getScore(this.msgs.scoreboard_kills.replace("%kills%", String.valueOf(localPlayerData.getKills()))).setScore(3);
  1335. localObjective.getScore(this.msgs.scoreboard_deaths.replace("%deaths%", String.valueOf(localPlayerData.getDeaths()))).setScore(2);
  1336. localObjective.getScore(this.msgs.scoreboard_coins.replace("%coins%", String.valueOf(getCoins(paramPlayer)))).setScore(1);
  1337. localObjective.getScore(" ").setScore(0);
  1338. localObjective.getScore(this.msgs.scoreboard_exp.replace("%exp%", String.valueOf(localPlayerData.getExp()))).setScore(-1);
  1339. localObjective.getScore(this.msgs.scoreboard_rank).setScore(-2);
  1340. localObjective.getScore(this.msgs.scoreboard_rankname.replace("%rank%", localPlayerData.getRank().getName())).setScore(-3);
  1341. if (localPlayerData.getNextRank() != null)
  1342. {
  1343. localObjective.getScore(this.msgs.scoreboard_nextrank).setScore(-4);
  1344. localObjective.getScore(this.msgs.scoreboard_nextrankname.replace("%requiredexp%", String.valueOf(localPlayerData.getNextRank().getRequiredExp() - localPlayerData.getExp()))).setScore(-5);
  1345. }
  1346. paramPlayer.setScoreboard(localScoreboard);
  1347. }
  1348.  
  1349. public void giveDefaultItems(Player paramPlayer)
  1350. {
  1351. paramPlayer.getInventory().addItem(new ItemStack[] { this.KitSelector });
  1352. paramPlayer.getInventory().addItem(new ItemStack[] { this.ShopOpener });
  1353. if ((this.challengeLocation1 != null) && (this.challengeLocation2 != null)) {
  1354. paramPlayer.getInventory().addItem(new ItemStack[] { this.Challenger });
  1355. }
  1356. if (((PlayerData)this.playerData.get(paramPlayer.getName())).kitUnlockers > 0)
  1357. {
  1358. ItemStack localItemStack = this.KitUnlocker.clone();
  1359. localItemStack.setAmount(((PlayerData)this.playerData.get(paramPlayer.getName())).kitUnlockers);
  1360. paramPlayer.getInventory().setItem(8, localItemStack);
  1361. }
  1362. ((PlayerData)this.playerData.get(paramPlayer.getName())).cooldown = 0L;
  1363. paramPlayer.updateInventory();
  1364. }
  1365.  
  1366. public ItemStack setName(ItemStack paramItemStack, String paramString)
  1367. {
  1368. ItemMeta localItemMeta = paramItemStack.getItemMeta();
  1369. localItemMeta.setDisplayName(paramString);
  1370. paramItemStack.setItemMeta(localItemMeta);
  1371. return paramItemStack;
  1372. }
  1373.  
  1374. public void addLore(ItemStack paramItemStack, String paramString)
  1375. {
  1376. ItemMeta localItemMeta = paramItemStack.getItemMeta();
  1377. Object localObject = new ArrayList();
  1378. if (localItemMeta.getLore() != null) {
  1379. localObject = localItemMeta.getLore();
  1380. }
  1381. ((List)localObject).add(paramString);
  1382. localItemMeta.setLore((List)localObject);
  1383. paramItemStack.setItemMeta(localItemMeta);
  1384. }
  1385.  
  1386. public void replaceLore(ItemStack paramItemStack, String paramString1, String paramString2)
  1387. {
  1388. ItemMeta localItemMeta = paramItemStack.getItemMeta();
  1389. if (localItemMeta.getLore() == null) {
  1390. return;
  1391. }
  1392. List localList = localItemMeta.getLore();
  1393. ArrayList localArrayList = new ArrayList();
  1394. for (String str : localList) {
  1395. if (str.equals(paramString1)) {
  1396. localArrayList.add(str.replace(paramString1, paramString2));
  1397. } else {
  1398. localArrayList.add(str);
  1399. }
  1400. }
  1401. localItemMeta.setLore(localArrayList);
  1402. paramItemStack.setItemMeta(localItemMeta);
  1403. }
  1404.  
  1405. public boolean isNumber(String paramString)
  1406. {
  1407. try
  1408. {
  1409. Integer.parseInt(paramString);
  1410. return true;
  1411. }
  1412. catch (NumberFormatException localNumberFormatException) {}
  1413. return false;
  1414. }
  1415.  
  1416. public boolean isMaterial(String paramString)
  1417. {
  1418. try
  1419. {
  1420. Material.valueOf(paramString);
  1421. return true;
  1422. }
  1423. catch (IllegalArgumentException localIllegalArgumentException) {}
  1424. return false;
  1425. }
  1426.  
  1427. public void loadChallengeLocation()
  1428. {
  1429. String str;
  1430. int i;
  1431. int j;
  1432. int k;
  1433. int m;
  1434. int n;
  1435. if (getConfig().contains("Challenge-Location.1"))
  1436. {
  1437. str = getConfig().getString("Challenge-Location.1.world");
  1438. i = getConfig().getInt("Challenge-Location.1.x");
  1439. j = getConfig().getInt("Challenge-Location.1.y");
  1440. k = getConfig().getInt("Challenge-Location.1.z");
  1441. m = getConfig().getInt("Challenge-Location.1.yaw");
  1442. n = getConfig().getInt("Challenge-Location.1.pitch");
  1443. this.challengeLocation1 = new Location(Bukkit.getWorld(str), i, j, k, m, n);
  1444. }
  1445. if (getConfig().contains("Challenge-Location.2"))
  1446. {
  1447. str = getConfig().getString("Challenge-Location.2.world");
  1448. i = getConfig().getInt("Challenge-Location.2.x");
  1449. j = getConfig().getInt("Challenge-Location.2.y");
  1450. k = getConfig().getInt("Challenge-Location.2.z");
  1451. m = getConfig().getInt("Challenge-Location.2.yaw");
  1452. n = getConfig().getInt("Challenge-Location.2.pitch");
  1453. this.challengeLocation2 = new Location(Bukkit.getWorld(str), i, j, k, m, n);
  1454. }
  1455. }
  1456.  
  1457. public void removeFromChallenge(Player paramPlayer)
  1458. {
  1459. this.cantMove.remove(paramPlayer.getName());
  1460. if (this.Fighting.containsKey(paramPlayer.getName()))
  1461. {
  1462. fixVisiblity(paramPlayer);
  1463. Player localPlayer = Bukkit.getPlayer((String)this.Challenging.get(paramPlayer.getName()));
  1464. localPlayer.sendMessage(this.kb + this.msgs.PlayerQuitInChallenge.replace("%player%", paramPlayer.getName()));
  1465. this.cantMove.remove(localPlayer.getName());
  1466. this.Fighting.remove(localPlayer.getName());
  1467. this.Challenging.remove(localPlayer.getName());
  1468. clearData(localPlayer);
  1469. ((PlayerData)this.playerData.get(localPlayer.getName())).setKit(null);
  1470. localPlayer.teleport((Location)this.maps.get(((PlayerData)this.playerData.get(localPlayer.getName())).getMap()));
  1471. this.listen.spawnFirework(localPlayer.getLocation());
  1472. giveDefaultItems(localPlayer);
  1473. ((BukkitTask)this.Fighting.get(paramPlayer.getName())).cancel();
  1474. }
  1475. this.Fighting.remove(paramPlayer.getName());
  1476. this.Challenging.remove(paramPlayer.getName());
  1477. }
  1478.  
  1479. public void fixVisiblity(Player paramPlayer)
  1480. {
  1481. for (String str : this.Fighting.keySet())
  1482. {
  1483. Player localPlayer = Bukkit.getPlayer(str);
  1484. localPlayer.showPlayer(paramPlayer);
  1485. paramPlayer.showPlayer(localPlayer);
  1486. }
  1487. }
  1488.  
  1489. public void leave(Player paramPlayer)
  1490. {
  1491. this.game.remove(paramPlayer.getName());
  1492. clearData(paramPlayer);
  1493. ((PlayerData)this.playerData.get(paramPlayer.getName())).killstreak = 0;
  1494. ((PlayerData)this.playerData.get(paramPlayer.getName())).restoreData(paramPlayer);
  1495. paramPlayer.sendMessage(this.kb + this.msgs.PlayerLeave);
  1496. removeFromChallenge(paramPlayer);
  1497. }
  1498.  
  1499. public void startShuffler()
  1500. {
  1501. new BukkitRunnable()
  1502. {
  1503. public void run()
  1504. {
  1505. if (!main.this.shuffler.hasNext()) {
  1506. main.this.shuffler = main.this.maps.keySet().iterator();
  1507. }
  1508. main.this.currentMap = ((String)main.this.shuffler.next());
  1509. Player[] arrayOfPlayer;
  1510. int j = (arrayOfPlayer = Bukkit.getOnlinePlayers()).length;
  1511. for (int i = 0; i < j; i++)
  1512. {
  1513. Player localPlayer = arrayOfPlayer[i];
  1514. if (!main.this.Fighting.containsKey(localPlayer.getName()))
  1515. {
  1516. main.this.clearData(localPlayer);
  1517. ((PlayerData)main.this.playerData.get(localPlayer.getName())).setKit(null);
  1518. main.this.giveDefaultItems(localPlayer);
  1519. localPlayer.teleport((Location)main.this.maps.get(main.this.currentMap));
  1520. }
  1521. ((PlayerData)main.this.playerData.get(localPlayer.getName())).setMap(main.this.currentMap);
  1522. localPlayer.sendMessage(main.this.kb + main.this.msgs.MapSwitch.replace("%map%", main.this.currentMap));
  1523. }
  1524. }
  1525. }.runTaskTimer(this, 0L, 1200 * this.config.ShuffleEveryInMinutes);
  1526. }
  1527.  
  1528. private void setupEcon()
  1529. {
  1530. RegisteredServiceProvider localRegisteredServiceProvider = getServer().getServicesManager().getRegistration(Economy.class);
  1531. if (localRegisteredServiceProvider != null) {
  1532. econ = (Economy)localRegisteredServiceProvider.getProvider();
  1533. }
  1534. }
  1535.  
  1536. public int getCoins(Player paramPlayer)
  1537. {
  1538. if (econ != null) {
  1539. return (int)econ.getBalance(paramPlayer);
  1540. }
  1541. return ((PlayerData)this.playerData.get(paramPlayer.getName())).coins;
  1542. }
  1543.  
  1544. public void addCoins(Player paramPlayer, int paramInt)
  1545. {
  1546. if (econ != null)
  1547. {
  1548. econ.depositPlayer(paramPlayer, paramInt);
  1549. }
  1550. else
  1551. {
  1552. PlayerData localPlayerData = (PlayerData)this.playerData.get(paramPlayer.getName());
  1553. localPlayerData.coins += paramInt;
  1554. if (!localPlayerData.joined) {
  1555. localPlayerData.joined = true;
  1556. }
  1557. }
  1558. }
  1559.  
  1560. public void removeCoins(Player paramPlayer, int paramInt)
  1561. {
  1562. if (econ != null)
  1563. {
  1564. econ.withdrawPlayer(paramPlayer, paramInt);
  1565. }
  1566. else
  1567. {
  1568. PlayerData localPlayerData = (PlayerData)this.playerData.get(paramPlayer.getName());
  1569. localPlayerData.coins -= paramInt;
  1570. if (!localPlayerData.joined) {
  1571. localPlayerData.joined = true;
  1572. }
  1573. }
  1574. }
  1575.  
  1576. public void setCoins(Player paramPlayer, int paramInt)
  1577. {
  1578. if (econ != null)
  1579. {
  1580. int i = paramInt - getCoins(paramPlayer);
  1581. if (i > 0) {
  1582. econ.depositPlayer(paramPlayer, i);
  1583. } else {
  1584. econ.withdrawPlayer(paramPlayer, -i);
  1585. }
  1586. }
  1587. else
  1588. {
  1589. PlayerData localPlayerData = (PlayerData)this.playerData.get(paramPlayer.getName());
  1590. localPlayerData.coins = paramInt;
  1591. if (!localPlayerData.joined) {
  1592. localPlayerData.joined = true;
  1593. }
  1594. }
  1595. }
  1596.  
  1597. public void organizeInventory(Inventory paramInventory)
  1598. {
  1599. int i = paramInventory.getSize() - 1;
  1600. for (int j = 0; j < i; j++) {
  1601. if (paramInventory.getItem(j) == null) {
  1602. for (int k = j; k < i; k++)
  1603. {
  1604. paramInventory.setItem(k, paramInventory.getItem(k + 1));
  1605. paramInventory.setItem(k + 1, new ItemStack(Material.AIR));
  1606. }
  1607. }
  1608. }
  1609. }
  1610.  
  1611. public boolean fixUpdater()
  1612. {
  1613. if ((this.fileManager.getSignsConfig().getConfigurationSection("Top") == null) || (this.fileManager.getSignsConfig().getConfigurationSection("Top").getKeys(false).isEmpty()))
  1614. {
  1615. if (this.Updater != null) {
  1616. this.Updater.cancel();
  1617. }
  1618. this.Updater = null;
  1619. this.nextUpdate = 0L;
  1620. return false;
  1621. }
  1622. if (this.Updater != null) {
  1623. return false;
  1624. }
  1625. this.logger.info("[KitBattle] Top signs updater is about to start!");
  1626. this.Updater = new BukkitRunnable()
  1627. {
  1628. public void run()
  1629. {
  1630. main.this.totalUpdates += 1;
  1631. main.this.nextUpdate = (System.currentTimeMillis() + main.this.config.UpdateTopSignsEveryInMinutes * 60000);
  1632. main.this.logger.info("[KitBattle] Updating top signs!");
  1633. final Object localObject1;
  1634. final Object localObject2;
  1635. final Object localObject3;
  1636. if (main.this.config.useMySQL)
  1637. {
  1638. try
  1639. {
  1640. Statement localStatement = main.this.connection.createStatement();
  1641. localObject1 = localStatement.executeQuery("SELECT * FROM " + main.this.config.tableprefix + " ORDER BY Kills");
  1642. ((ResultSet)localObject1).findColumn("player_name");
  1643. localObject2 = main.this.fileManager.getSignsConfig().getConfigurationSection("Top").getKeys(false).iterator();
  1644. while (((Iterator)localObject2).hasNext())
  1645. {
  1646. localObject3 = (String)((Iterator)localObject2).next();
  1647. final int i = Integer.valueOf((String)localObject3).intValue();
  1648. String str = null;
  1649. int j = 0;
  1650. if (((ResultSet)localObject1).last()) {
  1651. if (i == 1) {
  1652. str = ((ResultSet)localObject1).getString("player_name");
  1653. } else {
  1654. for (int k = 1; k < i; k++) {
  1655. if (((ResultSet)localObject1).previous()) {
  1656. str = ((ResultSet)localObject1).getString("player_name");
  1657. } else {
  1658. str = null;
  1659. }
  1660. }
  1661. }
  1662. }
  1663. if (str != null)
  1664. {
  1665. localObject4 = main.this.connection.createStatement().executeQuery("SELECT Kills FROM " + main.this.config.tableprefix + " WHERE player_name = '" + str + "';");
  1666. ((ResultSet)localObject4).next();
  1667. j = ((ResultSet)localObject4).getInt("Kills");
  1668. ((ResultSet)localObject4).close();
  1669. }
  1670. else
  1671. {
  1672. str = "NO_PLAYER";
  1673. }
  1674. if (!((Iterator)localObject2).hasNext())
  1675. {
  1676. ((ResultSet)localObject1).close();
  1677. localStatement.close();
  1678. }
  1679. final Object localObject4 = str;
  1680. final int m = j;
  1681. new BukkitRunnable()
  1682. {
  1683. public void run()
  1684. {
  1685. World localWorld = Bukkit.getWorld(main.this.fileManager.getSignsConfig().getString("Top." + localObject3 + ".world"));
  1686. int i = main.this.fileManager.getSignsConfig().getInt("Top." + localObject3 + ".x");
  1687. int j = main.this.fileManager.getSignsConfig().getInt("Top." + localObject3 + ".y");
  1688. int k = main.this.fileManager.getSignsConfig().getInt("Top." + localObject3 + ".z");
  1689.  
  1690. Block localBlock = localWorld.getBlockAt(i, j, k);
  1691. if ((localBlock != null) && ((localBlock.getType().equals(Material.SIGN)) || (localBlock.getType().equals(Material.SIGN_POST)) || (localBlock.getType().equals(Material.WALL_SIGN))))
  1692. {
  1693. org.bukkit.block.Sign localSign = (org.bukkit.block.Sign)localBlock.getState();
  1694. if ((localSign.getLine(0).equals(main.this.config.SignsPrefix)) && (localSign.getLine(1).equals("Top")) &&
  1695. (main.this.isNumber(localSign.getLine(2).replace("#", "").split(" ")[0])))
  1696. {
  1697. localSign.setLine(2, "#" + i + " " + localObject4);
  1698. localSign.setLine(3, "(" + m + ")");
  1699. localSign.update(true);
  1700.  
  1701. main.this.updateHead(localSign.getLocation().add(0.0D, 1.0D, 0.0D), localSign, localObject4);
  1702. }
  1703. }
  1704. }
  1705. }.runTask(main.plugin);
  1706. }
  1707. }
  1708. catch (SQLException localSQLException)
  1709. {
  1710. localSQLException.printStackTrace();
  1711. }
  1712. }
  1713. else
  1714. {
  1715. if (main.this.fileManager.getPlayersConfig().getConfigurationSection("Players") == null) {
  1716. return;
  1717. }
  1718. final HashMap localHashMap = new HashMap();
  1719. localObject1 = new HashMap();
  1720. localObject2 = main.this.fileManager.getPlayersConfig();
  1721. localObject3 = ((FileConfiguration)localObject2).getConfigurationSection("Players").getKeys(false).iterator();
  1722.  
  1723. new BukkitRunnable()
  1724. {
  1725. public void run()
  1726. {
  1727. int i = 0;
  1728. final Object localObject;
  1729. while ((i < 300) && (localObject3.hasNext()))
  1730. {
  1731. i++;
  1732. localObject = (String)localObject3.next();
  1733. if (main.this.config.UUID) {
  1734. localObject = localObject2.getString("Players." + (String)localObject + ".Name");
  1735. }
  1736. localHashMap.put(localObject, Integer.valueOf(localObject2.getInt("Players." + (String)localObject + ".Kills")));
  1737. }
  1738. if (!localObject3.hasNext())
  1739. {
  1740. cancel();
  1741.  
  1742. localObject = localHashMap.keySet().iterator();
  1743.  
  1744. new BukkitRunnable()
  1745. {
  1746. public void run()
  1747. {
  1748. int i = 0;
  1749. while ((i < 100) && (localObject.hasNext()))
  1750. {
  1751. i++;
  1752. String str1 = (String)localObject.next();
  1753. int j = 1;
  1754. int k = ((Integer)this.val$kills.get(str1)).intValue();
  1755. for (String str2 : this.val$kills.keySet()) {
  1756. if (((Integer)this.val$kills.get(str2)).intValue() > k) {
  1757. j++;
  1758. }
  1759. }
  1760. this.val$organizedKills.put(Integer.valueOf(j), str1);
  1761. }
  1762. if (!localObject.hasNext())
  1763. {
  1764. cancel();
  1765.  
  1766. new BukkitRunnable()
  1767. {
  1768. public void run()
  1769. {
  1770. for (String str1 : main.this.fileManager.getSignsConfig().getConfigurationSection("Top").getKeys(false))
  1771. {
  1772. World localWorld = Bukkit.getWorld(main.this.fileManager.getSignsConfig().getString("Top." + str1 + ".world"));
  1773. int i = main.this.fileManager.getSignsConfig().getInt("Top." + str1 + ".x");
  1774. int j = main.this.fileManager.getSignsConfig().getInt("Top." + str1 + ".y");
  1775. int k = main.this.fileManager.getSignsConfig().getInt("Top." + str1 + ".z");
  1776.  
  1777. Block localBlock = localWorld.getBlockAt(i, j, k);
  1778. if ((localBlock != null) && ((localBlock.getType().equals(Material.SIGN)) || (localBlock.getType().equals(Material.SIGN_POST)) || (localBlock.getType().equals(Material.WALL_SIGN))))
  1779. {
  1780. org.bukkit.block.Sign localSign = (org.bukkit.block.Sign)localBlock.getState();
  1781. if ((localSign.getLine(0).equals(main.this.config.SignsPrefix)) && (localSign.getLine(1).equals("Top")) &&
  1782. (main.this.isNumber(localSign.getLine(2).replace("#", "").split(" ")[0])))
  1783. {
  1784. int m = Integer.valueOf(localSign.getLine(2).replace("#", "").split(" ")[0]).intValue();
  1785. String str2 = "NO_PLAYER";
  1786. if (this.val$organizedKills.containsKey(Integer.valueOf(m)))
  1787. {
  1788. str2 = (String)this.val$organizedKills.get(Integer.valueOf(m));
  1789. localSign.setLine(3, "(" + this.val$kills.get(str2) + ")");
  1790. }
  1791. else
  1792. {
  1793. str2 = "NO_PLAYER";
  1794. localSign.setLine(3, "(0)");
  1795. }
  1796. localSign.setLine(2, "#" + m + " " + str2);
  1797. localSign.update(true);
  1798.  
  1799. main.this.updateHead(localSign.getLocation().add(0.0D, 1.0D, 0.0D), localSign, str2);
  1800. }
  1801. }
  1802. }
  1803. }
  1804. }.runTask(main.plugin);
  1805. }
  1806. }
  1807. }.runTaskTimerAsynchronously(main.plugin, 0L, 1L);
  1808. }
  1809. }
  1810. }.runTaskTimerAsynchronously(main.plugin, 0L, 1L);
  1811. }
  1812. }
  1813. }.runTaskTimerAsynchronously(this, 0L, this.config.UpdateTopSignsEveryInMinutes * 1200);
  1814. this.logger.info("[KitBattle] Top signs updater has started!");
  1815. return true;
  1816. }
  1817.  
  1818. public void updateHead(Location paramLocation, org.bukkit.block.Sign paramSign, String paramString)
  1819. {
  1820. Block localBlock = null;
  1821. Object localObject;
  1822. if (paramLocation.getBlock().getType().equals(Material.SKULL))
  1823. {
  1824. localBlock = paramLocation.getBlock();
  1825. }
  1826. else
  1827. {
  1828. localObject = ((org.bukkit.material.Sign)paramSign.getData()).getFacing();
  1829. if (((BlockFace)localObject).equals(BlockFace.WEST)) {
  1830. paramLocation.add(1.0D, 0.0D, 0.0D);
  1831. }
  1832. if (((BlockFace)localObject).equals(BlockFace.SOUTH)) {
  1833. paramLocation.add(0.0D, 0.0D, -1.0D);
  1834. }
  1835. if (((BlockFace)localObject).equals(BlockFace.EAST)) {
  1836. paramLocation.add(-1.0D, 0.0D, 0.0D);
  1837. }
  1838. if (((BlockFace)localObject).equals(BlockFace.NORTH)) {
  1839. paramLocation.add(0.0D, 0.0D, 1.0D);
  1840. }
  1841. if (paramLocation.getBlock().getType().equals(Material.SKULL)) {
  1842. localBlock = paramLocation.getBlock();
  1843. }
  1844. }
  1845. if (localBlock != null)
  1846. {
  1847. localObject = (Skull)localBlock.getState();
  1848. ((Skull)localObject).setSkullType(SkullType.PLAYER);
  1849. ((Skull)localObject).setOwner(paramString.equals("NO_PLAYER") ? "Notch" : paramString);
  1850. ((Skull)localObject).update();
  1851. }
  1852. }
  1853. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement