Advertisement
Panakotta00

main.java

Sep 5th, 2015
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 18.34 KB | None | 0 0
  1. package de.Panakotta00.CrashGames;
  2.  
  3. import de.Panakotta00.CrashGames.ArenaManager;
  4. import de.Panakotta00.CrashGames.Event.Events;
  5. import de.Panakotta00.CrashGames.Game.GamePlay;
  6.  
  7. import java.util.ArrayList;
  8. import java.util.HashMap;
  9. import java.util.List;
  10. import java.util.Map;
  11.  
  12. import org.bukkit.Location;
  13. import org.bukkit.command.Command;
  14. import org.bukkit.command.CommandSender;
  15. import org.bukkit.configuration.file.FileConfiguration;
  16. import org.bukkit.entity.Player;
  17. import org.bukkit.event.Listener;
  18. import org.bukkit.plugin.Plugin;
  19. import org.bukkit.plugin.java.JavaPlugin;
  20.  
  21. public class main extends JavaPlugin {
  22.    
  23.     public static HashMap<String, GamePlay> arenas = new HashMap<String, GamePlay>();
  24.     public static HashMap<Player, String> inGame = new HashMap<Player, String>();
  25.     public static List<String> waiting_players = new ArrayList<String>();
  26.     public static List<String> room_players = new ArrayList<String>();
  27.     public static List<String> vote_players = new ArrayList<String>();
  28.     public static Location xyz;
  29.     public static Location x2y2z2;
  30.     public FileConfiguration cfg;
  31.     public Player p;
  32.    
  33.     ArenaManager arenaManager;
  34.  
  35.     public void onEnable() {
  36.         loadConfig();
  37.         arenaManager = new ArenaManager(this);
  38.         getServer().getPluginManager().registerEvents((Listener)new Events(), (Plugin)this);
  39.         System.out.println("[CrashGames] GrashGames wurde gestartet!");
  40.     }
  41.  
  42.     public void onDisable() {
  43.         System.out.println("[CrashGames] GrashGames wurde gestopt!");
  44.     }
  45.  
  46.     public void loadConfig() {
  47.         this.getConfig().addDefault("Arenas.null", null);
  48.         this.cfg = this.getConfig();
  49.         this.cfg.options().copyDefaults(true);
  50.         this.saveConfig();
  51.     }
  52.    
  53.     public boolean onCommand(CommandSender sender, Command cmd, String cmdLabel, String[] args) {
  54.         this.p = (Player)sender;
  55.         if (cmd.getName().equalsIgnoreCase("cg")) {
  56.             if (this.p.hasPermission("CrashGames.cg")) {
  57.                 if (args.length >= 1) {
  58.                     if (args[0].equalsIgnoreCase("load")) {
  59.                         this.loadConfig();
  60.                         this.p.sendMessage("Config hase ben load!");
  61.                     } else if (args[0].equalsIgnoreCase("create")) {
  62.                         if (args.length == 3) {
  63.                             arenaManager.createArena(args[1].intern(), args[2].intern());
  64.                         } else {
  65.                             this.p.sendMessage("Syntax: /cg create <ArenaName> <Player>");
  66.                         }
  67.                     } else if (args[0].equalsIgnoreCase("remove")) {
  68.                         if (args.length == 2) {
  69.                             this.arenaManager.removeArena(args[1]);
  70.                         } else {
  71.                             this.p.sendMessage("Syntax: /cg remove <ArenaName>");
  72.                         }
  73.                        
  74.                     // Config
  75.                     } else if (args[0].equalsIgnoreCase("edit")) {
  76.                         if (args.length >= 3) {
  77.                             if (cfg.getConfigurationSection("Arenas").contains(args[1])) {
  78.                                 if (args[2].equalsIgnoreCase("playervalue")) {
  79.                                     if (args.length == 4) {
  80.                                         arenaManager.changePlayerValue(args[1].intern(), args[2].intern());
  81.                                     } else {
  82.                                         p.sendMessage("Syntax: /cg edit <arenaname> playervalue <playervalue>");
  83.                                     }
  84.                                 } else if (args[2].equalsIgnoreCase("waitingspawn")) {
  85.                                     arenaManager.changeWaitingroomSpawn(args[1].intern(), p.getLocation());
  86.                                
  87.                                 // JumpAndRun
  88.                                
  89.                                 } else if (args[2].equalsIgnoreCase("JumpAndRun")) {
  90.                                     if (args.length == 4) {
  91.                                         if (args[3].equalsIgnoreCase("spawn")) {
  92.                                             arenaManager.jumpAndRunSetSpawn(args[1], p.getLocation());
  93.                                         } else if (args[3].equalsIgnoreCase("losezone")) {
  94.                                             if (xyz != null && x2y2z2 != null) {
  95.                                                 arenaManager.jumpAndRunSetLosezone(args[1], xyz, x2y2z2);
  96.                                             } else {
  97.                                                 p.sendMessage("You must mark a Area with Paper!");
  98.                                             }
  99.                                         } else if (args[3].equalsIgnoreCase("winzone")) {
  100.                                             if (xyz != null && x2y2z2 != null) {
  101.                                                 arenaManager.jumpAndRunSetWinzone(args[1], xyz, x2y2z2);
  102.                                             } else {
  103.                                                 p.sendMessage("You must mark a Area with Paper!");
  104.                                             }
  105.                                         } else if (args[3].equalsIgnoreCase("checkpoint")) {
  106.                                             if (xyz != null && x2y2z2 != null) {
  107.                                                 arenaManager.jumpAndRunSetCheckpoint(args[1], xyz, x2y2z2);
  108.                                             } else {
  109.                                                 p.sendMessage("You must mark a Area with Paper!");
  110.                                             }
  111.                                         } else {
  112.                                             p.sendMessage("Syntax: /cg edit <arenaname> JumpAndRun <edit>");
  113.                                         }
  114.                                     } else {
  115.                                         p.sendMessage("Syntax: /cg edit <arenaname> JumpAndRun <edit>");
  116.                                     }
  117.                                
  118.                                 // MobArena
  119.                                
  120.                                 } else if (args[2].equalsIgnoreCase("MobArena")) {
  121.                                     if (args.length >= 4) {
  122.                                         if (args[3].equalsIgnoreCase("spawn")) {
  123.                                             if (args.length == 5) {
  124.                                                 arenaManager.mobArenaSetSpawn(args[1], args[4], p.getLocation());
  125.                                             } else {
  126.                                                 p.sendMessage("Sytax: /cg edit <arenaname> MobArena spawn <player>");
  127.                                             }
  128.                                         } else if (args[3].equalsIgnoreCase("mobspawn")) {
  129.                                             if (args.length == 5) {
  130.                                                 if (xyz != null && x2y2z2 != null) {
  131.                                                     arenaManager.mobArenaSetMobspawn(args[1], args[4], xyz, x2y2z2);
  132.                                                 } else {
  133.                                                     p.sendMessage("You must mark a Area with Paper!");
  134.                                                 }
  135.                                             } else {
  136.                                                 p.sendMessage("Syntax: /cg edit <arenaname> MobArena mobspawn <player>");
  137.                                             }
  138.                                         } else {
  139.                                             p.sendMessage("Sytax: /cg edit <arenaname> MobArena <edit>");
  140.                                         }
  141.                                     } else {
  142.                                         p.sendMessage("Sytax: /cg edit <arenaname> MobArena <edit>");
  143.                                     }
  144.                                
  145.                                 // PvP
  146.                                
  147.                                 } else if (args[2].equalsIgnoreCase("pvpspawn")) {
  148.                                     if (args.length == 4) {
  149.                                         arenaManager.PvPSetSpawn(args[1], args[3], p.getLocation());
  150.                                     } else {
  151.                                         p.sendMessage("Syntax: /cg edit <arenaname> pvpspawn <player>");
  152.                                     }
  153.                                
  154.                                 // SpeedRun
  155.                                
  156.                                 } else if (args[2].equalsIgnoreCase("speedrun")) {
  157.                                     if (args.length >= 4) {
  158.                                         if (args[3].equalsIgnoreCase("spawn")) {
  159.                                             if (args.length == 5) {
  160.                                                 arenaManager.speedRunSetSpawn(args[1], args[4], p.getLocation());
  161.                                             } else {
  162.                                                 p.sendMessage("Syntax: /cg edit <arenaname> speedrun spawn <player>");
  163.                                             }
  164.                                         } else if (args[3].equalsIgnoreCase("time")) {
  165.                                             if (args.length == 6) {
  166.                                                 arenaManager.speedRunSetTime(args[1], args[4], args[5]);
  167.                                             } else {
  168.                                                 p.sendMessage("Syntax: /cg edit <arenaname> speedrun time <player> <time>");
  169.                                             }
  170.                                         } else if (args[3].equalsIgnoreCase("okzone")) {
  171.                                             if (args.length == 5) {
  172.                                                 if (xyz != null && x2y2z2 != null) {
  173.                                                     arenaManager.speedRunSetOkzone(args[1], args[4], xyz, x2y2z2);
  174.                                                 } else {
  175.                                                     p.sendMessage("You must mark a Area with Paper!");
  176.                                                 }
  177.                                             } else {
  178.                                                 p.sendMessage("Syntax: /cg edit <arenaname> speedrun okzone <player>");
  179.                                             }
  180.                                         } else if (args[3].equalsIgnoreCase("winzone")) {
  181.                                             if (args.length == 5) {
  182.                                                 if (xyz != null && x2y2z2 != null) {
  183.                                                     arenaManager.speedRunSetWinzone(args[1], args[4], xyz, x2y2z2);
  184.                                                 } else {
  185.                                                     p.sendMessage("You must mark a Area with Paper!");
  186.                                                 }
  187.                                             } else {
  188.                                                 p.sendMessage("Syntax: /cg edit <arenaname> speedrun winzone <player>");
  189.                                             }
  190.                                         } else {
  191.                                             p.sendMessage("Syntax: /cg edit <arenaname> speedrun <edit>");
  192.                                         }
  193.                                     } else {
  194.                                         p.sendMessage("Syntax: /cg edit <arenaname> speedrun <edit>");
  195.                                     }
  196.                                
  197.                                 // 4Arena
  198.                                
  199.                                 } else if (args[2].equalsIgnoreCase("4arena")) {
  200.                                     if (args.length >= 4) {
  201.                                         if (args[3].equalsIgnoreCase("spawn")) {
  202.                                             if (args.length == 5) {
  203.                                                 arenaManager.ArenaSetSpawn(args[1], args[4], p.getLocation());
  204.                                             } else {
  205.                                                 p.sendMessage("Syntax: /cg edit <arenaname> 4arena spawn <player>");
  206.                                             }
  207.                                         } else if (args[3].equalsIgnoreCase("chest")) {
  208.                                             if (args.length == 5) {
  209.                                                 if (xyz != null) {
  210.                                                     arenaManager.ArenaSetSpawn(args[1], args[4], xyz);
  211.                                                 } else {
  212.                                                     p.sendMessage("Set 1.Mark(With Paper R-Click) on the Chest!");
  213.                                                 }
  214.                                             } else {
  215.                                                 p.sendMessage("Syntax: /cg edit <arenaname> 4arena chest <player>");
  216.                                             }
  217.                                         } else {
  218.                                             p.sendMessage("Syntax: /cg edit <arenaname> 4arena <edit>");
  219.                                         }
  220.                                     } else {
  221.                                         p.sendMessage("Syntax: /cg edit <arenaname> 4arena <edit>");
  222.                                     }
  223.                                
  224.                                 // LongShoot
  225.                                
  226.                                 } else if (args[2].equalsIgnoreCase("longshoot")) {
  227.                                     if (args.length >= 4) {
  228.                                         if (args[3].equalsIgnoreCase("spawn")) {
  229.                                             if (args.length == 5) {
  230.                                                 arenaManager.longShootSetSpawn(args[1], args[4], p.getLocation());
  231.                                             } else {
  232.                                                 p.sendMessage("Syntax: /cg edit <arenaname> longshoot spawn <player>");
  233.                                             }
  234.                                         } else if (args[3].equalsIgnoreCase("winzone")) {
  235.                                             if (args.length == 5) {
  236.                                                 if (xyz != null && x2y2z2 != null) {
  237.                                                     arenaManager.longShootSetWinzone(args[1], args[4], xyz, x2y2z2);
  238.                                                 } else {
  239.                                                     p.sendMessage("You must mark a Area with Paper!");
  240.                                                 }
  241.                                             } else {
  242.                                                 p.sendMessage("Syntax: /cg edit <arenaname> longshoot winzone <player>");
  243.                                             }
  244.                                         } else if (args[3].equalsIgnoreCase("1fail")) {
  245.                                             if (args.length == 5) {
  246.                                                 if (xyz != null && x2y2z2 != null) {
  247.                                                     arenaManager.longShootSet1Fail(args[1], args[4], xyz, x2y2z2);
  248.                                                 } else {
  249.                                                     p.sendMessage("You must mark a Area with Paper!");
  250.                                                 }
  251.                                             } else {
  252.                                                 p.sendMessage("Syntax: /cg edit <arenaname> longshoot 1fail <player>");
  253.                                             }
  254.                                         } else if (args[3].equalsIgnoreCase("2fail")) {
  255.                                             if (args.length == 5) {
  256.                                                 if (xyz != null && x2y2z2 != null) {
  257.                                                     arenaManager.longShootSet2Fail(args[1], args[4], xyz, x2y2z2);
  258.                                                 } else {
  259.                                                     p.sendMessage("You must mark a Area with Paper!");
  260.                                                 }
  261.                                             } else {
  262.                                                 p.sendMessage("Syntax: /cg edit <arenaname> longshoot 2fail <player>");
  263.                                             }
  264.                                         } else {
  265.                                             p.sendMessage("Syntax: /cg edit <arenaname> longshoot <edit>");
  266.                                         }
  267.                                     } else {
  268.                                         p.sendMessage("Syntax: /cg edit <arenaname> longshoot <edit>");
  269.                                     }
  270.                                 } else {
  271.                                     p.sendMessage("Syntax: /cg edit <arenaname> <edit>");
  272.                                 }
  273.                             } else {
  274.                                 p.sendMessage("Arena not in use!");
  275.                             }
  276.                         } else {
  277.                             p.sendMessage("Syntax: /cg edit <arenaname> <edit>");
  278.                         }
  279.                     } else if (args[0].equalsIgnoreCase("waittest")) {
  280.                         waiting_players.add(args[1]);
  281.                     } else if (args[0].equalsIgnoreCase("vote")) {
  282.                         if (room_players.contains(this.p.getName())) {
  283.                             vote_players.add(this.p.getName());
  284.                         } else {
  285.                             this.p.sendMessage("You not in a Waitingroom!");
  286.                         }
  287.                     } else if (args[0].equalsIgnoreCase("join")) {
  288.                         if (args.length == 2) {
  289.                             if (cfg.getConfigurationSection("Arenas").contains(args[1])) {
  290.                                 if (!inGame.containsKey(this.p.getName())) {
  291.                                     int maxplayers = cfg.getInt("Arenas." + args[1] + ".playervalue");
  292.                                     int playervalue = 0;
  293.                                     for (Map.Entry<Player, String> entry : inGame.entrySet()) {
  294.                                         if (!entry.getValue().equals(args[1])) continue;
  295.                                         playervalue = playervalue + 1;
  296.                                     }
  297.                                     if (playervalue == 0) {
  298.                                         inGame.put(p, args[1]);
  299.                                         arenas.get(args[1]).join(p);
  300.                                     } else if (playervalue == maxplayers) {
  301.                                         p.sendMessage("The Arena is full!");
  302.                                     } else {
  303.                                         inGame.put(p, args[1]);
  304.                                     }
  305.                                 } else {
  306.                                     this.p.sendMessage("You are in a Arena!");
  307.                                 }
  308.                             } else {
  309.                                 p.sendMessage("Arena not in use!");
  310.                             }
  311.                         } else {
  312.                             p.sendMessage("Syntax: /cg join <arenaname>");
  313.                         }
  314.                     } else if (args[0].equalsIgnoreCase("leave")) {
  315.                         if (inGame.containsKey(this.p.getName())) {
  316.                             main.stop(inGame.get(this.p.getName()));
  317.                             System.out.println("CrashGames Arena'" + inGame.get(this.p.getName()) + "' Stops while " + this.p.getName() + " has left!");
  318.                         } else {
  319.                             this.p.sendMessage("You are not in a Arena!");
  320.                         }
  321.                     } else if (args[0].equalsIgnoreCase("stop")) {
  322.                         if (args.length == 2) {
  323.                             if (inGame.containsValue(args[1])) {
  324.                                 main.stop(args[1]);
  325.                                 p.sendMessage("CrashGames Arena '" + inGame.get(this.p.getName()) + "' Stops!");
  326.                             } else {
  327.                                 p.sendMessage("Arena is not in game!");
  328.                             }
  329.                         } else {
  330.                             System.out.println("Syntax: /cg stop <arenaname>");
  331.                         }
  332.                     } else {
  333.                         this.p.sendMessage("/cg help for help");
  334.                     }
  335.                 } else {
  336.                     this.p.sendMessage("/cg help for help");
  337.                 }
  338.             } else {
  339.                 this.p.sendMessage("You have not the Premission for that!");
  340.             }
  341.         }
  342.         return true;
  343.     }
  344.    
  345.     public static void stop(String arena) {
  346.         List<String> players = new ArrayList<String>();
  347.         for (Map.Entry<Player, String> entry : inGame.entrySet()) {
  348.             if (!entry.getValue().equals(arena)) continue;
  349.             players.add(entry.getKey().getName());
  350.         }
  351.         waiting_players.remove(players);
  352.         room_players.remove(players);
  353.         vote_players.remove(players);
  354.         for (Map.Entry<Player, String> entry : inGame.entrySet()) {
  355.             if (!entry.getValue().equals(arena)) continue;
  356.             inGame.remove(entry.getKey());
  357.         }
  358.         arenas.remove(arena);
  359.     }
  360.    
  361.     public List<Player> getAllPlayers(String arenaname) {
  362.         List<Player> players = new ArrayList<Player>();
  363.         for (Map.Entry<Player, String> entry : inGame.entrySet()) {
  364.             if (!entry.getValue().equals(arenaname)) continue;
  365.             players.add(entry.getKey());
  366.         }
  367.        
  368.         return players;
  369.     }
  370. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement