Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Decompiler 5531ms, total 6646ms, lines 2520 */
- package me.wazup.towerdefense;
- import com.google.common.collect.Lists;
- import com.google.common.io.ByteArrayDataOutput;
- import com.google.common.io.ByteStreams;
- import java.io.File;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.lang.reflect.InvocationTargetException;
- import java.lang.reflect.Method;
- import java.sql.SQLException;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.Collection;
- import java.util.Collections;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.LinkedHashMap;
- import java.util.LinkedList;
- import java.util.List;
- import java.util.Random;
- import java.util.Map.Entry;
- import me.wazup.towerdefense.Enums.AchievementType;
- import me.wazup.towerdefense.Enums.ArenaState;
- import me.wazup.towerdefense.Enums.SPECIAL_CHARACTER;
- import me.wazup.towerdefense.Tower.ActiveTower;
- import me.wazup.towerdefense.TowerDefense.1;
- import me.wazup.towerdefense.TowerDefense.10;
- import me.wazup.towerdefense.TowerDefense.11;
- import me.wazup.towerdefense.TowerDefense.12;
- import me.wazup.towerdefense.TowerDefense.13;
- import me.wazup.towerdefense.TowerDefense.14;
- import me.wazup.towerdefense.TowerDefense.15;
- import me.wazup.towerdefense.TowerDefense.16;
- import me.wazup.towerdefense.TowerDefense.17;
- import me.wazup.towerdefense.TowerDefense.2;
- import me.wazup.towerdefense.TowerDefense.3;
- import me.wazup.towerdefense.TowerDefense.4;
- import me.wazup.towerdefense.TowerDefense.5;
- import me.wazup.towerdefense.TowerDefense.6;
- import me.wazup.towerdefense.TowerDefense.7;
- import me.wazup.towerdefense.TowerDefense.8;
- import me.wazup.towerdefense.TowerDefense.9;
- import net.milkbowl.vault.economy.Economy;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.Color;
- import org.bukkit.FireworkEffect;
- import org.bukkit.GameMode;
- import org.bukkit.Location;
- import org.bukkit.Material;
- import org.bukkit.SkullType;
- import org.bukkit.Sound;
- import org.bukkit.World;
- import org.bukkit.WorldCreator;
- import org.bukkit.FireworkEffect.Type;
- import org.bukkit.World.Environment;
- import org.bukkit.block.Block;
- import org.bukkit.block.BlockState;
- import org.bukkit.block.Sign;
- import org.bukkit.block.Skull;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandSender;
- import org.bukkit.command.ConsoleCommandSender;
- import org.bukkit.configuration.file.FileConfiguration;
- import org.bukkit.configuration.file.YamlConfiguration;
- import org.bukkit.enchantments.Enchantment;
- import org.bukkit.entity.Firework;
- import org.bukkit.entity.LivingEntity;
- import org.bukkit.entity.Player;
- import org.bukkit.inventory.Inventory;
- import org.bukkit.inventory.InventoryHolder;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.inventory.meta.FireworkMeta;
- import org.bukkit.inventory.meta.SkullMeta;
- import org.bukkit.plugin.java.JavaPlugin;
- import org.bukkit.potion.PotionEffect;
- import org.bukkit.potion.PotionEffectType;
- import org.bukkit.scheduler.BukkitTask;
- public class TowerDefense extends JavaPlugin {
- TowerDefense plugin;
- public static TowerDefenseAPI api;
- Random r = new Random();
- ChatColor[] colors;
- ArrayList<String> players;
- ArrayList<String> lobbyPlayers;
- ArrayList<Party> parties;
- LinkedHashMap<String, Tower> towers;
- LinkedHashMap<String, Enemy> enemies;
- LinkedHashMap<String, Enemy> bosses;
- LinkedHashMap<String, ClassData> classes;
- HashMap<String, PlayerData> playerData;
- HashMap<String, Location[]> selectionMode;
- HashMap<String, String> buildingAreaMode;
- HashMap<String, Object> playersSelectedObject;
- HashMap<String, Integer> towerSpeeds;
- HashMap<String, Double> enemySpeeds;
- HashMap<Location, Integer> joinSigns;
- HashMap<Location, Integer> topSigns;
- HashMap<String, Arena> arenas;
- ItemStack wand_itemstack;
- ItemStack towerbuildarea_itemstack;
- ItemStack pane_itemstack;
- ItemStack save_itemstack;
- ItemStack plus_itemstack;
- ItemStack minus_itemstack;
- ItemStack win_itemstack;
- ItemStack lose_itemstack;
- ItemStack prestige_itemstack;
- ItemStack quit_itemstack;
- ItemStack play_itemstack;
- ItemStack profile_itemstack;
- ItemStack guide_itemstack;
- ItemStack party_itemstack;
- ItemStack teleporter_itemstack;
- ItemStack difficulty_itemstack;
- ItemStack classes_itemstack;
- ItemStack enemyjoin_itemstack;
- ItemStack summoner_itemstack;
- ItemStack autojoin_itemstack;
- ItemStack back_itemstack;
- ItemStack next_itemstack;
- ItemStack previous_itemstack;
- ItemStack stats_itemstack;
- ItemStack achievements_itemstack;
- ItemStack create_itemstack;
- ItemStack join_itemstack;
- ItemStack leave_itemstack;
- ItemStack invite_itemstack;
- Inventory profileInventory;
- Inventory partyMenu;
- Inventory quitInventory;
- Inventory spectatorMenu;
- Inventory classesInventory;
- Inventory prestigeInventory;
- SmartInventory arenaSelector;
- SmartInventory partySelector;
- SmartInventory playerInviter;
- SmartInventory enemyGuide;
- int[] smartSlots;
- PotionEffect slownessEffect;
- PotionEffect resistanceEffect;
- PotionEffect blindnessEffect;
- Location lobbyLocation;
- BukkitTask savingTask;
- BukkitTask leaderboard_updater;
- long leaderboard_updater_time;
- BukkitTask scoreboardTitleAnimationTask;
- Sound CLICK;
- Sound FIREWORK_TWINKLE;
- Sound FIREWORK_BLAST;
- Sound LAVA_POP;
- Sound LEVEL_UP;
- Sound ANVIL_LAND;
- Sound ITEM_PICKUP;
- Sound NOTE_PLING;
- Sound PISTON_EXTEND;
- Sound BLAZE_DEATH;
- FilesManager filesManager;
- Config config;
- MySQL mysql;
- RanksManager ranksManager;
- AchievementsManager achievementsManager;
- Broadcaster broadcaster;
- Customization customization;
- HologramsManager hologramsManager;
- Economy vault;
- EnemyController enemyController;
- TowerController towerController;
- Method sendBlockChange;
- Method setCollidable;
- static Method setDamageMethod;
- GameMode spectatorMode;
- List<BlockState> rollback;
- String healthString;
- boolean availableUpdate;
- public TowerDefense() {
- this.colors = new ChatColor[]{ChatColor.DARK_AQUA, ChatColor.GOLD, ChatColor.GRAY, ChatColor.BLUE, ChatColor.GREEN, ChatColor.AQUA, ChatColor.RED, ChatColor.LIGHT_PURPLE, ChatColor.YELLOW};
- this.players = new ArrayList();
- this.lobbyPlayers = new ArrayList();
- this.towers = new LinkedHashMap();
- this.enemies = new LinkedHashMap();
- this.bosses = new LinkedHashMap();
- this.classes = new LinkedHashMap();
- this.playerData = new HashMap();
- this.selectionMode = new HashMap();
- this.buildingAreaMode = new HashMap();
- this.playersSelectedObject = new HashMap();
- this.towerSpeeds = new HashMap();
- this.enemySpeeds = new HashMap();
- this.smartSlots = new int[]{10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43};
- this.slownessEffect = new PotionEffect(PotionEffectType.SLOW, 9999999, 999999);
- this.resistanceEffect = new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, 100, 10);
- this.blindnessEffect = new PotionEffect(PotionEffectType.BLINDNESS, 60, 999999);
- this.leaderboard_updater_time = 0L;
- this.rollback = new ArrayList();
- }
- public void onEnable() {
- this.plugin = this;
- api = new TowerDefenseAPI(this);
- Bukkit.getPluginManager().registerEvents(new TowerDefenseListener(this), this);
- this.broadcaster = new Broadcaster(this);
- this.enemyController = new EnemyController(this);
- this.towerController = new TowerController(this);
- this.loadReflectionMethods();
- this.loadSounds();
- this.loadTowerSpeeds();
- this.loadEnemySpeeds();
- this.loadNonCustomizableItems();
- this.mainSetup();
- Iterator var2 = this.getOnlinePlayers().iterator();
- while(var2.hasNext()) {
- Player var1 = (Player)var2.next();
- this.playerData.put(var1.getName(), new PlayerData(this, var1));
- }
- if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) {
- Bukkit.getConsoleSender().sendMessage(this.customization.prefix + "Found PlaceholderAPI, Hooked: " + (new PlaceholderAPIHooks(this)).register());
- }
- if (Bukkit.getPluginManager().isPluginEnabled("MVdWPlaceholderAPI")) {
- new MVdWPlacholderHook(this);
- Bukkit.getConsoleSender().sendMessage(this.customization.prefix + "Found MVdWPlaceholderAPI, Hooked: true");
- }
- this.healthString = "";
- for(int var3 = 0; var3 < 10; ++var3) {
- this.healthString = this.healthString + SPECIAL_CHARACTER.RECTANGLE.toString();
- }
- ConsoleCommandSender var4 = Bukkit.getConsoleSender();
- var4.sendMessage(ChatColor.RED + "=============================================");
- var4.sendMessage(this.customization.prefix + ChatColor.GREEN + "Plugin has been enabled (v" + this.getDescription().getVersion() + ")");
- var4.sendMessage(ChatColor.RED + "=============================================");
- }
- public void onDisable() {
- ArrayList var1 = new ArrayList();
- Iterator var3 = this.arenas.values().iterator();
- Iterator var5;
- while(var3.hasNext()) {
- Arena var2 = (Arena)var3.next();
- var1.addAll(var2.getSpectators());
- var5 = var2.towers.iterator();
- while(var5.hasNext()) {
- ActiveTower var4 = (ActiveTower)var5.next();
- var4.erase(this.plugin);
- }
- }
- var3 = this.getPlayers(this.players).iterator();
- Player var6;
- while(var3.hasNext()) {
- var6 = (Player)var3.next();
- ((PlayerData)this.playerData.get(var6.getName())).restoreData(var6);
- var6.sendMessage((String)this.customization.messages.get("Player-Leave"));
- var5 = var1.iterator();
- while(var5.hasNext()) {
- Player var7 = (Player)var5.next();
- var6.showPlayer(var7);
- }
- }
- var3 = this.getPlayers(this.playerData.keySet()).iterator();
- while(var3.hasNext()) {
- var6 = (Player)var3.next();
- ((PlayerData)this.playerData.get(var6.getName())).save(var6);
- }
- this.enemyController.unregisterAll();
- if (this.hologramsManager != null && this.hologramsManager.leaderboardHologram != null) {
- this.hologramsManager.leaderboardHologram.delete();
- }
- var3 = this.getPlayers(this.selectionMode.keySet()).iterator();
- while(var3.hasNext()) {
- var6 = (Player)var3.next();
- var6.getInventory().removeItem(new ItemStack[]{this.wand_itemstack});
- }
- var3 = this.getPlayers(this.buildingAreaMode.keySet()).iterator();
- while(var3.hasNext()) {
- var6 = (Player)var3.next();
- var6.getInventory().removeItem(new ItemStack[]{this.towerbuildarea_itemstack});
- }
- Bukkit.getConsoleSender().sendMessage(this.customization.prefix + "Plugin has been disabled!");
- }
- public boolean onCommand(CommandSender var1, Command var2, String var3, String[] var4) {
- if (var3.equalsIgnoreCase("towerdefense") || var3.equalsIgnoreCase("td")) {
- if (var1 instanceof Player) {
- ((Player)var1).playSound(((Player)var1).getLocation(), this.CLICK, 1.0F, 1.0F);
- }
- if (var4.length == 0) {
- ChatColor var23 = this.colors[this.r.nextInt(this.colors.length)];
- var1.sendMessage("" + var23 + ChatColor.STRIKETHROUGH + "-------------" + ChatColor.YELLOW + " TowerDefense " + ChatColor.GRAY + "[" + this.getDescription().getVersion() + "] " + var23 + ChatColor.STRIKETHROUGH + "-------------");
- var1.sendMessage(var23 + " - " + ChatColor.YELLOW + "/TowerDefense | td " + var23 + SPECIAL_CHARACTER.ARROW + ChatColor.GREEN + " Shows a list of commands");
- if (!this.config.bungee_mode_enabled) {
- var1.sendMessage(var23 + " - " + ChatColor.YELLOW + "/td Join " + var23 + SPECIAL_CHARACTER.ARROW + ChatColor.GREEN + " Puts you in the game lobby");
- }
- var1.sendMessage(var23 + " - " + ChatColor.YELLOW + "/td Leave " + var23 + SPECIAL_CHARACTER.ARROW + ChatColor.GREEN + " Removes you from the game");
- var1.sendMessage(var23 + " - " + ChatColor.YELLOW + "/td Autojoin " + var23 + SPECIAL_CHARACTER.ARROW + ChatColor.GREEN + " Puts you in the best available arena!");
- var1.sendMessage(var23 + " - " + ChatColor.YELLOW + "/td List " + var23 + SPECIAL_CHARACTER.ARROW + ChatColor.GREEN + " Shows a list of arenas and other information!");
- var1.sendMessage(var23 + " - " + ChatColor.YELLOW + "/td " + (var1.hasPermission("towerdefense.admin") ? ChatColor.GREEN : ChatColor.RED) + "Admin " + var23 + SPECIAL_CHARACTER.ARROW + ChatColor.GREEN + " Shows a list of admin commands");
- var1.sendMessage("" + var23 + ChatColor.STRIKETHROUGH + "--------------------------------------------");
- return true;
- }
- String var5 = var4[0].toLowerCase();
- ChatColor var24;
- if (var5.equals("admin")) {
- if (!this.checkSender(var1, false, "towerdefense.admin")) {
- return true;
- }
- var24 = this.colors[this.r.nextInt(this.colors.length)];
- var1.sendMessage("" + var24 + ChatColor.STRIKETHROUGH + "------------" + ChatColor.YELLOW + " TowerDefense " + ChatColor.RED + "Admin " + var24 + ChatColor.STRIKETHROUGH + "------------");
- var1.sendMessage(var24 + " - " + ChatColor.YELLOW + "/td Setlobby " + var24 + SPECIAL_CHARACTER.ARROW + ChatColor.GREEN + " Sets the lobby location!");
- var1.sendMessage(var24 + " - " + ChatColor.YELLOW + "/td Setspawn " + var24 + SPECIAL_CHARACTER.ARROW + ChatColor.GREEN + " Sets the players spawn!");
- var1.sendMessage(var24 + " - " + ChatColor.YELLOW + "/td Create/Delete " + var24 + SPECIAL_CHARACTER.ARROW + ChatColor.GREEN + " Creates/Deletes an arena!");
- var1.sendMessage(var24 + " - " + ChatColor.YELLOW + "/td Addpath/Deletepath " + var24 + SPECIAL_CHARACTER.ARROW + ChatColor.GREEN + " Adds/Deletes an enemy path!");
- var1.sendMessage(var24 + " - " + ChatColor.YELLOW + "/td Showpath " + var24 + SPECIAL_CHARACTER.ARROW + ChatColor.GREEN + " Shows enemies path!");
- var1.sendMessage(var24 + " - " + ChatColor.YELLOW + "/td Buildingarea " + var24 + SPECIAL_CHARACTER.ARROW + ChatColor.GREEN + " Gives a tool to specify tower areas");
- var1.sendMessage(var24 + " - " + ChatColor.YELLOW + "/td Towers " + var24 + SPECIAL_CHARACTER.ARROW + ChatColor.GREEN + " Shows a list of tower management commands");
- var1.sendMessage(var24 + " - " + ChatColor.YELLOW + "/td Start/Stop " + var24 + SPECIAL_CHARACTER.ARROW + ChatColor.GREEN + " Forces an arena to start/stop");
- var1.sendMessage(var24 + " - " + ChatColor.YELLOW + "/td Coins " + var24 + SPECIAL_CHARACTER.ARROW + ChatColor.GREEN + " Modifies a player coins!");
- var1.sendMessage(var24 + " - " + ChatColor.YELLOW + "/td Cheat " + var24 + SPECIAL_CHARACTER.ARROW + ChatColor.GREEN + " Gives you 999999 arena coins!");
- var1.sendMessage(var24 + " - " + ChatColor.YELLOW + "/td Holograms " + var24 + SPECIAL_CHARACTER.ARROW + ChatColor.GREEN + " Manages holographic features");
- var1.sendMessage(var24 + " - " + ChatColor.YELLOW + "/td Reset " + var24 + SPECIAL_CHARACTER.ARROW + ChatColor.GREEN + " Resets a player stats");
- var1.sendMessage(var24 + " - " + ChatColor.YELLOW + "/td Edit " + var24 + SPECIAL_CHARACTER.ARROW + ChatColor.GREEN + " Allows arena modifications");
- var1.sendMessage(var24 + " - " + ChatColor.YELLOW + "/td Editmode " + var24 + SPECIAL_CHARACTER.ARROW + ChatColor.GREEN + " Allows the user to modify surroundings in bungeemode");
- var1.sendMessage(var24 + " - " + ChatColor.YELLOW + "/td Reload " + var24 + SPECIAL_CHARACTER.ARROW + ChatColor.GREEN + " Reloads the plugin");
- var1.sendMessage(var24 + " - " + ChatColor.YELLOW + "/td WorldManager " + var24 + SPECIAL_CHARACTER.ARROW + ChatColor.GREEN + " Shows a list of World management commands");
- var1.sendMessage("" + var24 + ChatColor.STRIKETHROUGH + "-------------------------------------------");
- return true;
- }
- Player var26;
- if (var5.equals("join") && !this.config.bungee_mode_enabled) {
- if (!this.checkSender(var1, true, "")) {
- return true;
- }
- var26 = (Player)var1;
- if (this.lobbyLocation == null) {
- var26.sendMessage((String)this.customization.messages.get("Lobby-Not-Set"));
- return true;
- }
- if (this.players.contains(var26.getName())) {
- var26.sendMessage((String)this.customization.messages.get("Already-In-Game"));
- return true;
- }
- this.join(var26);
- return true;
- }
- if (var5.equals("leave")) {
- if (!this.checkSender(var1, true, "")) {
- return true;
- }
- var26 = (Player)var1;
- if (!this.players.contains(var26.getName())) {
- var26.sendMessage((String)this.customization.messages.get("Not-In-Game"));
- return true;
- }
- this.leave(var26, false);
- return true;
- }
- PlayerData var42;
- if (var5.equals("autojoin")) {
- if (!this.checkSender(var1, true, "")) {
- return true;
- }
- var26 = (Player)var1;
- var42 = (PlayerData)this.plugin.playerData.get(var26.getName());
- if (var42.hasCooldown(var26, "AUTOJOIN_COMMAND", 3)) {
- return true;
- }
- if (this.lobbyPlayers.contains(var26.getName()) && var42.arena == null) {
- this.autojoin(var26, var4.length > 1 ? var4[1].toUpperCase() : "");
- return true;
- }
- var26.sendMessage((String)this.customization.messages.get("Not-In-Lobby"));
- return true;
- }
- String var31;
- File var40;
- Arena var68;
- YamlConfiguration var74;
- if (var5.equals("setlobby")) {
- if (!this.checkSender(var1, true, "towerdefense.setlobby")) {
- return true;
- }
- var26 = (Player)var1;
- if (var4.length == 2) {
- var31 = var4[1].toLowerCase();
- if (!this.arenas.containsKey(var31)) {
- var1.sendMessage(this.customization.prefix + "Couldn't find an arena with that name!");
- return true;
- }
- var68 = (Arena)this.arenas.get(var31);
- var40 = new File(this.plugin.getDataFolder() + "/arenas/" + var68.name, "locations.dat");
- var74 = YamlConfiguration.loadConfiguration(var40);
- var74.set("Lobby", this.getStringFromLocation(var26.getLocation(), true));
- try {
- var74.save(var40);
- } catch (IOException var16) {
- var16.printStackTrace();
- }
- var68.lobbyLocation = var26.getLocation();
- var26.sendMessage(this.customization.prefix + "Lobby has been " + ChatColor.GREEN + "successfully" + ChatColor.GOLD + " set at " + this.getReadableLocationString(var26.getLocation(), true) + ChatColor.GOLD + " for the arena " + ChatColor.AQUA + var68.name);
- } else {
- this.lobbyLocation = var26.getLocation();
- this.getConfig().set("Lobby", this.getStringFromLocation(var26.getLocation(), true));
- this.saveConfig();
- var26.sendMessage(this.customization.prefix + "Lobby has been " + ChatColor.GREEN + "successfully" + ChatColor.GOLD + " set at " + this.getReadableLocationString(var26.getLocation(), true));
- }
- return true;
- }
- File var30;
- if (var5.equals("create")) {
- if (!this.checkSender(var1, true, "towerdefense.create")) {
- return true;
- }
- var26 = (Player)var1;
- if (var4.length >= 4 && this.checkNumbers(var4[2], var4[3]) && Integer.valueOf(var4[2]) >= 1) {
- var31 = var4[1];
- if (this.arenas.containsKey(var31.toLowerCase())) {
- var26.sendMessage(this.customization.prefix + "There is already an arena with that name!");
- return true;
- }
- var26.sendMessage(this.customization.prefix + "Creating the arena " + ChatColor.AQUA + var31 + ChatColor.GOLD + "!");
- var30 = new File(this.getDataFolder() + "/arenas/" + var31, "settings.yml");
- YamlConfiguration var79 = YamlConfiguration.loadConfiguration(var30);
- var79.set("world", var26.getWorld().getName());
- var79.set("min-players", Integer.valueOf(var4[2]));
- var79.set("max-players", Integer.valueOf(var4[3]));
- try {
- var79.save(var30);
- } catch (IOException var17) {
- var17.printStackTrace();
- }
- new Arena(this, var31);
- this.updateArenasInventory();
- var26.sendMessage(this.plugin.customization.prefix + "Arena " + ChatColor.AQUA + var31 + ChatColor.GOLD + " has been " + ChatColor.GREEN + "successfully" + ChatColor.GOLD + " created!");
- return true;
- }
- this.sendCommandUsage(var1, "Create", "<Name> <minPlayers> <maxPlayers>");
- return true;
- }
- String var6;
- Arena var48;
- if (var5.equals("delete")) {
- if (!this.checkSender(var1, false, "towerdefense.delete")) {
- return true;
- }
- if (var4.length == 1) {
- this.sendCommandUsage(var1, "Delete", "<Name>");
- return true;
- }
- var6 = var4[1].toLowerCase();
- if (!this.arenas.containsKey(var6)) {
- var1.sendMessage(this.customization.prefix + "Couldn't find an arena with that name!");
- return true;
- }
- var48 = (Arena)this.arenas.get(var6);
- var48.stop();
- var30 = new File(this.getDataFolder() + "/arenas/", var48.name);
- this.filesManager.deleteFile(var30);
- this.arenas.remove(var6);
- this.updateArenasInventory();
- var1.sendMessage(this.customization.prefix + "Arena has been deleted!");
- return true;
- }
- if (var5.equals("list")) {
- if (var1 instanceof Player && ((PlayerData)this.playerData.get(var1.getName())).hasCooldown((Player)var1, "LIST_COMMAND", 3)) {
- return true;
- }
- var24 = this.colors[this.r.nextInt(this.colors.length)];
- var1.sendMessage("" + var24 + ChatColor.STRIKETHROUGH + "------------------" + ChatColor.YELLOW + " List " + var24 + ChatColor.STRIKETHROUGH + "------------------");
- var1.sendMessage(var24 + " - " + ChatColor.YELLOW + "Total Players: " + ChatColor.GREEN + this.players.size());
- var1.sendMessage(var24 + " - " + ChatColor.YELLOW + "Lobby Players: " + ChatColor.GREEN + this.lobbyPlayers.size());
- var1.sendMessage(var24 + " - " + ChatColor.YELLOW + "Next leaderboard update: " + (this.leaderboard_updater == null ? ChatColor.RED + "Task is off" : ChatColor.GREEN + String.valueOf((this.leaderboard_updater_time - System.currentTimeMillis()) / 1000L) + ChatColor.AQUA + "s " + ChatColor.LIGHT_PURPLE + "(" + (this.leaderboard_updater_time - System.currentTimeMillis()) / 60000L + "m)"));
- var1.sendMessage(var24 + " - " + ChatColor.YELLOW + "Bukkit: " + ChatColor.GREEN + Bukkit.getBukkitVersion());
- var1.sendMessage(var24 + " - " + ChatColor.YELLOW + "Scoreboard: " + ChatColor.GREEN + this.config.lobbyScoreboardEnabled);
- var1.sendMessage(var24 + " - " + ChatColor.YELLOW + "Loaded arenas: " + ChatColor.GREEN + this.arenas.size());
- var1.sendMessage(var24 + " - " + ChatColor.YELLOW + "Active arenas: " + ChatColor.GREEN + this.enemyController.getActiveArenas().size());
- Iterator var78 = this.arenas.values().iterator();
- while(var78.hasNext()) {
- var48 = (Arena)var78.next();
- var1.sendMessage(var24 + " - " + ChatColor.YELLOW + var48.name + var24 + " | Players: " + ChatColor.GOLD + var48.players.size() + var24 + " | Viewers: " + ChatColor.AQUA + var48.spectators.size() + var24 + " | State: " + var48.state + var24 + " | Tower Centers: " + ChatColor.GREEN + var48.towerCenters.size());
- }
- var1.sendMessage("" + var24 + ChatColor.STRIKETHROUGH + "----------------------------------------");
- return true;
- }
- if (var5.equals("setspawn")) {
- if (!this.checkSender(var1, true, "towerdefense.setspawn")) {
- return true;
- }
- var26 = (Player)var1;
- if (var4.length == 1) {
- this.sendCommandUsage(var1, "Setspawn", "<Arena>");
- return true;
- }
- var31 = var4[1].toLowerCase();
- if (!this.arenas.containsKey(var31)) {
- var1.sendMessage(this.customization.prefix + "Couldn't find an arena with that name!");
- return true;
- }
- var68 = (Arena)this.arenas.get(var31);
- if (!var68.worldName.equals(var26.getWorld().getName())) {
- var26.sendMessage(this.customization.prefix + "Players spawn must be in the arena world! World: " + ChatColor.RED + "(" + var68.worldName + ")");
- return true;
- }
- var40 = new File(this.plugin.getDataFolder() + "/arenas/" + var68.name, "locations.dat");
- var74 = YamlConfiguration.loadConfiguration(var40);
- var74.set("Players-Spawn", this.getStringFromLocation(var26.getLocation(), true));
- try {
- var74.save(var40);
- } catch (IOException var18) {
- var18.printStackTrace();
- }
- var68.spawnLocation = var26.getLocation();
- var26.sendMessage(this.customization.prefix + "Players spawn has been " + ChatColor.GREEN + "successfully" + ChatColor.GOLD + " set at " + this.getReadableLocationString(var26.getLocation(), true) + ChatColor.GOLD + " for the arena " + ChatColor.AQUA + var68.name);
- return true;
- }
- int var53;
- if (var5.equals("addpath")) {
- if (!this.checkSender(var1, true, "towerdefense.addpath")) {
- return true;
- }
- var26 = (Player)var1;
- if (var4.length == 1) {
- this.sendCommandUsage(var1, "Addpath", "<Arena>");
- return true;
- }
- var31 = var4[1].toLowerCase();
- if (!this.arenas.containsKey(var31)) {
- var26.sendMessage(this.customization.prefix + "Couldn't find an arena with that name!");
- return true;
- }
- var68 = (Arena)this.arenas.get(var31);
- if (!var68.worldName.equals(var26.getWorld().getName())) {
- var26.sendMessage(this.customization.prefix + "Path must be in the arena world! World: " + ChatColor.RED + "(" + var68.worldName + ")");
- return true;
- }
- if (!var68.state.AVAILABLE() && !var68.state.equals(ArenaState.DISABLED)) {
- var26.sendMessage(this.customization.prefix + "You can not add a path right now!");
- return true;
- }
- var40 = new File(this.plugin.getDataFolder() + "/arenas/" + var68.name, "locations.dat");
- var74 = YamlConfiguration.loadConfiguration(var40);
- String var73 = this.getStringFromLocation(var26.getLocation(), true);
- var53 = var68.zombiesSpawnLocation != null ? 2 : 1;
- if (var53 == 2) {
- if (var68.zombiesPath == null) {
- var68.zombiesPath = new Location[1];
- var68.zombiesPath[0] = var26.getLocation();
- } else {
- var53 += var68.zombiesPath.length;
- Location[] var76 = new Location[var53 - 1];
- for(int var75 = 0; var75 < var68.zombiesPath.length; ++var75) {
- var76[var75] = var68.zombiesPath[var75];
- }
- var76[var53 - 2] = var26.getLocation();
- var68.zombiesPath = var76;
- }
- var26.sendMessage(this.customization.prefix + "Zombies path " + ChatColor.AQUA + var53 + ChatColor.GOLD + " has been " + ChatColor.GREEN + "successfully" + ChatColor.GOLD + " set at " + this.getReadableLocationString(var26.getLocation(), true) + ChatColor.GOLD + " for the arena " + ChatColor.AQUA + var68.name);
- } else {
- var68.zombiesSpawnLocation = this.getLocationFromString(var73);
- var26.sendMessage(this.customization.prefix + "Zombies spawn has been " + ChatColor.GREEN + "successfully" + ChatColor.GOLD + " set at " + this.getReadableLocationString(var26.getLocation(), true) + ChatColor.GOLD + " for the arena " + ChatColor.AQUA + var68.name);
- }
- var74.set("Zombies-Path." + var53, var73);
- try {
- var74.save(var40);
- } catch (IOException var19) {
- var19.printStackTrace();
- }
- return true;
- }
- int var47;
- if (var5.equals("deletepath")) {
- if (!this.checkSender(var1, true, "towerdefense.deletepath")) {
- return true;
- }
- var26 = (Player)var1;
- if (var4.length == 1) {
- this.sendCommandUsage(var1, "Deletepath", "<Arena>");
- return true;
- }
- var31 = var4[1].toLowerCase();
- if (!this.arenas.containsKey(var31)) {
- var26.sendMessage(this.customization.prefix + "Couldn't find an arena with that name!");
- return true;
- }
- var68 = (Arena)this.arenas.get(var31);
- if (!var68.state.AVAILABLE() && !var68.state.equals(ArenaState.DISABLED)) {
- var26.sendMessage(this.customization.prefix + "You can not delete a path right now!");
- return true;
- }
- if (var68.zombiesSpawnLocation == null) {
- var26.sendMessage(this.customization.prefix + "The arena does not have any paths!");
- return true;
- }
- var40 = new File(this.plugin.getDataFolder() + "/arenas/" + var68.name, "locations.dat");
- var74 = YamlConfiguration.loadConfiguration(var40);
- var47 = var68.zombiesPath != null ? var68.zombiesPath.length + 1 : 1;
- if (var47 > 1) {
- if (var47 == 2) {
- var68.zombiesPath = null;
- } else {
- Location[] var59 = new Location[var68.zombiesPath.length - 1];
- for(int var70 = 0; var70 < var68.zombiesPath.length - 1; ++var70) {
- var59[var70] = var68.zombiesPath[var70];
- }
- var68.zombiesPath = var59;
- }
- var26.sendMessage(this.customization.prefix + "Zombies path " + ChatColor.AQUA + var47 + ChatColor.GOLD + " has been " + ChatColor.GREEN + "successfully" + ChatColor.GOLD + " remove for the arena " + ChatColor.AQUA + var68.name);
- } else {
- var68.zombiesSpawnLocation = null;
- var26.sendMessage(this.customization.prefix + "Zombies spawn has been " + ChatColor.GREEN + "successfully" + ChatColor.GOLD + " remove for the arena " + ChatColor.AQUA + var68.name);
- }
- var74.set("Zombies-Path." + var47, (Object)null);
- try {
- var74.save(var40);
- } catch (IOException var20) {
- var20.printStackTrace();
- }
- return true;
- }
- int var10;
- if (var5.equals("showpath")) {
- if (!this.checkSender(var1, true, "towerdefense.showpath")) {
- return true;
- }
- var26 = (Player)var1;
- if (var4.length == 1) {
- this.sendCommandUsage(var1, "Addpath", "<Arena>");
- return true;
- }
- var31 = var4[1].toLowerCase();
- if (!this.arenas.containsKey(var31)) {
- var26.sendMessage(this.customization.prefix + "Couldn't find an arena with that name!");
- return true;
- }
- var68 = (Arena)this.arenas.get(var31);
- if (var68.zombiesSpawnLocation != null && var68.zombiesPath != null) {
- HashMap var77 = new HashMap();
- var77.put(var68.zombiesSpawnLocation, var68.zombiesSpawnLocation.getBlock().getType());
- this.sendBlockChange(var26, var68.zombiesSpawnLocation, Material.MOB_SPAWNER);
- for(var10 = 0; var10 < var68.zombiesPath.length - 1; ++var10) {
- Location var66 = var68.zombiesPath[var10];
- var77.put(var66, var66.getBlock().getType());
- this.sendBlockChange(var26, var66, Material.GOLD_BLOCK);
- }
- Location var69 = var68.zombiesPath[var68.zombiesPath.length - 1];
- var77.put(var69, var69.getBlock().getType());
- this.sendBlockChange(var26, var69, Material.EMERALD_BLOCK);
- (new 1(this, var77, var26)).runTaskLater(this, 100L);
- return true;
- }
- var26.sendMessage(this.customization.prefix + "Arena path is not setup yet!");
- return true;
- }
- ChatColor var27;
- String var34;
- int var37;
- File var41;
- if (var5.equals("towers")) {
- if (!this.checkSender(var1, true, "towerdefense.towers")) {
- return true;
- } else {
- var26 = (Player)var1;
- if (var4.length == 1) {
- var27 = this.colors[this.r.nextInt(this.colors.length)];
- var1.sendMessage("" + var27 + ChatColor.STRIKETHROUGH + "------------" + ChatColor.YELLOW + " TowerDefense " + ChatColor.RED + "Tower Manager " + var27 + ChatColor.STRIKETHROUGH + "------------");
- var1.sendMessage(var27 + " - " + ChatColor.YELLOW + "/td towers Create <Tower> " + var27 + SPECIAL_CHARACTER.ARROW + ChatColor.GREEN + " Creates a new tower");
- var1.sendMessage(var27 + " - " + ChatColor.YELLOW + "/td towers Delete <Tower> " + var27 + SPECIAL_CHARACTER.ARROW + ChatColor.GREEN + " Deletes an existing tower");
- var1.sendMessage(var27 + " - " + ChatColor.YELLOW + "/td towers Build <Tower> " + var27 + SPECIAL_CHARACTER.ARROW + ChatColor.GREEN + " Attempts to build the tower");
- var1.sendMessage(var27 + " - " + ChatColor.YELLOW + "/td towers Wand " + var27 + SPECIAL_CHARACTER.ARROW + ChatColor.GREEN + " Gives the towers selection wand");
- var1.sendMessage(var27 + " - " + ChatColor.YELLOW + "/td towers List " + var27 + SPECIAL_CHARACTER.ARROW + ChatColor.GREEN + " Lists the loaded towers");
- var1.sendMessage("" + var27 + ChatColor.STRIKETHROUGH + "---------------------------------------------------");
- return true;
- } else {
- var31 = var4[1].toLowerCase();
- if (var31.equals("create")) {
- if (var4.length < 8 || !this.checkNumbers(var4[3], var4[4], var4[5], var4[6]) || !this.towerSpeeds.containsKey(var4[7].toLowerCase()) && !var4[7].equalsIgnoreCase("normal")) {
- var34 = "NORMAL";
- for(var37 = 0; var37 < this.towerSpeeds.size(); ++var37) {
- var34 = var34 + ", " + ((String)this.towerSpeeds.keySet().toArray()[var37]).toUpperCase();
- }
- this.sendCommandUsage(var1, "Towers Create", "<Name> <Cost> <Damage> <Range> <Required-Player-Rank> <Attack-Speed>", "<Attack-Speed> can be " + var34);
- return true;
- } else {
- var34 = var4[2].toLowerCase();
- if (this.towers.containsKey(var34)) {
- var26.sendMessage(this.customization.prefix + "There is already a tower with that name!");
- return true;
- } else if (this.selectionMode.containsKey(var26.getName()) && ((Location[])this.selectionMode.get(var26.getName()))[0] != null && ((Location[])this.selectionMode.get(var26.getName()))[1] != null) {
- Cuboid var71 = new Cuboid(((Location[])this.selectionMode.get(var26.getName()))[0], ((Location[])this.selectionMode.get(var26.getName()))[1]);
- if (!var71.isSquare()) {
- var26.sendMessage(this.customization.prefix + "The selection must be a cube!");
- return true;
- } else if (var71.getWidth() <= this.config.towersMaxWidth && var71.getWidth() % 2 != 0) {
- if (var71.getHeight() > this.plugin.config.towersMaxHeight) {
- var26.sendMessage(this.customization.prefix + "The tower height can not be higher than " + this.config.towersMaxHeight + " (current height: " + var71.getHeight() + ")");
- return true;
- } else {
- ItemStack var62 = var26.getItemInHand();
- if (var62 != null && !var62.getType().equals(Material.AIR)) {
- ArrayList var64 = new ArrayList();
- Iterator var58 = var71.iterator();
- while(var58.hasNext()) {
- String var65 = var58.toString();
- Block var14 = (Block)var58.next();
- if (var14.getType() != Material.AIR) {
- var64.add(var65 + ":" + var14.getTypeId() + ":" + var14.getData());
- }
- }
- File var67 = new File(this.plugin.getDataFolder(), "towers.yml");
- YamlConfiguration var72 = YamlConfiguration.loadConfiguration(var67);
- var72.set("Towers." + var4[2] + ".Cost", Integer.valueOf(var4[3]));
- var72.set("Towers." + var4[2] + ".Damage", Integer.valueOf(var4[4]));
- var72.set("Towers." + var4[2] + ".Attack-Speed", var4[7]);
- var72.set("Towers." + var4[2] + ".Range", Integer.valueOf(var4[5]));
- var72.set("Towers." + var4[2] + ".Required-Player-Rank", Integer.valueOf(var4[6]));
- var72.set("Towers." + var4[2] + ".Item", var62.getType().name());
- var72.set("Towers." + var4[2] + ".Lore", Arrays.asList("&b&m----------", "&eCost: &6" + var4[3], "&eDamage: &6" + var4[4], "&eSpeed: &6" + var4[7], "&eRange: &6" + var4[5], "&b&m----------", " ", "&dDescription:", "&bThis tower has no description!", " "));
- var72.set("Towers." + var4[2] + ".Abilities", Arrays.asList());
- var72.set("Towers." + var4[2] + ".Upgrades.Damage", Arrays.asList());
- var72.set("Towers." + var4[2] + ".Upgrades.Range", Arrays.asList());
- var72.set("Towers." + var4[2] + ".Blocks", var64.toString());
- this.towers.put(var34, new Tower(this, var72, var4[2]));
- try {
- var72.save(var67);
- } catch (IOException var21) {
- var21.printStackTrace();
- }
- var26.sendMessage(this.customization.prefix + "You have created the tower " + ChatColor.GREEN + ChatColor.BOLD + var4[2] + ChatColor.GOLD + "! You should change the default generated lore for the tower in towers.yml!");
- return true;
- } else {
- var26.sendMessage(this.customization.prefix + "You must hold an item in your hand! The item will be the tower item");
- return true;
- }
- }
- } else {
- var26.sendMessage(this.customization.prefix + "The tower width/length must be an odd number and can not be higher than " + this.config.towersMaxWidth + " (current width: " + var71.getWidth() + ")");
- return true;
- }
- } else {
- var26.sendMessage(this.customization.prefix + "You haven't selected the 2 corners yet!");
- return true;
- }
- }
- } else {
- Tower var61;
- if (var31.equals("delete")) {
- if (var4.length == 2) {
- this.sendCommandUsage(var1, "Towers Delete", "<Name>");
- return true;
- } else {
- var34 = var4[2].toLowerCase();
- if (!this.towers.containsKey(var34)) {
- var26.sendMessage(this.customization.prefix + "Could not find a tower with that name!");
- return true;
- } else {
- var61 = (Tower)this.towers.get(var34);
- var41 = new File(this.plugin.getDataFolder(), "towers.yml");
- YamlConfiguration var60 = YamlConfiguration.loadConfiguration(var41);
- var60.set("Towers." + var61.name, (Object)null);
- try {
- var60.save(var41);
- } catch (IOException var22) {
- var22.printStackTrace();
- }
- this.towers.remove(var34);
- var26.sendMessage(this.customization.prefix + "You have removed the tower " + ChatColor.RED + ChatColor.BOLD + var4[2]);
- return true;
- }
- }
- } else if (var31.equals("build")) {
- if (var4.length == 2) {
- this.sendCommandUsage(var1, "Towers Build", "<Tower>");
- return true;
- } else {
- var34 = var4[2].toLowerCase();
- if (!this.towers.containsKey(var34)) {
- var26.sendMessage(this.customization.prefix + "Couldn't find a tower with that name!");
- return true;
- } else {
- var61 = (Tower)this.towers.get(var34);
- ActiveTower var54 = var61.build((Arena)null, (PlayerData)null, var26.getLocation().getBlock().getLocation().add(0.0D, -1.0D, 0.0D));
- byte var56 = 10;
- var26.teleport(var26.getLocation().add(0.0D, (double)(this.config.towersMaxHeight + 1), 0.0D));
- var26.sendMessage(this.customization.prefix + "Tower has been built! it will last for " + ChatColor.AQUA + var56 + ChatColor.GOLD + " seconds!");
- var26.playSound(var26.getLocation(), this.NOTE_PLING, 1.0F, 1.0F);
- (new 2(this, var54, var26)).runTaskLater(this, (long)(var56 * 20));
- return true;
- }
- }
- } else if (!var31.equals("list")) {
- if (var31.equals("wand")) {
- if (!this.selectionMode.containsKey(var26.getName())) {
- var26.getInventory().addItem(new ItemStack[]{this.wand_itemstack});
- this.selectionMode.put(var26.getName(), new Location[2]);
- var26.sendMessage(this.customization.prefix + "You have entered the selection mode!");
- } else {
- var26.getInventory().removeItem(new ItemStack[]{this.wand_itemstack});
- this.selectionMode.remove(var26.getName());
- var26.sendMessage(this.customization.prefix + "You have left the selection mode!");
- }
- return true;
- } else {
- var26.sendMessage(this.customization.prefix + "Unknown command! use /td Towers for a list of commands");
- return true;
- }
- } else {
- ChatColor var51 = this.colors[this.r.nextInt(this.colors.length)];
- var26.sendMessage("" + var51 + ChatColor.STRIKETHROUGH + "-------------" + ChatColor.YELLOW + " TowerDefense " + ChatColor.RED + "Towers " + var51 + ChatColor.STRIKETHROUGH + "-------------");
- var26.sendMessage(this.customization.prefix + "Loaded towers: " + ChatColor.LIGHT_PURPLE + this.towers.size());
- Iterator var52 = this.towers.values().iterator();
- while(var52.hasNext()) {
- var61 = (Tower)var52.next();
- var26.sendMessage(ChatColor.AQUA + "- " + ChatColor.LIGHT_PURPLE + var61.name + ChatColor.DARK_AQUA + " -> " + ChatColor.RED + "Damage: " + ChatColor.AQUA + var61.damage + ", " + ChatColor.YELLOW + "Attack speed: " + ChatColor.AQUA + var61.attackSpeedTitle + ", " + ChatColor.GREEN + "Range: " + ChatColor.AQUA + Math.sqrt((double)var61.range) + ", " + ChatColor.GOLD + "Cost/Sell-Value: " + ChatColor.AQUA + var61.cost + "/" + var61.sellValue + ", " + ChatColor.DARK_GREEN + "Required player rank: " + ChatColor.AQUA + var61.requiredPlayerRank);
- }
- var26.sendMessage("" + var51 + ChatColor.STRIKETHROUGH + "----------------------------------------------");
- return true;
- }
- }
- }
- }
- }
- if (var5.equals("buildingarea")) {
- if (!this.checkSender(var1, true, "towerdefense.buildingarea")) {
- return true;
- }
- var26 = (Player)var1;
- if (this.buildingAreaMode.containsKey(var26.getName())) {
- var26.getInventory().removeItem(new ItemStack[]{this.towerbuildarea_itemstack});
- this.buildingAreaMode.remove(var26.getName());
- var26.sendMessage(this.customization.prefix + "You have left the building area selector mode!");
- return true;
- }
- if (var4.length == 1) {
- this.sendCommandUsage(var1, "Buildingarea", "<Arena>");
- return true;
- }
- var31 = var4[1].toLowerCase();
- if (!this.arenas.containsKey(var31)) {
- var26.sendMessage(this.customization.prefix + "Couldn't find an arena with that name!");
- return true;
- }
- this.buildingAreaMode.put(var26.getName(), var31);
- var26.getInventory().addItem(new ItemStack[]{this.towerbuildarea_itemstack});
- var26.sendMessage(this.customization.prefix + "You have entered the building area selector mode! you should left click blocks that you want to become the CENTER of a tower!");
- return true;
- }
- if (var5.equals("start")) {
- if (!this.checkSender(var1, false, "towerdefense.start")) {
- return true;
- }
- if (var4.length == 1) {
- if (!(var1 instanceof Player) || ((PlayerData)this.playerData.get(var1.getName())).arena == null) {
- this.sendCommandUsage(var1, "Start", "<Arena>");
- return true;
- }
- var6 = ((PlayerData)this.playerData.get(var1.getName())).arena.name.toLowerCase();
- } else {
- var6 = var4[1].toLowerCase();
- }
- if (!this.arenas.containsKey(var6)) {
- var1.sendMessage(this.customization.prefix + "Couldn't find an arena with that name!");
- return true;
- }
- var48 = (Arena)this.arenas.get(var6);
- if (!var48.state.AVAILABLE()) {
- var1.sendMessage(this.customization.prefix + "You may not start the arena in its current state!");
- return true;
- }
- if (var48.players.isEmpty()) {
- var1.sendMessage(this.customization.prefix + "The arena does not contain any player!");
- return true;
- }
- if (var48.lobbyLocation == null) {
- var1.sendMessage((String)this.plugin.customization.messages.get("Lobby-Not-Set"));
- return true;
- }
- if (var48.spawnLocation == null) {
- var1.sendMessage((String)this.plugin.customization.messages.get("Spawn-Not-Set"));
- return true;
- }
- if (var48.zombiesPath == null) {
- var1.sendMessage((String)this.plugin.customization.messages.get("Zombies-Path-Not-Set"));
- return true;
- }
- var48.start();
- var1.sendMessage(this.customization.prefix + "You have forced the arena " + ChatColor.YELLOW + var48.name + ChatColor.GOLD + " to start!");
- return true;
- }
- if (var5.equals("stop")) {
- if (!this.checkSender(var1, false, "towerdefense.stop")) {
- return true;
- }
- if (var4.length == 1) {
- if (!(var1 instanceof Player) || ((PlayerData)this.playerData.get(var1.getName())).arena == null) {
- this.sendCommandUsage(var1, "Start", "<Arena>");
- return true;
- }
- var6 = ((PlayerData)this.playerData.get(var1.getName())).arena.name.toLowerCase();
- } else {
- var6 = var4[1].toLowerCase();
- }
- if (!this.arenas.containsKey(var6)) {
- var1.sendMessage(this.customization.prefix + "Couldn't find an arena with that name!");
- return true;
- }
- var48 = (Arena)this.arenas.get(var6);
- if (!var48.state.equals(ArenaState.INGAME) && !var48.state.equals(ArenaState.ENDING)) {
- var1.sendMessage(this.customization.prefix + "You may not stop the arena in its current state!");
- return true;
- }
- var48.stop();
- var1.sendMessage(this.customization.prefix + "You have forced the arena " + ChatColor.YELLOW + var48.name + ChatColor.GOLD + " to stop!");
- return true;
- }
- if (var5.equals("d")) {
- var1.sendMessage(this.customization.prefix + "Enemy Controller Running: " + this.enemyController.isRunning());
- var1.sendMessage(this.customization.prefix + "Tower Controller Running: " + this.towerController.isRunning());
- Iterator var46 = this.arenas.values().iterator();
- while(var46.hasNext()) {
- Arena var33 = (Arena)var46.next();
- var1.sendMessage(this.customization.prefix + "Arena: " + var33.name + " | Towers: " + var33.towers.size() + (this.enemyController.getActiveArenas().contains(var33) ? " | Has living enemies: " + var33.hasLivingEnemies() : " | Arena not controller"));
- }
- return true;
- }
- Player var28;
- if (var5.equals("coins")) {
- if (!this.checkSender(var1, false, "towerdefense.coins")) {
- return true;
- }
- if (var4.length >= 4 && ((var6 = var4[1].toLowerCase()).equals("add") || var6.equals("remove") || var6.equals("set")) && this.checkNumbers(var4[3])) {
- var28 = Bukkit.getPlayer(var4[2]);
- int var49 = Integer.valueOf(var4[3]);
- if (var28 == null) {
- var1.sendMessage(this.customization.prefix + "Couldn't find that players online, looking up the database...");
- (new 3(this, var6, var4, var49, var1)).runTaskAsynchronously(this.plugin);
- return true;
- }
- PlayerData var57 = (PlayerData)this.playerData.get(var28.getName());
- var10 = var57.getCoins(var28);
- if (var6.equals("add")) {
- var57.addCoins(var28, var49);
- } else if (var6.equals("remove")) {
- var57.removeCoins(var28, var49);
- } else if (var6.equals("set")) {
- var57.setCoins(var28, var49);
- }
- if (var10 != var57.getCoins(var28)) {
- var1.sendMessage(this.customization.prefix + "You have " + ChatColor.GREEN + "successfully" + ChatColor.GOLD + " changed " + ChatColor.AQUA + var28.getName() + "'s" + ChatColor.GOLD + " coins!");
- var28.sendMessage((String)this.customization.messages.get("Coins-Update") + (var57.getCoins(var28) - var10 > 0 ? ChatColor.GREEN + " (+" + (var57.getCoins(var28) - var10) + ")!" : ChatColor.RED + " (" + (var57.getCoins(var28) - var10) + ")!"));
- if (var57.customScoreboard != null) {
- var57.customScoreboard.updatePlaceholder(var28, (Arena)null, this, "coins", var57.getCoins(var28));
- }
- var57.save = true;
- } else {
- var1.sendMessage(this.customization.prefix + "User coins haven't changed!");
- }
- return true;
- }
- this.sendCommandUsage(var1, "Coins", "<Action> <Player> <Amount>", "Action can only be one of the following", "Add, Remove, Set");
- return true;
- }
- if (var5.equals("cheat")) {
- if (!this.checkSender(var1, true, "towerdefense.cheat")) {
- return true;
- }
- var26 = (Player)var1;
- var42 = (PlayerData)this.playerData.get(var26.getName());
- if (var42.arena != null && !var42.arena.state.AVAILABLE() && var42.arena.players.containsKey(var26.getName())) {
- if (var42.arena.enemyPlayers.containsKey(var26.getName())) {
- var42.arena.enemyCoins = 999999;
- } else {
- var42.arena.players.put(var26.getName(), 999999.0D);
- }
- var26.sendMessage(this.customization.prefix + "Cheat activated!");
- return true;
- }
- var26.sendMessage(this.customization.prefix + "You are not in an active arena to call this command!");
- return true;
- }
- Player var8;
- if (var5.equals("holograms")) {
- if (!this.checkSender(var1, true, "towerdefense.holograms")) {
- return true;
- }
- if (var4.length >= 3 && ((var6 = var4[1].toLowerCase()).equals("set") || var6.equals("remove")) && ((var31 = var4[2].toLowerCase()).equals("stats") || var31.equals("leaderboard"))) {
- if (this.hologramsManager == null) {
- var1.sendMessage(this.customization.prefix + "HolographicDisplays doesn't seem to be loaded!");
- return true;
- }
- var8 = (Player)var1;
- if (var6.equals("set")) {
- Location var55 = var8.getLocation();
- if (var31.equals("stats")) {
- var55.add(0.0D, 4.0D, 0.0D);
- this.hologramsManager.setStats(var55);
- this.getConfig().set("Holographic-Stats", this.getStringFromLocation(var55, false));
- var8.sendMessage(this.customization.prefix + "You have set the holographic stats location!");
- } else {
- var55.add(0.0D, 3.0D, 0.0D);
- this.hologramsManager.setLeaderboard(var55, true);
- this.getConfig().set("Holographic-Leaderboard", this.getStringFromLocation(var55, false));
- var8.sendMessage(this.customization.prefix + "You have set the holographic leaderboard location!");
- }
- } else if (var31.equals("stats")) {
- this.hologramsManager.setStats((Location)null);
- this.getConfig().set("Holographic-Stats", (Object)null);
- var8.sendMessage(this.customization.prefix + "You have removed the holographic stats location!");
- } else {
- this.hologramsManager.setLeaderboard((Location)null, false);
- this.getConfig().set("Holographic-Leaderboard", (Object)null);
- var8.sendMessage(this.customization.prefix + "You have removed the holographic leaderboard location!");
- }
- this.saveConfig();
- return true;
- }
- this.sendCommandUsage(var1, "Holograms", "Set/Remove Stats/Leaderboard");
- return true;
- }
- if (var5.equals("reset")) {
- if (!this.checkSender(var1, false, "towerdefense.reset")) {
- return true;
- }
- if (var4.length == 1) {
- this.sendCommandUsage(var1, "Reset", "<Player>");
- return true;
- }
- var26 = Bukkit.getPlayer(var4[1]);
- long var38 = System.currentTimeMillis();
- var1.sendMessage(this.customization.prefix + "Looking up the database...");
- (new 4(this, var4, var26, var1, var38)).runTaskAsynchronously(this);
- return true;
- }
- if (var5.equals("edit")) {
- if (!this.checkSender(var1, true, "towerdefense.edit")) {
- return true;
- }
- if (var4.length == 1) {
- this.sendCommandUsage(var1, "Edit", "<Name>");
- return true;
- }
- var26 = (Player)var1;
- var31 = var4[1].toLowerCase();
- if (!this.arenas.containsKey(var31)) {
- var26.sendMessage(this.customization.prefix + "Couldn't find an arena with that name!");
- return true;
- }
- var26.openInventory(((Arena)this.arenas.get(var31)).editor);
- return true;
- }
- if (var5.equals("editmode")) {
- if (!this.checkSender(var1, true, "towerdefense.editmode")) {
- return true;
- }
- var26 = (Player)var1;
- if (!this.config.bungee_mode_enabled) {
- var26.sendMessage(this.customization.prefix + "You must be in BungeeMode to use this command!");
- return true;
- }
- if (this.players.contains(var26.getName())) {
- var26.sendMessage(this.customization.prefix + "You have " + ChatColor.GREEN + "enabled" + ChatColor.GOLD + " the editing mode!");
- var31 = this.config.bungee_mode_hub;
- this.config.bungee_mode_hub = String.valueOf(this.r.nextInt());
- this.leave(var26, true);
- this.config.bungee_mode_hub = var31;
- } else if (this.plugin.lobbyLocation != null) {
- var26.sendMessage(this.customization.prefix + "You have " + ChatColor.RED + "disabled" + ChatColor.GOLD + " the editing mode!");
- this.join(var26);
- } else {
- var26.sendMessage((String)this.plugin.customization.messages.get("Lobby-Not-Set"));
- }
- return true;
- }
- Iterator var9;
- long var35;
- if (var5.equals("reload")) {
- if (!this.checkSender(var1, false, "towerdefense.reload")) {
- return true;
- }
- var1.sendMessage(this.customization.prefix + "Attempting to reload the plugin!");
- long var25 = System.currentTimeMillis();
- var9 = this.getPlayers(this.players).iterator();
- while(var9.hasNext()) {
- var8 = (Player)var9.next();
- this.leave(var8, true);
- var8.sendMessage((String)this.customization.messages.get("Reload-Kick"));
- }
- this.mainSetup();
- var35 = System.currentTimeMillis();
- var1.sendMessage(this.customization.prefix + "The plugin has been " + ChatColor.GREEN + "successfully" + ChatColor.GOLD + " reloaded! took " + ChatColor.LIGHT_PURPLE + (var35 - var25) + "ms!");
- return true;
- }
- if (var5.equals("worldmanager") || var5.equals("wm")) {
- if (!this.checkSender(var1, false, "towerdefense.worldmanager")) {
- return true;
- }
- if (var4.length == 1) {
- var24 = this.colors[this.r.nextInt(this.colors.length)];
- var1.sendMessage("" + var24 + ChatColor.STRIKETHROUGH + "------------" + ChatColor.YELLOW + " TowerDefense " + ChatColor.RED + "WorldManager " + var24 + ChatColor.STRIKETHROUGH + "------------");
- var1.sendMessage(var24 + " - " + ChatColor.YELLOW + "/td WorldManager | wm Create <World> " + var24 + SPECIAL_CHARACTER.ARROW + ChatColor.GREEN + " Creates a new world");
- var1.sendMessage(var24 + " - " + ChatColor.YELLOW + "/td wm Delete <World> " + var24 + SPECIAL_CHARACTER.ARROW + ChatColor.GREEN + " Deletes an existing world");
- var1.sendMessage(var24 + " - " + ChatColor.YELLOW + "/td wm Import <World> " + var24 + SPECIAL_CHARACTER.ARROW + ChatColor.GREEN + " Imports a new world!");
- var1.sendMessage(var24 + " - " + ChatColor.YELLOW + "/td wm Backup <World> " + var24 + SPECIAL_CHARACTER.ARROW + ChatColor.GREEN + " Creates a backup of a world");
- var1.sendMessage(var24 + " - " + ChatColor.YELLOW + "/td wm Restore <World> " + var24 + SPECIAL_CHARACTER.ARROW + ChatColor.GREEN + " Restores a world from the backup file");
- var1.sendMessage(var24 + " - " + ChatColor.YELLOW + "/td wm Tp <World> " + var24 + SPECIAL_CHARACTER.ARROW + ChatColor.GREEN + " Teleports you to a world");
- var1.sendMessage(var24 + " - " + ChatColor.YELLOW + "/td wm Setspawn <World> " + var24 + SPECIAL_CHARACTER.ARROW + ChatColor.GREEN + " Sets the spawn of a world");
- var1.sendMessage(var24 + " - " + ChatColor.YELLOW + "/td wm Backupall " + var24 + SPECIAL_CHARACTER.ARROW + ChatColor.GREEN + " Creates a backup of all loaded worlds");
- var1.sendMessage(var24 + " - " + ChatColor.YELLOW + "/td wm List " + var24 + SPECIAL_CHARACTER.ARROW + ChatColor.GREEN + " Lists loaded worlds!");
- var1.sendMessage("" + var24 + ChatColor.STRIKETHROUGH + "------------------------------------------------");
- return true;
- }
- var6 = var4[1].toLowerCase();
- List var29;
- long var43;
- if (var6.equals("create")) {
- var29 = Arrays.asList("normal", "nether", "the_end", "empty");
- if (var4.length >= 4 && var29.contains(var4[3].toLowerCase())) {
- var34 = var4[2];
- String var50 = var4[3].toLowerCase();
- if (Bukkit.getWorld(var34) != null) {
- var1.sendMessage(this.customization.prefix + "There is a world with that name!");
- return true;
- }
- String[] var63;
- var53 = (var63 = Bukkit.getWorldContainer().list()).length;
- for(var47 = 0; var47 < var53; ++var47) {
- String var44 = var63[var47];
- if (var44.equalsIgnoreCase(var34)) {
- var1.sendMessage(this.customization.prefix + "Seems like there is an unloaded world with that name! try using /td WorldManager Import <Name>");
- return true;
- }
- }
- var1.sendMessage(this.customization.prefix + "Creating a new world!");
- var43 = System.currentTimeMillis();
- if (var50.equals("empty")) {
- Bukkit.createWorld((new WorldCreator(var34)).generator(new 5(this)));
- } else {
- Bukkit.createWorld((new WorldCreator(var34)).environment(Environment.valueOf(var50.toUpperCase())));
- }
- var1.sendMessage(this.customization.prefix + "World has been created! took " + ChatColor.LIGHT_PURPLE + (System.currentTimeMillis() - var43) + "ms" + ChatColor.GOLD + " to complete the process! use " + ChatColor.GREEN + "/td WorldManager Tp " + var34 + ChatColor.GOLD + " if you would like to be teleported to that world!");
- return true;
- }
- this.sendCommandUsage(var1, "WorldManager Create", "<Name> <Type>", "Type can be normal, nether, the_end, empty");
- return true;
- }
- World var32;
- if (var6.equals("delete")) {
- if (var4.length == 2) {
- this.sendCommandUsage(var1, "WorldManager Delete", "<Name>");
- return true;
- }
- var31 = var4[2].toLowerCase();
- var32 = Bukkit.getWorld(var31);
- var40 = null;
- if (var32 != null) {
- if (!var32.getPlayers().isEmpty()) {
- var1.sendMessage(this.customization.prefix + "The world contains players. so the world can't be deleted!");
- Iterator var45 = var32.getPlayers().iterator();
- while(var45.hasNext()) {
- Player var39 = (Player)var45.next();
- var1.sendMessage(this.customization.prefix + "- " + var39.getName());
- }
- return true;
- }
- var40 = var32.getWorldFolder();
- Bukkit.unloadWorld(var32, false);
- } else {
- var1.sendMessage(this.customization.prefix + "The world you looking for seems to be unloaded, looking up folders...");
- File[] var13;
- var53 = (var13 = Bukkit.getWorldContainer().listFiles()).length;
- for(var47 = 0; var47 < var53; ++var47) {
- var41 = var13[var47];
- if (var41.getName().equalsIgnoreCase(var4[2])) {
- var40 = var41;
- break;
- }
- }
- }
- if (var40 != null) {
- var43 = System.currentTimeMillis();
- this.filesManager.deleteFile(var40);
- var1.sendMessage(this.customization.prefix + "World has been deleted! took " + ChatColor.LIGHT_PURPLE + (System.currentTimeMillis() - var43) + "ms!");
- } else {
- var1.sendMessage(this.customization.prefix + "Couldn't find a world with that name!");
- }
- return true;
- }
- if (var6.equals("import")) {
- if (var4.length == 2) {
- this.sendCommandUsage(var1, "WorldManager Import", "<Name>");
- return true;
- }
- var31 = var4[2];
- if (Bukkit.getWorld(var31) != null) {
- var1.sendMessage(this.customization.prefix + "There is a loaded world with that name!");
- return true;
- }
- String[] var11;
- var10 = (var11 = Bukkit.getWorldContainer().list()).length;
- for(var37 = 0; var37 < var10; ++var37) {
- var34 = var11[var37];
- if (var31.equalsIgnoreCase(var34)) {
- var1.sendMessage(this.customization.prefix + "Importing the world...");
- long var12 = System.currentTimeMillis();
- if (this.config.emptyChunkGenerator) {
- Bukkit.createWorld((new WorldCreator(var34)).generator(new 6(this)));
- } else {
- Bukkit.createWorld(new WorldCreator(var34));
- }
- var1.sendMessage(this.customization.prefix + "World has been imported! check your logs! took " + ChatColor.LIGHT_PURPLE + (System.currentTimeMillis() - var12) + "ms!");
- return true;
- }
- }
- var1.sendMessage(this.customization.prefix + "Couldn't find any world with that name!");
- return true;
- }
- if (!var6.equals("backup") && !var6.equals("restore")) {
- if (var6.equals("backupall")) {
- if (!this.checkSender(var1, false, "towerdefense.worldmanager")) {
- return true;
- }
- var29 = Bukkit.getWorlds();
- var1.sendMessage(this.customization.prefix + ChatColor.GREEN + "Creating a backup of all loaded worlds " + ChatColor.GOLD + "(" + var29.size() + ")" + ChatColor.GREEN + "!");
- var35 = System.currentTimeMillis();
- (new 9(this, var29, var1, var35)).runTaskTimerAsynchronously(this, 0L, 20L);
- return true;
- }
- if (var6.equals("tp")) {
- if (!this.checkSender(var1, true, "towerdefense.worldmanager")) {
- return true;
- }
- if (var4.length == 2) {
- this.sendCommandUsage(var1, "WorldManager Tp", "<Name>");
- return true;
- }
- var28 = (Player)var1;
- var34 = var4[2];
- if (Bukkit.getWorld(var34) == null) {
- var28.sendMessage(this.customization.prefix + "Couldn't find a world with that name!");
- return true;
- }
- var28.teleport(Bukkit.getWorld(var34).getSpawnLocation());
- var28.sendMessage(this.customization.prefix + "You have been teleported to " + ChatColor.GREEN + var34 + ChatColor.GOLD + "!");
- return true;
- }
- if (var6.equals("setspawn")) {
- if (!this.checkSender(var1, true, "towerdefense.worldmanager")) {
- return true;
- }
- if (var4.length == 2) {
- this.sendCommandUsage(var1, "WorldManager Setspawn", "<Name>");
- return true;
- }
- var28 = (Player)var1;
- var34 = var4[2];
- World var36 = Bukkit.getWorld(var34);
- if (var36 == null) {
- var28.sendMessage(this.customization.prefix + "Couldn't find a world with that name!");
- return true;
- }
- if (!var36.getName().equals(var28.getWorld().getName())) {
- var28.sendMessage(this.customization.prefix + "You are not in that world to set its spawn!");
- return true;
- }
- var36.setSpawnLocation(var28.getLocation().getBlockX(), var28.getLocation().getBlockY() + 1, var28.getLocation().getBlockZ());
- var28.sendMessage(this.customization.prefix + "You have set the world spawn location!");
- return true;
- }
- if (!var6.equals("list")) {
- var1.sendMessage(this.customization.prefix + "Unknown command! use /td WorldManager for a list of commands");
- return true;
- }
- var27 = this.colors[this.r.nextInt(this.colors.length)];
- var1.sendMessage("" + var27 + ChatColor.STRIKETHROUGH + "------------" + ChatColor.YELLOW + " TowerDefense " + ChatColor.RED + "WorldManager " + var27 + ChatColor.STRIKETHROUGH + "------------");
- var1.sendMessage(this.customization.prefix + "Loaded worlds: " + ChatColor.LIGHT_PURPLE + Bukkit.getWorlds().size());
- var9 = Bukkit.getWorlds().iterator();
- while(var9.hasNext()) {
- var32 = (World)var9.next();
- var1.sendMessage(ChatColor.AQUA + "- " + ChatColor.LIGHT_PURPLE + var32.getName() + ChatColor.DARK_AQUA + " -> " + ChatColor.RED + "Environment: " + ChatColor.AQUA + var32.getEnvironment().name() + ", " + ChatColor.YELLOW + "Difficulty: " + ChatColor.AQUA + var32.getDifficulty().name() + ", " + ChatColor.GREEN + "PVP: " + ChatColor.AQUA + var32.getPVP() + ", " + ChatColor.DARK_AQUA + "Players: " + ChatColor.AQUA + var32.getPlayers().size());
- }
- var1.sendMessage("" + var27 + ChatColor.STRIKETHROUGH + "--------------------------------------------");
- return true;
- }
- if (var4.length == 2) {
- this.sendCommandUsage(var1, "WorldManager " + var6.substring(0, 1).toUpperCase() + var6.substring(1, var6.length()), "<Name>");
- return true;
- }
- World var7 = Bukkit.getWorld(var4[2]);
- if (var7 == null) {
- var1.sendMessage(this.customization.prefix + "Couldn't find a loaded world with that name!");
- return true;
- }
- if (var6.equals("backup")) {
- (new 7(this, var1, var7)).runTaskAsynchronously(this);
- return true;
- }
- if (!var6.equals("restore")) {
- return true;
- }
- if (var7.getPlayers().isEmpty()) {
- var30 = new File(this.getDataFolder() + "/backup", var7.getName());
- if (!var30.exists()) {
- var1.sendMessage(this.customization.prefix + "Couldn't find a backup for that world!");
- return true;
- }
- (new 8(this, var1, var7, var30)).runTaskAsynchronously(this);
- return true;
- }
- var1.sendMessage(this.customization.prefix + "The world contains players. so the world can't be restored!");
- var9 = var7.getPlayers().iterator();
- while(var9.hasNext()) {
- var8 = (Player)var9.next();
- var1.sendMessage(this.customization.prefix + "- " + var8.getName());
- }
- return true;
- }
- var1.sendMessage((String)this.customization.messages.get("Unknown-Command"));
- }
- return false;
- }
- private boolean checkSender(CommandSender var1, boolean var2, String var3) {
- if (var2 && !(var1 instanceof Player)) {
- var1.sendMessage(this.customization.prefix + "You must be a player to use this command");
- return false;
- } else if (!var3.isEmpty() && !var1.hasPermission(var3)) {
- var1.sendMessage((String)this.customization.messages.get("No-Permission"));
- return false;
- } else {
- return true;
- }
- }
- private void sendCommandUsage(CommandSender var1, String var2, String var3, String... var4) {
- var1.sendMessage(this.customization.prefix + "Usage: /td " + ChatColor.GREEN + var2 + ChatColor.GOLD + " " + var3);
- String[] var8 = var4;
- int var7 = var4.length;
- for(int var6 = 0; var6 < var7; ++var6) {
- String var5 = var8[var6];
- var1.sendMessage(this.customization.prefix + ChatColor.AQUA + "- " + ChatColor.GOLD + var5);
- }
- }
- protected List<Player> getPlayers(Collection<String> var1) {
- ArrayList var2 = new ArrayList();
- Iterator var4 = var1.iterator();
- while(var4.hasNext()) {
- String var3 = (String)var4.next();
- if (Bukkit.getPlayer(var3) != null) {
- var2.add(Bukkit.getPlayer(var3));
- }
- }
- return var2;
- }
- protected String getStringFromLocation(Location var1, boolean var2) {
- return var1.getWorld().getName() + ", " + ((double)var1.getBlockX() + (var2 ? 0.5D : 0.0D)) + ", " + var1.getBlockY() + ", " + ((double)var1.getBlockZ() + (var2 ? 0.5D : 0.0D)) + ", " + var1.getYaw() + ", " + var1.getPitch();
- }
- protected Location getLocationFromString(String var1) {
- String[] var2 = var1.split(", ");
- World var3 = Bukkit.getWorld(var2[0]);
- double var4 = Double.valueOf(var2[1]);
- double var6 = Double.valueOf(var2[2]);
- double var8 = Double.valueOf(var2[3]);
- float var10 = Float.valueOf(var2[4]);
- float var11 = Float.valueOf(var2[5]);
- return new Location(var3, var4, var6, var8, var10, var11);
- }
- protected String getReadableLocationString(Location var1, boolean var2) {
- return "" + ChatColor.GREEN + ((double)var1.getBlockX() + (var2 ? 0.5D : 0.0D)) + ChatColor.GOLD + ", " + ChatColor.GREEN + var1.getBlockY() + ChatColor.GOLD + ", " + ChatColor.GREEN + ((double)var1.getBlockZ() + (var2 ? 0.5D : 0.0D));
- }
- protected boolean checkNumbers(String... var1) {
- try {
- String[] var5 = var1;
- int var4 = var1.length;
- for(int var3 = 0; var3 < var4; ++var3) {
- String var2 = var5[var3];
- Integer.parseInt(var2);
- }
- return true;
- } catch (NumberFormatException var6) {
- return false;
- }
- }
- protected void cageInventory(Inventory var1, boolean var2) {
- int var3;
- if (var2) {
- for(var3 = 0; var3 < var1.getSize(); ++var3) {
- var1.setItem(var3, this.pane_itemstack);
- }
- } else {
- for(var3 = 0; var3 < 9; ++var3) {
- var1.setItem(var3, this.pane_itemstack);
- }
- for(var3 = var1.getSize() - 9; var3 < var1.getSize(); ++var3) {
- var1.setItem(var3, this.pane_itemstack);
- }
- var3 = var1.getSize() / 9 - 2;
- if (var3 >= 1) {
- int var4;
- for(var4 = 9; var4 < 9 * var3 + 1; var4 += 9) {
- var1.setItem(var4, this.pane_itemstack);
- }
- for(var4 = 17; var4 < 9 * (var3 + 1); var4 += 9) {
- var1.setItem(var4, this.pane_itemstack);
- }
- }
- }
- }
- protected int getInventorySize(int var1) {
- return var1 < 10 ? 9 : (var1 < 19 ? 18 : (var1 < 28 ? 27 : (var1 < 37 ? 36 : (var1 < 46 ? 45 : 54))));
- }
- protected boolean compareItem(ItemStack var1, ItemStack var2) {
- return var1 != null && var2 != null && var1.getType().equals(var2.getType()) && var1.getItemMeta().equals(var2.getItemMeta());
- }
- protected void fireWorkEffect(Player var1, boolean var2) {
- if (this.config.fireworksEnabled) {
- Firework var3 = (Firework)var1.getWorld().spawn(var1.getLocation().add(0.0D, 1.0D, 0.0D), Firework.class);
- FireworkMeta var4 = var3.getFireworkMeta();
- FireworkEffect var5 = FireworkEffect.builder().flicker(this.r.nextBoolean()).withColor(Color.fromBGR(this.r.nextInt(256), this.r.nextInt(256), this.r.nextInt(256))).withFade(Color.fromBGR(this.r.nextInt(256), this.r.nextInt(256), this.r.nextInt(256))).with(Type.values()[this.r.nextInt(Type.values().length)]).trail(this.r.nextBoolean()).build();
- var4.addEffect(var5);
- var3.setFireworkMeta(var4);
- if (var2) {
- Bukkit.getScheduler().scheduleSyncDelayedTask(this, new 10(this, var3), 2L);
- }
- }
- }
- protected ItemStack getSkull(String var1, String var2) {
- ItemStack var3 = new ItemStack(Material.SKULL_ITEM, 1, (short)SkullType.PLAYER.ordinal());
- SkullMeta var4 = (SkullMeta)var3.getItemMeta();
- if (this.config.loadSkinsOnSkulls) {
- var4.setOwner(var1);
- }
- var4.setDisplayName(var2);
- var3.setItemMeta(var4);
- return var3;
- }
- protected void join(Player var1) {
- this.players.add(var1.getName());
- this.lobbyPlayers.add(var1.getName());
- PlayerData var2 = (PlayerData)this.playerData.get(var1.getName());
- var2.saveData(var1);
- var1.teleport(this.lobbyLocation);
- var2.clearPlayer(var1);
- if (this.setCollidable != null) {
- try {
- this.setCollidable.invoke(var1, false);
- } catch (IllegalArgumentException | InvocationTargetException | IllegalAccessException var5) {
- var5.printStackTrace();
- }
- }
- this.updateJoinSigns();
- if (this.config.scoreboardTitleAnimationEnabled && this.scoreboardTitleAnimationTask == null) {
- this.scoreboardTitleAnimationTask = (new 11(this)).runTaskTimer(this, (long)this.config.scoreboardTitleAnimationInterval, (long)this.config.scoreboardTitleAnimationInterval);
- }
- if (this.isOneGamePerServer()) {
- (new 12(this, var1)).runTaskLater(this.plugin, 10L);
- } else {
- var1.sendMessage((String)this.customization.messages.get("Player-Join"));
- }
- ItemStack var3 = this.getSkull(var1.getName(), ChatColor.AQUA + var1.getName());
- int var4;
- for(var4 = 0; var4 < this.playerInviter.getSize(); ++var4) {
- if (this.playerInviter.addItem(var4, var3)) {
- return;
- }
- }
- var4 = this.playerInviter.addInventory(ChatColor.RED + "List #" + (this.playerInviter.getSize() + 1));
- this.playerInviter.setItem(var4, 49, this.back_itemstack);
- this.playerInviter.addItem(var4, var3);
- }
- protected void leave(Player var1, boolean var2) {
- String var3 = var1.getName();
- PlayerData var4 = (PlayerData)this.playerData.get(var3);
- if (this.isOneGamePerServer()) {
- var2 = true;
- }
- if (this.playersSelectedObject.containsKey(var1.getName())) {
- this.playersSelectedObject.remove(var1.getName());
- }
- if (var4.arena != null) {
- var4.arena.leave(var1);
- if (!var2) {
- return;
- }
- }
- this.players.remove(var3);
- this.lobbyPlayers.remove(var3);
- if (this.setCollidable != null) {
- try {
- this.setCollidable.invoke(var1, true);
- } catch (IllegalArgumentException | InvocationTargetException | IllegalAccessException var11) {
- var11.printStackTrace();
- }
- }
- var4.restoreData(var1);
- if (var4.party != null) {
- var4.party.leave(var1);
- }
- var1.sendMessage((String)this.customization.messages.get("Player-Leave"));
- this.updateJoinSigns();
- if (this.config.bungee_mode_enabled) {
- ByteArrayDataOutput var5 = ByteStreams.newDataOutput();
- var5.writeUTF("Connect");
- var5.writeUTF(this.config.bungee_mode_hub);
- var1.sendPluginMessage(this, "BungeeCord", var5.toByteArray());
- }
- if (this.config.scoreboardTitleAnimationEnabled && this.scoreboardTitleAnimationTask != null && this.players.isEmpty()) {
- this.scoreboardTitleAnimationTask.cancel();
- this.scoreboardTitleAnimationTask = null;
- }
- for(int var12 = 0; var12 < this.playerInviter.getSize(); ++var12) {
- int[] var9;
- int var8 = (var9 = this.smartSlots).length;
- for(int var7 = 0; var7 < var8; ++var7) {
- int var6 = var9[var7];
- ItemStack var10 = this.playerInviter.getItem(var12, var6);
- if (var10 != null && ChatColor.stripColor(var10.getItemMeta().getDisplayName()).equals(var3)) {
- this.playerInviter.removeItem(var12, var6);
- return;
- }
- }
- }
- }
- protected void autojoin(Player var1, String var2) {
- PlayerData var3 = (PlayerData)this.plugin.playerData.get(var1.getName());
- int var4 = 1;
- if (var3.party != null) {
- var4 = var3.party.players.size();
- if (!var3.party.leaderName.equals(var1.getName())) {
- var1.sendMessage((String)this.customization.messages.get("Party-Must-Be-Leader"));
- return;
- }
- Iterator var6 = var3.party.players.iterator();
- while(var6.hasNext()) {
- String var5 = (String)var6.next();
- if (!this.plugin.lobbyPlayers.contains(var5)) {
- var1.sendMessage(((String)this.customization.messages.get("Party-Player-Not-Available")).replace("%member%", var5));
- return;
- }
- }
- }
- ArrayList var9 = new ArrayList();
- Iterator var7 = this.arenas.values().iterator();
- while(true) {
- Arena var10;
- do {
- do {
- do {
- do {
- do {
- if (!var7.hasNext()) {
- if (var9.isEmpty()) {
- var1.sendMessage((String)this.customization.messages.get("No-Available-Arena"));
- return;
- }
- var10 = (Arena)var9.get(0);
- Iterator var8 = var9.iterator();
- while(var8.hasNext()) {
- Arena var11 = (Arena)var8.next();
- if (var11.players.size() > var10.players.size()) {
- var10 = var11;
- }
- }
- var10.join(var1);
- return;
- }
- var10 = (Arena)var7.next();
- } while(!var10.enabled);
- } while(!var10.state.AVAILABLE());
- } while(var10.players.size() + var4 > var10.maxPlayers);
- } while(var2.equals("SINGLEPLAYER") && var10.maxPlayers != 1);
- } while(var2.equals("MULTIPLAYER") && var10.maxPlayers < 2);
- var9.add(var10);
- }
- }
- protected void updateJoinSigns() {
- Iterator var2 = this.joinSigns.keySet().iterator();
- while(var2.hasNext()) {
- Location var1 = (Location)var2.next();
- if (var1.getBlock().getState() instanceof Sign) {
- Sign var3 = (Sign)var1.getBlock().getState();
- var3.setLine(3, String.valueOf(this.players.size()));
- var3.update(true);
- }
- }
- }
- protected void delayedSetup() {
- Bukkit.getScheduler().scheduleSyncDelayedTask(this, new 13(this), (long)this.getConfig().getInt("Load-Delay-Ticks"));
- }
- protected void mainSetup() {
- this.filesManager = new FilesManager(this);
- FileConfiguration var1 = this.filesManager.getConfig("customization.yml");
- this.customization = new Customization(var1);
- this.config = new Config(this);
- this.ranksManager = new RanksManager(this);
- this.quit_itemstack = this.getItemStack(var1.getString("Items.Quit"), false, true);
- this.prestige_itemstack = this.getItemStack(var1.getString("Items.Prestige"), false, true);
- this.win_itemstack = this.getItemStack(var1.getString("Items.Win"), false, true);
- this.lose_itemstack = this.getItemStack(var1.getString("Items.Lose"), false, true);
- this.play_itemstack = this.getItemStack(var1.getString("Items.Play"), false, true);
- this.profile_itemstack = this.getItemStack(var1.getString("Items.Profile"), false, true);
- this.enemyjoin_itemstack = this.getItemStack(var1.getString("Items.Enemy-Join"), false, true);
- this.summoner_itemstack = this.getItemStack(var1.getString("Items.Summoner"), false, true);
- this.guide_itemstack = this.getItemStack(var1.getString("Items.Enemy-Guide"), false, true);
- this.party_itemstack = this.getItemStack(var1.getString("Items.Party"), false, true);
- this.teleporter_itemstack = this.getItemStack(var1.getString("Items.Teleporter"), false, true);
- this.autojoin_itemstack = this.getItemStack(var1.getString("Items.Autojoin"), false, true);
- this.back_itemstack = this.getItemStack(var1.getString("Items.Back"), false, true);
- this.difficulty_itemstack = this.getItemStack(var1.getString("Items.Difficulty"), false, true);
- this.classes_itemstack = this.getItemStack(var1.getString("Items.Classes"), false, true);
- this.stats_itemstack = this.getItemStack(var1.getString("Items.Stats"), false, true);
- this.achievements_itemstack = this.getItemStack(var1.getString("Items.Achievements"), false, true);
- this.next_itemstack = this.getItemStack(var1.getString("Items.Next"), false, true);
- this.previous_itemstack = this.getItemStack(var1.getString("Items.Previous"), false, true);
- this.create_itemstack = this.getItemStack(var1.getString("Items.Create"), false, true);
- this.join_itemstack = this.getItemStack(var1.getString("Items.Join"), false, true);
- this.invite_itemstack = this.getItemStack(var1.getString("Items.Invite"), false, true);
- this.leave_itemstack = this.getItemStack(var1.getString("Items.Leave"), false, true);
- this.loadTowers();
- this.loadEnemies();
- this.loadClasses();
- this.arenaSelector = new SmartInventory(this.plugin, (String)this.customization.inventories.get("Arenas-Selector"));
- this.arenaSelector.addInventory(ChatColor.RED + "List #1");
- this.arenaSelector.setItem(0, 49, this.autojoin_itemstack);
- this.delayedSetup();
- this.createDefaultAchievements();
- this.achievementsManager = new AchievementsManager(this);
- this.broadcaster.loadMessages(this.filesManager.getConfig("broadcaster.yml"));
- this.partyMenu = Bukkit.createInventory((InventoryHolder)null, 9, ChatColor.RED + "Select your option!");
- this.cageInventory(this.partyMenu, true);
- this.partyMenu.setItem(2, this.create_itemstack);
- this.partyMenu.setItem(6, this.join_itemstack);
- this.parties = new ArrayList();
- PlayerData var2;
- for(Iterator var3 = this.playerData.values().iterator(); var3.hasNext(); var2.party = null) {
- var2 = (PlayerData)var3.next();
- }
- this.partySelector = new SmartInventory(this, (String)this.customization.inventories.get("Parties"));
- this.partySelector.addInventory(ChatColor.RED + "List #1");
- this.partySelector.setItem(0, 49, this.back_itemstack);
- this.playerInviter = new SmartInventory(this, (String)this.customization.inventories.get("Player-Inviter"));
- this.profileInventory = Bukkit.createInventory((InventoryHolder)null, 9, (String)this.customization.inventories.get("Profile"));
- this.cageInventory(this.profileInventory, true);
- this.profileInventory.setItem(2, this.stats_itemstack);
- this.profileInventory.setItem(6, this.achievements_itemstack);
- this.prestigeInventory = Bukkit.createInventory((InventoryHolder)null, 9, (String)this.customization.inventories.get("Prestige"));
- for(int var5 = 0; var5 < this.prestigeInventory.getSize(); ++var5) {
- this.prestigeInventory.setItem(var5, new ItemStack(Material.FIREWORK));
- }
- this.prestigeInventory.setItem(4, this.prestige_itemstack);
- this.quitInventory = Bukkit.createInventory((InventoryHolder)null, 9, (String)this.customization.inventories.get("Quit-Inventory"));
- this.cageInventory(this.quitInventory, true);
- this.quitInventory.setItem(2, this.getItemStack(var1.getString("Items.Confirm"), false, true));
- this.quitInventory.setItem(6, this.getItemStack(var1.getString("Items.Cancel"), false, true));
- this.spectatorMenu = Bukkit.createInventory((InventoryHolder)null, 9, (String)this.customization.inventories.get("Spectator-Menu"));
- if (this.config.hotbarItems.containsKey("Arena-Selector")) {
- this.spectatorMenu.setItem((Integer)this.config.hotbarItems.get("Arena-Selector") - 1, this.play_itemstack);
- }
- if (this.config.hotbarItems.containsKey("Teleporter")) {
- this.spectatorMenu.setItem((Integer)this.config.hotbarItems.get("Teleporter") - 1, this.teleporter_itemstack);
- }
- if (this.config.hotbarItems.containsKey("Profile")) {
- this.spectatorMenu.setItem((Integer)this.config.hotbarItems.get("Profile") - 1, this.profile_itemstack);
- }
- if (this.config.hotbarItems.containsKey("Enemy-Guide")) {
- this.spectatorMenu.setItem((Integer)this.config.hotbarItems.get("Enemy-Guide") - 1, this.guide_itemstack);
- }
- if (this.config.hotbarItems.containsKey("Quit")) {
- this.spectatorMenu.setItem((Integer)this.config.hotbarItems.get("Quit") - 1, this.quit_itemstack);
- }
- this.vault = null;
- if (this.getConfig().getBoolean("use-Vault") && Bukkit.getPluginManager().getPlugin("Vault") != null && Bukkit.getServicesManager().getRegistration(Economy.class) != null) {
- this.vault = (Economy)Bukkit.getServicesManager().getRegistration(Economy.class).getProvider();
- Bukkit.getConsoleSender().sendMessage(this.customization.prefix + "The plugin will be using vault economy instead of coins..");
- }
- if (this.config.bungee_mode_enabled && !Bukkit.getMessenger().isOutgoingChannelRegistered(this, "BungeeCord")) {
- Bukkit.getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
- }
- try {
- if (this.mysql != null) {
- this.mysql.close();
- this.mysql = null;
- }
- if (this.config.mysql_enabled) {
- Bukkit.getConsoleSender().sendMessage(this.customization.prefix + "Attempting to connect to the database and creating a table if it doesn't exist!");
- long var6 = System.currentTimeMillis();
- this.mysql = new MySQL(this, this.getConfig().getString("MySQL.table"), this.getConfig().getString("MySQL.host"), this.getConfig().getString("MySQL.port"), this.getConfig().getString("MySQL.database"), this.getConfig().getString("MySQL.username"), this.getConfig().getString("MySQL.password"));
- this.mysql.setupTable();
- Bukkit.getConsoleSender().sendMessage(this.customization.prefix + "Connection has been successfully established! it took " + (System.currentTimeMillis() - var6) + "ms to complete!");
- }
- } catch (SQLException var4) {
- var4.printStackTrace();
- }
- if (this.savingTask != null) {
- this.savingTask.cancel();
- }
- if (this.getConfig().getBoolean("Saving-Task.Enabled")) {
- this.savingTask = (new 14(this)).runTaskTimer(this, (long)(this.getConfig().getInt("Saving-Task.Save-Every-Minutes") * 1200), (long)(this.getConfig().getInt("Saving-Task.Save-Every-Minutes") * 1200));
- } else {
- this.savingTask = null;
- }
- this.availableUpdate = false;
- this.checkUpdates((Player)null);
- }
- protected void checkUpdates(Player var1) {
- if (this.getConfig().getBoolean("Check-For-Updates")) {
- (new 15(this, var1)).runTaskAsynchronously(this);
- }
- }
- public void loadTowers() {
- this.towers.clear();
- File var1 = new File(this.plugin.getDataFolder(), "towers.yml");
- YamlConfiguration var2 = YamlConfiguration.loadConfiguration(var1);
- if (var2.getConfigurationSection("Towers") == null || var2.getConfigurationSection("Towers").getKeys(false).isEmpty()) {
- var2.setDefaults(YamlConfiguration.loadConfiguration(new InputStreamReader(this.plugin.getResource("towers.yml"))));
- var2.options().copyDefaults(true);
- try {
- var2.save(var1);
- } catch (IOException var5) {
- var5.printStackTrace();
- }
- Bukkit.getConsoleSender().sendMessage(this.customization.prefix + "Generated default towers.yml file!");
- }
- Iterator var4 = var2.getConfigurationSection("Towers").getKeys(false).iterator();
- while(var4.hasNext()) {
- String var3 = (String)var4.next();
- this.towers.put(var3.toLowerCase(), new Tower(this, var2, var3));
- }
- }
- public void loadClasses() {
- this.classes.clear();
- File var1 = new File(this.plugin.getDataFolder(), "classes.yml");
- YamlConfiguration var2 = YamlConfiguration.loadConfiguration(var1);
- if (var2.getConfigurationSection("Classes") == null || var2.getConfigurationSection("Classes").getKeys(false).isEmpty()) {
- var2.setDefaults(YamlConfiguration.loadConfiguration(new InputStreamReader(this.plugin.getResource("classes.yml"))));
- var2.options().copyDefaults(true);
- try {
- var2.save(var1);
- } catch (IOException var5) {
- var5.printStackTrace();
- }
- Bukkit.getConsoleSender().sendMessage(this.customization.prefix + "Generated default classes.yml file!");
- }
- Iterator var4 = var2.getConfigurationSection("Classes").getKeys(false).iterator();
- while(var4.hasNext()) {
- String var3 = (String)var4.next();
- if (var2.getBoolean("Classes." + var3 + ".Enabled")) {
- this.classes.put(var3.toLowerCase(), new ClassData(this, var2, var3));
- }
- }
- this.classesInventory = Bukkit.createInventory((InventoryHolder)null, this.getInventorySize(this.classes.size() + 9), (String)this.customization.inventories.get("Classes"));
- this.cageInventory(this.classesInventory, true);
- this.classesInventory.setItem(this.classesInventory.getSize() - 5, this.back_itemstack);
- for(int var6 = 0; var6 < this.classes.size(); ++var6) {
- this.classesInventory.setItem(var6, ((ClassData)this.classes.values().toArray()[var6]).logo);
- }
- }
- public void loadEnemies() {
- this.enemies.clear();
- File var1 = new File(this.plugin.getDataFolder(), "enemies.yml");
- YamlConfiguration var2 = YamlConfiguration.loadConfiguration(var1);
- if (var2.getConfigurationSection("Enemies") == null || var2.getConfigurationSection("Enemies").getKeys(false).isEmpty()) {
- var2.setDefaults(YamlConfiguration.loadConfiguration(new InputStreamReader(this.plugin.getResource("enemies.yml"))));
- var2.options().copyDefaults(true);
- try {
- var2.save(var1);
- Bukkit.getConsoleSender().sendMessage(this.customization.prefix + "Generated default enemies.yml file!");
- } catch (IOException var11) {
- Bukkit.getConsoleSender().sendMessage(this.customization.prefix + "Could not generate default enemies.yml file!");
- var11.printStackTrace();
- }
- }
- Iterator var4 = var2.getConfigurationSection("Enemies").getKeys(false).iterator();
- String var3;
- while(var4.hasNext()) {
- var3 = (String)var4.next();
- this.enemies.put(var3.toLowerCase(), new Enemy(this, var2, var3, false));
- }
- if (var2.getConfigurationSection("Bosses") != null && !var2.getConfigurationSection("Bosses").getKeys(false).isEmpty()) {
- var4 = var2.getConfigurationSection("Bosses").getKeys(false).iterator();
- while(var4.hasNext()) {
- var3 = (String)var4.next();
- this.bosses.put(var3.toLowerCase(), new Enemy(this, var2, var3, true));
- }
- }
- this.enemyGuide = new SmartInventory(this, (String)this.customization.inventories.get("Enemy-Guide"));
- ArrayList var12 = new ArrayList(this.enemies.values());
- var12.addAll(this.bosses.values());
- var4 = var12.iterator();
- for(int var5 = 0; (double)var5 < Math.ceil(Double.valueOf((double)var12.size()) / (double)this.smartSlots.length); ++var5) {
- if (var5 >= this.enemyGuide.getSize()) {
- this.enemyGuide.addInventory(ChatColor.RED + "List #" + (var5 + 1));
- }
- int[] var9;
- int var8 = (var9 = this.smartSlots).length;
- for(int var7 = 0; var7 < var8; ++var7) {
- int var6 = var9[var7];
- if (!var4.hasNext()) {
- break;
- }
- Enemy var10 = (Enemy)var4.next();
- this.enemyGuide.setItem(var5, var6, var10.item);
- }
- }
- }
- protected void updateArenasInventory() {
- for(int var1 = 0; var1 < this.arenaSelector.getSize(); ++var1) {
- this.arenaSelector.clear(var1);
- }
- HashMap var10 = new HashMap();
- Iterator var3 = this.arenas.values().iterator();
- while(var3.hasNext()) {
- Arena var2 = (Arena)var3.next();
- var10.put(var2, var2.maxPlayers);
- }
- LinkedList var11 = new LinkedList(var10.entrySet());
- Collections.sort(var11, new 16(this));
- var3 = var11.iterator();
- for(int var4 = 0; (double)var4 < Math.ceil(Double.valueOf((double)this.arenas.size()) / (double)this.smartSlots.length); ++var4) {
- if (var4 >= this.arenaSelector.getSize()) {
- this.arenaSelector.addInventory(ChatColor.RED + "List #" + (var4 + 1));
- this.arenaSelector.setItem(var4, 49, this.autojoin_itemstack);
- }
- int[] var8;
- int var7 = (var8 = this.smartSlots).length;
- for(int var6 = 0; var6 < var7; ++var6) {
- int var5 = var8[var6];
- if (!var3.hasNext()) {
- break;
- }
- Arena var9 = (Arena)((Entry)var3.next()).getKey();
- var9.id = var4;
- var9.slot = var5;
- var9.updateItem();
- }
- }
- }
- protected void updatePartiesInventory() {
- int var1;
- for(var1 = 0; var1 < this.partySelector.getSize(); ++var1) {
- this.partySelector.clear(var1);
- }
- var1 = 0;
- for(int var2 = 0; (double)var2 < Math.ceil(Double.valueOf((double)this.parties.size()) / (double)this.smartSlots.length); ++var2) {
- if (var2 >= this.partySelector.getSize()) {
- this.partySelector.addInventory(ChatColor.RED + "List #" + (var2 + 1));
- this.partySelector.setItem(var2, 49, this.back_itemstack);
- }
- int[] var6;
- int var5 = (var6 = this.smartSlots).length;
- for(int var4 = 0; var4 < var5; ++var4) {
- int var3 = var6[var4];
- if (var1 >= this.parties.size()) {
- break;
- }
- Party var7 = (Party)this.parties.get(var1);
- var7.id = var2;
- var7.slot = var3;
- var7.updateItem();
- ++var1;
- }
- }
- }
- protected void createDefaultAchievements() {
- FileConfiguration var1 = this.filesManager.getConfig("achievements.yml");
- AchievementType[] var5;
- int var4 = (var5 = AchievementType.values()).length;
- for(int var3 = 0; var3 < var4; ++var3) {
- AchievementType var2 = var5[var3];
- if (!var1.contains("Achievements." + var2.name().toLowerCase())) {
- int[] var9;
- int var8 = (var9 = var2.levels).length;
- for(int var7 = 0; var7 < var8; ++var7) {
- int var6 = var9[var7];
- String var10 = "Achievements." + var2.name().toLowerCase() + "." + var6 + ".";
- var1.set(var10 + "description", var2.defaultDescription.replace("%x%", String.valueOf(var6)));
- var1.set(var10 + "prize-description", "Earn " + (int)(var2.prizeMultiplier * (double)var6) + " coins!");
- var1.set(var10 + "executed-command", "td coins add %player% " + (int)(var2.prizeMultiplier * (double)var6));
- }
- }
- }
- this.filesManager.saveConfig("achievements.yml");
- }
- protected void startLeaderboardUpdater() {
- if (this.leaderboard_updater != null) {
- this.plugin.leaderboard_updater.cancel();
- }
- this.leaderboard_updater = (new 17(this)).runTaskTimer(this, 0L, (long)(this.getConfig().getInt("Update-Leaderboard-Every-Minutes") * 1200));
- }
- private void updateSkull(Sign var1, String var2) {
- Location[] var3 = new Location[]{var1.getLocation().add(0.0D, 1.0D, 0.0D), var1.getLocation().clone().add(1.0D, 1.0D, 0.0D), var1.getLocation().clone().add(-1.0D, 1.0D, 0.0D), var1.getLocation().clone().add(0.0D, 1.0D, 1.0D), var1.getLocation().clone().add(0.0D, 1.0D, -1.0D)};
- Location[] var7 = var3;
- int var6 = var3.length;
- for(int var5 = 0; var5 < var6; ++var5) {
- Location var4 = var7[var5];
- if (var4.getBlock().getState() instanceof Skull) {
- Skull var8 = (Skull)var4.getBlock().getState();
- try {
- var8.setOwner(var2);
- var8.update();
- } catch (Exception var10) {
- }
- break;
- }
- }
- }
- protected ItemStack getItemStack(String var1, boolean var2, boolean var3) {
- String[] var4 = var1.split(" : ");
- String var5 = var4[0].contains(":") ? var4[0].split(":")[0].toUpperCase() : var4[0].toUpperCase();
- ItemStackBuilder var6 = new ItemStackBuilder(Material.getMaterial(var5));
- if (var2) {
- var6.setAmount(Integer.valueOf(var4[1]));
- }
- if (var4[0].contains(":")) {
- var6.setDurability(Integer.valueOf(var4[0].split(":")[1]));
- }
- if (var3) {
- for(int var7 = var2 ? 2 : 1; var7 < var4.length; ++var7) {
- String var8 = var4[var7].split(":")[0].toLowerCase();
- if (var8.equals("name")) {
- var6.setName(ChatColor.translateAlternateColorCodes('&', var4[var7].split(":")[1]));
- } else if (var8.equals("lore")) {
- var6.addLore(new String[]{ChatColor.translateAlternateColorCodes('&', var4[var7].split(":")[1])});
- } else if (var8.equals("enchant")) {
- var6.addEnchantment(Enchantment.getByName(var4[var7].split(":")[1].toUpperCase()), Integer.valueOf(var4[var7].split(":")[2]));
- } else if (var8.equalsIgnoreCase("dye")) {
- var6.setColor(this.getColor(var4[var7].split(":")[1]));
- }
- }
- }
- return var6.build();
- }
- public boolean isOneGamePerServer() {
- return this.config.bungee_mode_enabled && this.arenas != null && this.arenas.size() == 1;
- }
- protected List<Player> getOnlinePlayers() {
- ArrayList var1 = Lists.newArrayList();
- Iterator var3 = Bukkit.getWorlds().iterator();
- while(var3.hasNext()) {
- World var2 = (World)var3.next();
- var1.addAll(var2.getPlayers());
- }
- return Collections.unmodifiableList(var1);
- }
- private void loadReflectionMethods() {
- try {
- this.spectatorMode = GameMode.valueOf("SPECTATOR");
- } catch (Exception var5) {
- }
- Bukkit.getConsoleSender().sendMessage(ChatColor.GOLD + "[" + ChatColor.AQUA + "TowerDefense" + ChatColor.GOLD + "] The plugin is using the new spectator system: " + (this.spectatorMode != null ? ChatColor.GREEN + "Yes" : ChatColor.RED + "No"));
- try {
- setDamageMethod = Class.forName("org.bukkit.inventory.meta.Damageable").getMethod("setDamage", Integer.TYPE);
- } catch (Exception var4) {
- }
- Bukkit.getConsoleSender().sendMessage(ChatColor.GOLD + "[" + ChatColor.AQUA + "TowerDefense" + ChatColor.GOLD + "] The plugin is using the new durability system: " + (setDamageMethod != null ? ChatColor.GREEN + "Yes" : ChatColor.RED + "No"));
- try {
- this.sendBlockChange = Player.class.getMethod("sendBlockChange", Location.class, Class.forName("org.bukkit.block.data.BlockData"));
- } catch (Exception var3) {
- }
- try {
- this.setCollidable = LivingEntity.class.getMethod("setCollidable", Boolean.TYPE);
- } catch (Exception var2) {
- }
- Bukkit.getConsoleSender().sendMessage(ChatColor.GOLD + "[" + ChatColor.AQUA + "TowerDefense" + ChatColor.GOLD + "] Entity collision disabled: " + (this.setCollidable != null ? ChatColor.GREEN + "Yes" : ChatColor.RED + "No"));
- }
- public void sendBlockChange(Player var1, Location var2, Material var3) {
- if (this.sendBlockChange != null) {
- try {
- this.sendBlockChange.invoke(var1, var2, Material.class.getMethod("createBlockData").invoke(var3));
- } catch (Exception var5) {
- var5.printStackTrace();
- }
- } else {
- var1.sendBlockChange(var2, var3, (byte)0);
- }
- }
- private void loadNonCustomizableItems() {
- this.wand_itemstack = (new ItemStackBuilder(Material.BLAZE_ROD)).setName(ChatColor.AQUA + "TowerDefense" + ChatColor.LIGHT_PURPLE + " Wand").addLore(new String[]{ChatColor.YELLOW + "--------------------------", ChatColor.GREEN + "Left click to select the first corner", ChatColor.GREEN + "Right click to select the second corner", ChatColor.YELLOW + "--------------------------"}).build();
- this.towerbuildarea_itemstack = (new ItemStackBuilder(Material.CHEST)).setName(ChatColor.AQUA + "TowerDefense" + ChatColor.LIGHT_PURPLE + " Tower Build Area").addLore(new String[]{ChatColor.YELLOW + "--------------------------", ChatColor.GREEN + "Left click to add a tower building area", ChatColor.GREEN + "Right click to remove tower building area", ChatColor.YELLOW + "--------------------------"}).build();
- this.pane_itemstack = (new ItemStackBuilder(Material.STAINED_GLASS_PANE)).setName(ChatColor.DARK_GRAY + " ").setDurability(7).build();
- this.save_itemstack = (new ItemStackBuilder(Material.DIAMOND)).setName(ChatColor.AQUA + "Save & Apply").build();
- this.plus_itemstack = (new ItemStackBuilder(Material.STAINED_GLASS_PANE)).setName(ChatColor.GREEN + "+").setDurability(5).build();
- this.minus_itemstack = (new ItemStackBuilder(Material.STAINED_GLASS_PANE)).setName(ChatColor.RED + "-").setDurability(14).build();
- }
- private void loadSounds() {
- try {
- this.CLICK = Sound.valueOf("CLICK");
- this.NOTE_PLING = Sound.valueOf("NOTE_PLING");
- this.FIREWORK_TWINKLE = Sound.valueOf("FIREWORK_TWINKLE");
- this.FIREWORK_BLAST = Sound.valueOf("FIREWORK_BLAST");
- this.LAVA_POP = Sound.valueOf("LAVA_POP");
- this.LEVEL_UP = Sound.valueOf("LEVEL_UP");
- this.ANVIL_LAND = Sound.valueOf("ANVIL_LAND");
- this.ITEM_PICKUP = Sound.valueOf("ITEM_PICKUP");
- this.PISTON_EXTEND = Sound.valueOf("PISTON_EXTEND");
- this.BLAZE_DEATH = Sound.valueOf("BLAZE_DEATH");
- } catch (IllegalArgumentException var4) {
- try {
- this.CLICK = Sound.valueOf("UI_BUTTON_CLICK");
- this.NOTE_PLING = Sound.valueOf("BLOCK_NOTE_PLING");
- this.LAVA_POP = Sound.valueOf("BLOCK_LAVA_POP");
- this.LEVEL_UP = Sound.valueOf("ENTITY_PLAYER_LEVELUP");
- this.FIREWORK_TWINKLE = Sound.valueOf("ENTITY_FIREWORK_TWINKLE");
- this.FIREWORK_BLAST = Sound.valueOf("ENTITY_FIREWORK_BLAST");
- this.ANVIL_LAND = Sound.valueOf("BLOCK_ANVIL_LAND");
- this.ITEM_PICKUP = Sound.valueOf("ENTITY_ITEM_PICKUP");
- this.PISTON_EXTEND = Sound.valueOf("BLOCK_PISTON_EXTEND");
- this.BLAZE_DEATH = Sound.valueOf("ENTITY_BLAZE_DEATH");
- } catch (IllegalArgumentException var3) {
- this.CLICK = Sound.valueOf("UI_BUTTON_CLICK");
- this.NOTE_PLING = Sound.valueOf("BLOCK_NOTE_BLOCK_PLING");
- this.LAVA_POP = Sound.valueOf("BLOCK_LAVA_POP");
- this.LEVEL_UP = Sound.valueOf("ENTITY_PLAYER_LEVELUP");
- this.FIREWORK_TWINKLE = Sound.valueOf("ENTITY_FIREWORK_ROCKET_TWINKLE");
- this.FIREWORK_BLAST = Sound.valueOf("ENTITY_FIREWORK_ROCKET_BLAST");
- this.ANVIL_LAND = Sound.valueOf("BLOCK_ANVIL_LAND");
- this.ITEM_PICKUP = Sound.valueOf("ENTITY_ITEM_PICKUP");
- this.PISTON_EXTEND = Sound.valueOf("BLOCK_PISTON_EXTEND");
- this.BLAZE_DEATH = Sound.valueOf("ENTITY_BLAZE_DEATH");
- }
- }
- }
- public void loadTowerSpeeds() {
- this.towerSpeeds.put("highest", -40);
- this.towerSpeeds.put("very-high", -30);
- this.towerSpeeds.put("high", -20);
- this.towerSpeeds.put("normal-high", -10);
- this.towerSpeeds.put("normal-low", 10);
- this.towerSpeeds.put("low", 20);
- this.towerSpeeds.put("very-low", 30);
- this.towerSpeeds.put("slowest", 40);
- }
- public void loadEnemySpeeds() {
- this.enemySpeeds.put("highest", 0.28D);
- this.enemySpeeds.put("very-high", 0.21D);
- this.enemySpeeds.put("high", 0.14D);
- this.enemySpeeds.put("normal-high", 0.07D);
- this.enemySpeeds.put("normal-low", -0.05D);
- this.enemySpeeds.put("low", -0.1D);
- this.enemySpeeds.put("very-low", -0.15D);
- this.enemySpeeds.put("slowest", -0.2D);
- }
- public String getDate() {
- return ChatColor.GRAY + (new SimpleDateFormat("dd/MM/yyyy")).format(new Date());
- }
- public double getModifier(Player var1) {
- double var2 = 1.0D;
- Iterator var5 = this.plugin.config.modifiers.keySet().iterator();
- while(var5.hasNext()) {
- String var4 = (String)var5.next();
- if (var1.hasPermission(var4) && (Double)this.plugin.config.modifiers.get(var4) > var2) {
- var2 = (Double)this.plugin.config.modifiers.get(var4);
- }
- }
- return var2;
- }
- public String getPlaceholderValue(Player var1, PlayerData var2, String var3) {
- if (var3.equals("kills")) {
- return String.valueOf(var2.kills);
- } else if (var3.equals("enemies_spawned")) {
- return String.valueOf(var2.enemies_spawned);
- } else if (var3.equals("coins")) {
- return String.valueOf(var2.getCoins(var1));
- } else if (var3.equals("wins")) {
- return String.valueOf(var2.wins);
- } else if (var3.equals("games_played")) {
- return String.valueOf(var2.games_played);
- } else if (var3.equals("highest_wave_survived")) {
- return String.valueOf(var2.highest_wave_survived);
- } else if (var3.equals("player_exp")) {
- return String.valueOf(var2.player_exp);
- } else if (var3.equals("player_next_rank_exp")) {
- return String.valueOf(this.ranksManager.getNextRankExp(var2));
- } else if (var3.equals("player_rank")) {
- return String.valueOf(var2.player_rank);
- } else if (var3.equals("player_prestige")) {
- return String.valueOf(var2.player_prestige);
- } else if (var3.equals("towers_built")) {
- return String.valueOf(var2.towers_built);
- } else if (var3.equals("tower_upgrades")) {
- return String.valueOf(var2.tower_upgrades);
- } else {
- return var3.equals("towers_sold") ? String.valueOf(var2.towers_sold) : null;
- }
- }
- public String getPlaceholderValue(Arena var1, String var2) {
- if (var2.equals("arena_players")) {
- return String.valueOf(var1.players.size());
- } else if (var2.equals("arena_max_players")) {
- return String.valueOf(var1.maxPlayers);
- } else if (var2.equals("arena_viewers")) {
- return String.valueOf(var1.spectators.size());
- } else if (var2.equals("arena_name")) {
- return String.valueOf(var1.name);
- } else if (var2.equals("arena_mode")) {
- return String.valueOf(var1.getMode());
- } else if (var2.equals("arena_wave")) {
- return String.valueOf(var1.currentWave);
- } else if (var2.equals("arena_difficulty")) {
- return String.valueOf(var1.difficulty);
- } else if (var2.equals("arena_final_wave")) {
- return String.valueOf(var1.difficulty.finalWave < 0 ? SPECIAL_CHARACTER.INFINITY.toString() : "" + var1.difficulty.finalWave);
- } else if (var2.equals("arena_health")) {
- return String.valueOf(var1.currentHealth);
- } else if (var2.equals("arena_max_health")) {
- return String.valueOf(var1.difficulty.playerHealth);
- } else {
- return var2.equals("date") ? this.getDate() : null;
- }
- }
- public Color getColor(String var1) {
- if (var1.equalsIgnoreCase("AQUA")) {
- return Color.AQUA;
- } else if (var1.equalsIgnoreCase("BLUE")) {
- return Color.BLUE;
- } else if (var1.equalsIgnoreCase("FUCHSIA")) {
- return Color.FUCHSIA;
- } else if (var1.equalsIgnoreCase("GRAY")) {
- return Color.GRAY;
- } else if (var1.equalsIgnoreCase("GREEN")) {
- return Color.GREEN;
- } else if (var1.equalsIgnoreCase("LIME")) {
- return Color.LIME;
- } else if (var1.equalsIgnoreCase("MAROON")) {
- return Color.MAROON;
- } else if (var1.equalsIgnoreCase("NAVY")) {
- return Color.NAVY;
- } else if (var1.equalsIgnoreCase("OLIVE")) {
- return Color.OLIVE;
- } else if (var1.equalsIgnoreCase("ORANGE")) {
- return Color.ORANGE;
- } else if (var1.equalsIgnoreCase("PURPLE")) {
- return Color.PURPLE;
- } else if (var1.equalsIgnoreCase("RED")) {
- return Color.RED;
- } else if (var1.equalsIgnoreCase("SILVER")) {
- return Color.SILVER;
- } else if (var1.equalsIgnoreCase("TEAL")) {
- return Color.TEAL;
- } else if (var1.equalsIgnoreCase("WHITE")) {
- return Color.WHITE;
- } else {
- return var1.equalsIgnoreCase("YELLOW") ? Color.YELLOW : Color.BLACK;
- }
- }
- public String getHealthString(double var1, double var3) {
- if (var1 == var3) {
- return ChatColor.GREEN + this.healthString;
- } else {
- int var5 = (int)(var1 / var3 * 10.0D);
- return var5 < 1 ? ChatColor.GRAY + this.healthString : ChatColor.GREEN + this.healthString.substring(0, var5) + ChatColor.GRAY + this.healthString.substring(var5, this.healthString.length());
- }
- }
- // $FF: synthetic method
- static void access$0(TowerDefense var0, Sign var1, String var2) {
- var0.updateSkull(var1, var2);
- }
- }
Advertisement