Facebook
From Corrupt Parakeet, 9 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 601
  1. package HesterQ.HqCastle;
  2.  
  3. import HesterQ.HqCastle.events.BlockBreak;
  4. import HesterQ.HqCastle.events.BlockPlace;
  5. import HesterQ.HqCastle.events.ChatMessage;
  6. import HesterQ.HqCastle.events.DamageEvent;
  7. import HesterQ.HqCastle.events.DeathEvent;
  8. import HesterQ.HqCastle.events.Explosion;
  9. import HesterQ.HqCastle.events.MoveEvent;
  10. import HesterQ.HqCastle.events.NameTag;
  11. import HesterQ.HqCastle.events.PlayerInteract;
  12. import HesterQ.HqCastle.events.PreCommand;
  13. import HesterQ.HqCastle.events.QuitEvent;
  14. import HesterQ.HqCastle.events.RespawnEvent;
  15. import java.util.ArrayList;
  16. import java.util.HashMap;
  17. import java.util.List;
  18. import java.util.logging.Logger;
  19. import org.bukkit.Bukkit;
  20. import org.bukkit.ChatColor;
  21. import org.bukkit.Location;
  22. import org.bukkit.Material;
  23. import org.bukkit.Server;
  24. import org.bukkit.World;
  25. import org.bukkit.World.Environment;
  26. import org.bukkit.WorldCreator;
  27. import org.bukkit.block.Block;
  28. import org.bukkit.command.Command;
  29. import org.bukkit.command.CommandSender;
  30. import org.bukkit.configuration.file.FileConfiguration;
  31. import org.bukkit.configuration.file.FileConfigurationOptions;
  32. import org.bukkit.entity.Player;
  33. import org.bukkit.event.EventHandler;
  34. import org.bukkit.event.Listener;
  35. import org.bukkit.event.block.SignChangeEvent;
  36. import org.bukkit.inventory.Inventory;
  37. import org.bukkit.inventory.ItemStack;
  38. import org.bukkit.inventory.PlayerInventory;
  39. import org.bukkit.inventory.meta.ItemMeta;
  40. import org.bukkit.plugin.PluginManager;
  41. import org.bukkit.plugin.java.JavaPlugin;
  42. import org.bukkit.plugin.messaging.Messenger;
  43. import org.bukkit.potion.PotionEffect;
  44. import org.bukkit.scheduler.BukkitScheduler;
  45.  
  46. public class Main
  47.   extends JavaPlugin
  48.   implements Listener
  49. {
  50.   protected static final Logger log = Logger.getLogger("Minecraft");
  51.   public List<Arena> arenaList = new ArrayList();
  52.   public List<Player> TagList = new ArrayList();
  53.  
  54.   public void onDisable()
  55.   {
  56.     FileConfiguration config = getConfig();
  57.     for (int i = 0; i < this.arenaList.size(); i++)
  58.     {
  59.       Arena arena = (Arena)this.arenaList.get(i);
  60.       for (int j = 0; j < arena.getPlayerList().size(); j++) {
  61.         if (arena.getPlayerList().get(j) != null)
  62.         {
  63.           removeItems((Player)arena.getPlayerList().get(j));
  64.           ((Player)arena.getPlayerList().get(j)).teleport(toLocation(config.getString("Spawn")));
  65.           ((Player)arena.getPlayerList().get(j)).sendMessage(ChatColor.RED + "Restart spowodowal zakonczenie gry!");
  66.         }
  67.       }
  68.     }
  69.     log.info("[HqCastle] has been disabled.");
  70.   }
  71.  
  72.   public void onEnable()
  73.   {
  74.     CreateFiles.firstRun();
  75.     FileConfiguration config = getConfig();
  76.     if (!config.contains("Spawn")) {
  77.       config.set("Spawn", "world/0/65/0/0/0");
  78.     }
  79.     config.options().copyDefaults(true);
  80.     saveConfig();
  81.    
  82.     getServer().getPluginManager().registerEvents(new BlockBreak(this), this);
  83.     getServer().getPluginManager().registerEvents(new BlockPlace(this), this);
  84.     getServer().getPluginManager().registerEvents(new ChatMessage(this), this);
  85.     getServer().getPluginManager().registerEvents(new DamageEvent(this), this);
  86.     getServer().getPluginManager().registerEvents(new DeathEvent(this, toLocation(config.getString("Spawn"))), this);
  87.     getServer().getPluginManager().registerEvents(new Explosion(this), this);
  88.     getServer().getPluginManager().registerEvents(new MoveEvent(this), this);
  89.     getServer().getPluginManager().registerEvents(new NameTag(this), this);
  90.     getServer().getPluginManager().registerEvents(new PlayerInteract(this), this);
  91.     getServer().getPluginManager().registerEvents(new PreCommand(this), this);
  92.     getServer().getPluginManager().registerEvents(new QuitEvent(this, toLocation(config.getString("Spawn"))), this);
  93.     getServer().getPluginManager().registerEvents(new RespawnEvent(this), this);
  94.     getServer().getMessenger().registerOutgoingPluginChannel(this, "BoungeeCord");
  95.     getServer().getPluginManager().registerEvents(this, this);
  96.    
  97.     List<String> lista = config.getStringList("ArenaList");
  98.     for (int i = 0; i < lista.size(); i++)
  99.     {
  100.       int toStart = config.getInt((String)lista.get(i) + ".toStart");
  101.       int startTime = config.getInt((String)lista.get(i) + ".startTime");
  102.       int voteStart = config.getInt((String)lista.get(i) + ".voteStart");
  103.      
  104.       boolean isEnabled = config.getBoolean((String)lista.get(i) + ".enabled");
  105.       Location red = toLocation(config.getString((String)lista.get(i) + ".red"));
  106.       Location blue = toLocation(config.getString((String)lista.get(i) + ".blue"));
  107.       Location flag = toLocation(config.getString((String)lista.get(i) + ".flag"));
  108.       Location cuboid = toLocation(config.getString((String)lista.get(i) + ".cuboid"));
  109.       Location spawn = toLocation(config.getString("Spawn"));
  110.      
  111.       Arena arena = new Arena(this, (String)lista.get(i), toStart, voteStart, startTime, Arena.GameMode.DISABLED, red, blue, cuboid, flag, spawn);
  112.       getServer().dispatchCommand(getServer().getConsoleSender(), "wr rebuild " + cuboid.getWorld().getName());
  113.      
  114.       this.arenaList.add(arena);
  115.      
  116.       Arena.GameMode mode = Arena.GameMode.DISABLED;
  117.       if (isEnabled) {
  118.         mode = Arena.GameMode.WAITING;
  119.       }
  120.       arena.setMode(mode);
  121.     }
  122.     log.info("[HqCastle] has been enabled.");
  123.   }
  124.  
  125.   public List<Arena> getArenaList()
  126.   {
  127.     return this.arenaList;
  128.   }
  129.  
  130.   public Arena getArenaByString(String arena)
  131.   {
  132.     for (int i = 0; i < this.arenaList.size(); i++) {
  133.       if (((Arena)this.arenaList.get(i)).getName().equalsIgnoreCase(arena)) {
  134.         return (Arena)this.arenaList.get(i);
  135.       }
  136.     }
  137.     return null;
  138.   }
  139.  
  140.   public Arena getPlayerArena(Player player)
  141.   {
  142.     for (int i = 0; i < this.arenaList.size(); i++) {
  143.       if (((Arena)this.arenaList.get(i)).getPlayerList().contains(player)) {
  144.         return (Arena)this.arenaList.get(i);
  145.       }
  146.     }
  147.     return null;
  148.   }
  149.  
  150.   public static boolean isNumeric(String str)
  151.   {
  152.     try
  153.     {
  154.       Integer.parseInt(str);
  155.     }
  156.     catch (NumberFormatException nfe)
  157.     {
  158.       return false;
  159.     }
  160.     return true;
  161.   }
  162.  
  163.   public String getLocation(Player player)
  164.   {
  165.     Location loc = player.getLocation();
  166.     String location = player.getWorld().getName() + "/" + (int)loc.getX() + "/" + (int)loc.getY() + "/" + (int)loc.getZ() + "/" + loc.getYaw() + "/" + loc.getPitch();
  167.     return location;
  168.   }
  169.  
  170.   public Location toLocation(String location)
  171.   {
  172.     String[] pos = location.split("/");
  173.    
  174.     double x = Double.parseDouble(pos[1]);
  175.     double y = Double.parseDouble(pos[2]);
  176.     double z = Double.parseDouble(pos[3]);
  177.     float yaw = Float.parseFloat(pos[4]);
  178.     float pitch = Float.parseFloat(pos[5]);
  179.    
  180.     WorldCreator.name(pos[0]).environment(World.Environment.NORMAL).generateStructures(false).createWorld();
  181.     World world = Bukkit.getWorld(pos[0]);
  182.     return new Location(world, x, y, z, yaw, pitch);
  183.   }
  184.  
  185.   public void giveTorch(Player player)
  186.   {
  187.     player.getInventory().clear();
  188.     ItemStack torch = new ItemStack(Material.NETHER_STAR, 1);
  189.     ItemMeta im = torch.getItemMeta();
  190.     im.setDisplayName(ChatColor.RED + "Menu [Go2mc.pl]");
  191.     torch.setItemMeta(im);
  192.     player.getInventory().addItem(new ItemStack[] { torch });
  193.   }
  194.  
  195.   public void removeItems(Player player)
  196.   {
  197.     player.setFireTicks(0);
  198.     player.setFallDistance(0.0F);
  199.     player.setHealth(20);
  200.     player.setFoodLevel(20);
  201.    
  202.     player.getInventory().clear();
  203.     player.getEnderChest().clear();
  204.     player.getInventory().setHelmet(new ItemStack(Material.AIR));
  205.     player.getInventory().setChestplate(new ItemStack(Material.AIR));
  206.     player.getInventory().setLeggings(new ItemStack(Material.AIR));
  207.     player.getInventory().setBoots(new ItemStack(Material.AIR));
  208.     for (PotionEffect effect : player.getActivePotionEffects()) {
  209.       player.removePotionEffect(effect.getType());
  210.     }
  211.     giveTorch(player);
  212.   }
  213.  
  214.   public void removeFromQueue(Player player)
  215.   {
  216.     Arena arena = getPlayerArena(player);
  217.     if (arena == null) {
  218.       return;
  219.     }
  220.     arena.removePlayer(player);
  221.     if (arena.getBlueList().contains(player)) {
  222.       arena.removeBluePlayer(player);
  223.     }
  224.     if (arena.getRedList().contains(player)) {
  225.       arena.removeRedPlayer(player);
  226.     }
  227.     if (arena.voteEq.containsKey(player)) {
  228.       arena.voteEq.remove(player);
  229.     }
  230.     if (arena.voteRound.contains(player)) {
  231.       arena.voteRound.remove(player);
  232.     }
  233.     if (arena.vote.containsKey(player)) {
  234.       arena.vote.remove(player);
  235.     }
  236.   }
  237.  
  238.   @EventHandler
  239.   public void onSignInteraction(SignChangeEvent e)
  240.   {
  241.     String l0 = e.getLine(0);
  242.     String l1 = e.getLine(1);
  243.     FileConfiguration config = getConfig();
  244.     List<String> arena = config.getStringList("ArenaList");
  245.    
  246.     Block b = e.getBlock();
  247.     if ((b.getType() == Material.SIGN) || (b.getType() == Material.WALL_SIGN) || (b.getType() == Material.WALL_SIGN)) {
  248.       if (l0.equalsIgnoreCase("Castle")) {
  249.         if (l1.equals(Boolean.valueOf(arena.contains("test".toString())))) {
  250.           e.getPlayer().sendMessage("Typowa wiadomosc");
  251.         }
  252.       }
  253.     }
  254.   }
  255.  
  256.   public boolean onCommand(CommandSender sender, Command command, String commandLabel, String[] args)
  257.   {
  258.     FileConfiguration config = getConfig();
  259.     Player player = (Player)sender;
  260.     if (command.getName().equalsIgnoreCase("castle"))
  261.     {
  262.       if ((args.length >= 1) && (args[0].equalsIgnoreCase("dolacz")))
  263.       {
  264.         String map = null;
  265.         if (args.length == 2) {
  266.           map = args[1];
  267.         }
  268.         for (int i = 0; i < this.arenaList.size(); i++) {
  269.           if (((Arena)this.arenaList.get(i)).getPlayerList().contains(player))
  270.           {
  271.             player.sendMessage(ChatColor.RED + "Jestes juz zapisany do gry lub juz grasz!");
  272.             player.sendMessage(ChatColor.RED + "Mozesz sie wypisac z gry. Wpisz /castle opusc");
  273.             return true;
  274.           }
  275.         }
  276.         for (int i = 0; i < this.arenaList.size(); i++) {
  277.           if (((Arena)this.arenaList.get(i)).getMode() == Arena.GameMode.WAITING)
  278.           {
  279.             if (((map == null) || (((Arena)this.arenaList.get(i)).getName().equalsIgnoreCase(map))) && (
  280.               (((Arena)this.arenaList.get(i)).getPlayerList().size() < ((Arena)this.arenaList.get(i)).getToStart()) || (
  281.               (player.hasPermission("HqCastle.VIP")) &&
  282.               (((Arena)this.arenaList.get(i)).getPlayerList().size() < ((Arena)this.arenaList.get(i)).getToStart() + 4))))
  283.             {
  284.               ((Arena)this.arenaList.get(i)).addPlayer(player);
  285.               player.sendMessage(ChatColor.DARK_GREEN + "Zostales zapisany do gry na arenie " + ChatColor.GOLD + ((Arena)this.arenaList.get(i)).getName());
  286.               player.teleport(toLocation(config.getString("Spawn")));
  287.               for (int x = 0; x < ((Arena)this.arenaList.get(i)).getPlayerList().size(); x++) {
  288.                 ((Player)((Arena)this.arenaList.get(i)).getPlayerList().get(x)).sendMessage(ChatColor.GREEN + "Gracz " + ChatColor.GOLD + player.getName() + ChatColor.GREEN + " dolaczyl do gry " + ChatColor.YELLOW + ((Arena)this.arenaList.get(i)).getPlayerList().size() + ChatColor.RED + "|" + ChatColor.GOLD + ((Arena)this.arenaList.get(i)).getToStart());
  289.               }
  290.               if ((((Arena)this.arenaList.get(i)).getPlayerList().size() >= ((Arena)this.arenaList.get(i)).getToStart()) &&
  291.                 (!((Arena)this.arenaList.get(i)).getStarted()))
  292.               {
  293.                 for (int j = 0; j < this.arenaList.size(); j++) {
  294.                   ((Player)((Arena)this.arenaList.get(i)).getPlayerList().get(j)).sendMessage(ChatColor.DARK_GREEN + "Gra rozpocznie sie za 15 sekund!");
  295.                 }
  296.                 ((Arena)this.arenaList.get(i)).setStarted(true);
  297.                 final int x = i;
  298.                 getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable()
  299.                 {
  300.                   public void run()
  301.                   {
  302.                     ((Arena)Main.this.arenaList.get(x)).start();
  303.                   }
  304.                 }, 300L);
  305.               }
  306.               return true;
  307.             }
  308.           }
  309.           else if ((map != null) &&
  310.             (((Arena)this.arenaList.get(i)).getName().equalsIgnoreCase(map)))
  311.           {
  312.             player.sendMessage(ChatColor.DARK_GREEN + "Aktualnie toczy sie rozgrywka, poczekaj na jej zakonczenie!");
  313.             return true;
  314.           }
  315.         }
  316.         player.sendMessage(ChatColor.DARK_GREEN + "Wszystkie areny zajete. Poczekaj na zwolnienie sie areny!");
  317.         return true;
  318.       }
  319.       if ((args.length == 1) && (args[0].equalsIgnoreCase("dolacz")))
  320.       {
  321.         player.sendMessage(ChatColor.RED + "Wpisz /castle dolacz - dolacz do losowej mapy");
  322.         player.sendMessage(ChatColor.RED + "Wpisz /castle dolacz <mapa> - dolacz do wybranej mapy");
  323.         return true;
  324.       }
  325.       if ((args.length == 1) && (args[0].equalsIgnoreCase("opusc")))
  326.       {
  327.         for (int i = 0; i < this.arenaList.size(); i++) {
  328.           if (((Arena)this.arenaList.get(i)).getPlayerList().contains(player))
  329.           {
  330.             if (((Arena)this.arenaList.get(i)).getMode() == Arena.GameMode.WAITING)
  331.             {
  332.               for (int x = 0; x < ((Arena)this.arenaList.get(i)).getPlayerList().size(); x++) {
  333.                 ((Player)((Arena)this.arenaList.get(i)).getPlayerList().get(x)).sendMessage(ChatColor.GREEN + "Gracz " + ChatColor.GOLD + player.getName() + ChatColor.GREEN + " opuscil gre " + ChatColor.YELLOW + (((Arena)this.arenaList.get(i)).getPlayerList().size() - 1) + ChatColor.RED + "|" + ChatColor.GOLD + ((Arena)this.arenaList.get(i)).getToStart());
  334.               }
  335.               removeFromQueue(player);
  336.             }
  337.             else
  338.             {
  339.               player.setHealth(0);
  340.             }
  341.             player.sendMessage(ChatColor.RED + "Zostales wypisany z gry!");
  342.             return true;
  343.           }
  344.         }
  345.         player.sendMessage(ChatColor.RED + "Nie jestes w grze!");
  346.         return true;
  347.       }
  348.       if ((args.length == 2) && (args[0].equalsIgnoreCase("eq")))
  349.       {
  350.         Arena arena = getPlayerArena(player);
  351.         if (arena == null)
  352.         {
  353.           player.sendMessage(ChatColor.RED + "Musisz byc na arenie!");
  354.           return true;
  355.         }
  356.         if ((args[1].equalsIgnoreCase("KOX")) || (args[1].equalsIgnoreCase("POTION")))
  357.         {
  358.           arena.voteEq.put(player, args[1]);
  359.           player.sendMessage(ChatColor.GREEN + "Zaglosowales na zestaw, wyniki poznasz po starcie gry!");
  360.           return true;
  361.         }
  362.         player.sendMessage(ChatColor.RED + "Wpisz /castle eq <KOX/POTION>");
  363.         return true;
  364.       }
  365.       if ((args.length == 1) && (args[0].equalsIgnoreCase("eq")))
  366.       {
  367.         player.sendMessage(ChatColor.RED + "Wpisz /castle eq <KOX/POTION>");
  368.         return true;
  369.       }
  370.       if ((args.length == 1) && (args[0].equalsIgnoreCase("start")))
  371.       {
  372.         Arena arena = getPlayerArena(player);
  373.         if (arena == null)
  374.         {
  375.           player.sendMessage(ChatColor.RED + "Musisz byc na arenie!");
  376.           return true;
  377.         }
  378.         if (arena.voteRound.contains(player))
  379.         {
  380.           player.sendMessage(ChatColor.RED + "Juz glosowales! " + ChatColor.YELLOW + arena.voteRound.size() + ChatColor.RED + "|" + ChatColor.GOLD + arena.getVoteStart());
  381.           return true;
  382.         }
  383.         arena.voteRound.add(player);
  384.         player.sendMessage(ChatColor.GREEN + "Zaglosowales za rozpoczeciem gry " + ChatColor.YELLOW + arena.voteRound.size() + ChatColor.RED + "|" + ChatColor.GOLD + arena.getVoteStart());
  385.         if ((arena.voteRound.size() == arena.getVoteStart()) &&
  386.           (!arena.getStarted()))
  387.         {
  388.           for (int j = 0; j < arena.getPlayerList().size(); j++) {
  389.             ((Player)arena.getPlayerList().get(j)).sendMessage(ChatColor.GREEN + "Gra rozpocznie sie za 15 sekund!");
  390.           }
  391.           arena.setStarted(true);
  392.           final Arena NewArena = arena;
  393.           getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable()
  394.           {
  395.             public void run()
  396.             {
  397.               NewArena.start();
  398.             }
  399.           }, 300L);
  400.         }
  401.         return true;
  402.       }
  403.       if ((args.length == 2) && (args[0].equalsIgnoreCase("team")))
  404.       {
  405.         Arena arena = getPlayerArena(player);
  406.         if (arena == null)
  407.         {
  408.           player.sendMessage(ChatColor.RED + "Musisz byc na arenie!");
  409.           return true;
  410.         }
  411.         if ((!args[1].equalsIgnoreCase("blue")) && (!args[1].equalsIgnoreCase("red")))
  412.         {
  413.           player.sendMessage(ChatColor.RED + "Wpisz /castle team <red/blue>");
  414.           return true;
  415.         }
  416.         if (((arena.getBlueList().contains(player)) && (args[1].equalsIgnoreCase("blue"))) || ((arena.getRedList().contains(player)) && (args[1].equalsIgnoreCase("red"))))
  417.         {
  418.           player.sendMessage(ChatColor.RED + "Jestes juz w tym team'ie!");
  419.           return true;
  420.         }
  421.         if ((arena.getBlueList().contains(player)) && (args[1].equalsIgnoreCase("red")))
  422.         {
  423.           if (arena.getRedList().size() == arena.getToStart() / 2)
  424.           {
  425.             player.sendMessage(ChatColor.RED + "W tym teamie jest juz komplet graczy!");
  426.             return true;
  427.           }
  428.           arena.removeBluePlayer(player);
  429.           arena.addRedPlayer(player);
  430.         }
  431.         else if ((arena.getRedList().contains(player)) && (args[1].equalsIgnoreCase("blue")))
  432.         {
  433.           if (arena.getBlueList().size() == arena.getToStart() / 2)
  434.           {
  435.             player.sendMessage(ChatColor.RED + "W tym teamie jest juz komplet graczy!");
  436.             return true;
  437.           }
  438.           arena.removeRedPlayer(player);
  439.           arena.addBluePlayer(player);
  440.         }
  441.         player.sendMessage(ChatColor.DARK_GREEN + "Zostales przeniesiony do teamu " + ChatColor.GOLD + args[1].toLowerCase());
  442.         return true;
  443.       }
  444.       if ((args.length == 1) && (args[0].equalsIgnoreCase("team")))
  445.       {
  446.         player.sendMessage(ChatColor.RED + "Wpisz /castle team <red/blue>");
  447.         return true;
  448.       }
  449.       if ((player.isOp()) || (player.hasPermission("HqCastle.admin")))
  450.       {
  451.         if ((args.length == 2) && (args[0].equalsIgnoreCase("dodaj")))
  452.         {
  453.           List<String> arena = config.getStringList("ArenaList");
  454.           if (arena.contains(args[1].toLowerCase()))
  455.           {
  456.             player.sendMessage(ChatColor.RED + "Taka nazwa jest juz zajeta!");
  457.             return true;
  458.           }
  459.           List<String> aList = config.getStringList("ArenaList");
  460.           aList.add(args[1]);
  461.          
  462.           config.set("ArenaList", aList);
  463.           config.set(args[1].toLowerCase() + ".name", args[1].toLowerCase());
  464.           config.set(args[1].toLowerCase() + ".enabled", Boolean.valueOf(false));
  465.           config.options().copyDefaults(true);
  466.           saveConfig();
  467.          
  468.           player.sendMessage(ChatColor.RED + "Arena zostala dodana!");
  469.           return true;
  470.         }
  471.         if ((args.length == 1) && (args[0].equalsIgnoreCase("spawn")))
  472.         {
  473.           config.set("Spawn", getLocation(player));
  474.           config.options().copyDefaults(true);
  475.           saveConfig();
  476.          
  477.           player.sendMessage(ChatColor.RED + "Lokacja spawn dodana!");
  478.           return true;
  479.         }
  480.         if ((args.length >= 3) && (args[0].equalsIgnoreCase("ustaw")))
  481.         {
  482.           List<String> arena = config.getStringList("ArenaList");
  483.           if (!arena.contains(args[1].toLowerCase()))
  484.           {
  485.             player.sendMessage(ChatColor.RED + "Taka arena nie istnieje!");
  486.             return true;
  487.           }
  488.           Arena EditedArena = getArenaByString(args[1]);
  489.           if (args[2].equalsIgnoreCase("atakujacy"))
  490.           {
  491.             config.set(args[1].toLowerCase() + ".red", getLocation(player));
  492.             config.options().copyDefaults(true);
  493.             saveConfig();
  494.             if (EditedArena != null) {
  495.               EditedArena.setRed(player.getLocation());
  496.             }
  497.             player.sendMessage(ChatColor.RED + "Lokacja atakujacych dodana!");
  498.             return true;
  499.           }
  500.           if (args[2].equalsIgnoreCase("obroncy"))
  501.           {
  502.             config.set(args[1].toLowerCase() + ".blue", getLocation(player));
  503.             config.options().copyDefaults(true);
  504.             saveConfig();
  505.             if (EditedArena != null) {
  506.               EditedArena.setBlue(player.getLocation());
  507.             }
  508.             player.sendMessage(ChatColor.RED + "Lokacja broniacych dodana!");
  509.             return true;
  510.           }
  511.           if (args[2].equalsIgnoreCase("flag"))
  512.           {
  513.             config.set(args[1].toLowerCase() + ".flag", getLocation(player));
  514.             config.options().copyDefaults(true);
  515.             saveConfig();
  516.             if (EditedArena != null) {
  517.               EditedArena.setFlag(player.getLocation());
  518.             }
  519.             player.sendMessage(ChatColor.RED + "Lokacja flag dodana!");
  520.             return true;
  521.           }
  522.           if (args[2].equalsIgnoreCase("cuboid"))
  523.           {
  524.             config.set(args[1].toLowerCase() + ".cuboid", getLocation(player));
  525.             config.options().copyDefaults(true);
  526.             saveConfig();
  527.             if (EditedArena != null) {
  528.               EditedArena.setCuboid(player.getLocation());
  529.             }
  530.             player.sendMessage(ChatColor.RED + "Lokacja cuboid dodana!");
  531.             return true;
  532.           }
  533.           if (args[2].equalsIgnoreCase("tostart"))
  534.           {
  535.             if (args.length != 4)
  536.             {
  537.               player.sendMessage(ChatColor.RED + "Wpisz /castle ustaw <nazwa> tostart ilosc");
  538.               return true;
  539.             }
  540.             if (!isNumeric(args[3]))
  541.             {
  542.               player.sendMessage(ChatColor.RED + args[3] + " nie jest liczba!");
  543.               return true;
  544.             }
  545.             config.set(args[1].toLowerCase() + ".toStart", Integer.valueOf(Integer.parseInt(args[3])));
  546.             config.options().copyDefaults(true);
  547.             saveConfig();
  548.             if (EditedArena != null) {
  549.               EditedArena.setToStart(Integer.parseInt(args[3]));
  550.             }
  551.             player.sendMessage(ChatColor.RED + "Wymagana licza osob do startu zostala ustawiona!");
  552.             return true;
  553.           }
  554.           if (args[2].equalsIgnoreCase("voteStart"))
  555.           {
  556.             if (args.length != 4)
  557.             {
  558.               player.sendMessage(ChatColor.RED + "Wpisz /castle ustaw <nazwa> votestart ilosc");
  559.               return true;
  560.             }
  561.             if (!isNumeric(args[3]))
  562.             {
  563.               player.sendMessage(ChatColor.RED + args[3] + " nie jest liczba!");
  564.               return true;
  565.             }
  566.             config.set(args[1].toLowerCase() + ".voteStart", Integer.valueOf(Integer.parseInt(args[3])));
  567.             config.options().copyDefaults(true);
  568.             saveConfig();
  569.             if (EditedArena != null) {
  570.               EditedArena.setVoteStart(Integer.parseInt(args[3]));
  571.             }
  572.             player.sendMessage(ChatColor.RED + "Minimalna wymagana licza osob do startu zostala ustawiona!");
  573.             return true;
  574.           }
  575.           if (args[2].equalsIgnoreCase("time"))
  576.           {
  577.             if (args.length != 4)
  578.             {
  579.               player.sendMessage(ChatColor.RED + "Wpisz /castle ustaw <nazwa> time czas");
  580.               return true;
  581.             }
  582.             if (!isNumeric(args[3]))
  583.             {
  584.               player.sendMessage(ChatColor.RED + args[3] + " nie jest liczba!");
  585.               return true;
  586.             }
  587.             config.set(args[1].toLowerCase() + ".startTime", Integer.valueOf(Integer.parseInt(args[3])));
  588.             config.options().copyDefaults(true);
  589.             saveConfig();
  590.             if (EditedArena != null) {
  591.               EditedArena.setStartTime(Integer.parseInt(args[3]));
  592.             }
  593.             player.sendMessage(ChatColor.RED + "Czas gry zostal ustawiony!");
  594.             return true;
  595.           }
  596.           if (args[2].equalsIgnoreCase("update"))
  597.           {
  598.             for (int i = 0; i < this.arenaList.size(); i++) {
  599.               if (((Arena)this.arenaList.get(i)).getName().equalsIgnoreCase(args[1]))
  600.               {
  601.                 getServer().dispatchCommand(getServer().getConsoleSender(), "wr save " + ((Arena)this.arenaList.get(i)).getCuboid().getWorld().getName());
  602.                
  603.                 player.sendMessage(ChatColor.RED + "Swiat zostal nadpisany");
  604.                 return true;
  605.               }
  606.             }
  607.             return true;
  608.           }
  609.           if (args[2].equalsIgnoreCase("wlacz"))
  610.           {
  611.             config.set(args[1].toLowerCase() + ".enabled", Boolean.valueOf(true));
  612.             config.options().copyDefaults(true);
  613.             saveConfig();
  614.            
  615.             player.sendMessage(ChatColor.RED + "Arena zostala wlaczona!");
  616.             for (int i = 0; i < this.arenaList.size(); i++) {
  617.               if (((Arena)this.arenaList.get(i)).getName().equalsIgnoreCase(args[1]))
  618.               {
  619.                 ((Arena)this.arenaList.get(i)).setMode(Arena.GameMode.WAITING);
  620.                 return true;
  621.               }
  622.             }
  623.             int toStart = config.getInt(args[1].toLowerCase() + ".toStart");
  624.             int startTime = config.getInt(args[1].toLowerCase() + ".startTime");
  625.             int voteStart = config.getInt(args[1].toLowerCase() + ".voteStart");
  626.            
  627.             boolean isEnabled = config.getBoolean(args[1].toLowerCase() + ".enabled");
  628.             Arena.GameMode mode = Arena.GameMode.DISABLED;
  629.             if (isEnabled) {
  630.               mode = Arena.GameMode.WAITING;
  631.             }
  632.             Location red = toLocation(config.getString(args[1].toLowerCase() + ".red"));
  633.             Location blue = toLocation(config.getString(args[1].toLowerCase() + ".blue"));
  634.             Location flag = toLocation(config.getString(args[1].toLowerCase() + ".flag"));
  635.             Location cuboid = toLocation(config.getString(args[1].toLowerCase() + ".cuboid"));
  636.             Location spawn = toLocation(config.getString("Spawn"));
  637.            
  638.             Arena newArena = new Arena(this, args[1].toLowerCase(), toStart, voteStart, startTime, mode, red, blue, cuboid, flag, spawn);
  639.             this.arenaList.add(newArena);
  640.            
  641.             return true;
  642.           }
  643.           if (args[2].equalsIgnoreCase("wylacz"))
  644.           {
  645.             config.set(args[1].toLowerCase() + ".enabled", Boolean.valueOf(false));
  646.             config.options().copyDefaults(true);
  647.             saveConfig();
  648.            
  649.             player.sendMessage(ChatColor.RED + "Arena zostala wylaczona!");
  650.             for (int i = 0; i < this.arenaList.size(); i++) {
  651.               if (((Arena)this.arenaList.get(i)).getName().equalsIgnoreCase(args[1]))
  652.               {
  653.                 ((Arena)this.arenaList.get(i)).restart(ChatColor.RED + "Arena zostala zatrzymana!");
  654.                 ((Arena)this.arenaList.get(i)).setMode(Arena.GameMode.DISABLED);
  655.                 return true;
  656.               }
  657.             }
  658.             return true;
  659.           }
  660.         }
  661.         player.sendMessage(ChatColor.RED + "Wpisz /castle dodaj <nazwa> - dodaje nowa mape");
  662.         player.sendMessage(ChatColor.RED + "Wpisz /castle spawn - ustaw spawn");
  663.         player.sendMessage(ChatColor.RED + "Wpisz /castle ustaw <nazwa> atakujacy - ustawia lokacje red");
  664.         player.sendMessage(ChatColor.RED + "Wpisz /castle ustaw <nazwa> obroncy - ustawia lokacje blue");
  665.         player.sendMessage(ChatColor.RED + "Wpisz /castle ustaw <nazwa> flag - ustawia lokacje flagi");
  666.         player.sendMessage(ChatColor.RED + "Wpisz /castle ustaw <nazwa> cuboid - ustawia srodek cuboida");
  667.         player.sendMessage(ChatColor.RED + "Wpisz /castle ustaw <nazwa> tostart - ustawia liczbe osob");
  668.         player.sendMessage(ChatColor.RED + "Wpisz /castle ustaw <nazwa> votestart - ustawia min liczbe osob do startu");
  669.         player.sendMessage(ChatColor.RED + "Wpisz /castle ustaw <nazwa> time - ustawia czas gry");
  670.         player.sendMessage(ChatColor.RED + "Wpisz /castle ustaw <nazwa> cuboid - ustawia srodek cuboida");
  671.         player.sendMessage(ChatColor.RED + "Wpisz /castle ustaw <nazwa> update - tworzy kopie mapy do regeneracji");
  672.         player.sendMessage(ChatColor.RED + "Wpisz /castle ustaw <nazwa> wlacz - wlacza mape");
  673.         player.sendMessage(ChatColor.RED + "Wpisz /castle ustaw <nazwa> wylacz - wylacza mape");
  674.       }
  675.       player.sendMessage(ChatColor.RED + "Wpisz /castle dolacz - dolacz do losowej mapy");
  676.       player.sendMessage(ChatColor.RED + "Wpisz /castle dolacz <mapa> - dolacz do wybranej mapy");
  677.       player.sendMessage(ChatColor.RED + "Wpisz /castle opusc - wypisz sie z gry");
  678.       player.sendMessage(ChatColor.RED + "Wpisz /castle team <red/blue> - aby zmienic team");
  679.       player.sendMessage(ChatColor.RED + "Wpisz /castle eq <kox/potion> - zaglosuj na zestaw");
  680.       player.sendMessage(ChatColor.RED + "Wpisz /castle start - zaglosuj na start");
  681.       return true;
  682.     }
  683.     return true;
  684.   }
  685. }
  686.