Advertisement
Guest User

Untitled

a guest
Apr 19th, 2015
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.09 KB | None | 0 0
  1. package me.william_burns.anAPI.Arcade;
  2.  
  3. import me.william_burns.anAPI.Arcade.Events.UpdateEvent;
  4. import me.william_burns.anAPI.Arcade.GameType.Game;
  5. import me.william_burns.anAPI.Arcade.Map.GameMap;
  6. import me.william_burns.anAPI.Arcade.Map.MapManager;
  7. import me.william_burns.anAPI.Arcade.Teams.GameTeam;
  8. import me.william_burns.anAPI.Shop.Currency;
  9. import me.william_burns.anAPI.Utils.BungeeStuff;
  10. import me.william_burns.anAPI.anAPI;
  11. import org.bukkit.Bukkit;
  12. import org.bukkit.entity.Player;
  13. import org.bukkit.event.EventHandler;
  14. import org.bukkit.event.Listener;
  15.  
  16. import java.util.HashMap;
  17.  
  18. /**
  19.  * Created by william_burns.
  20.  * All the code and any API's associated with it
  21.  * are not to be used anywhere else without written
  22.  * consent of William Burns. 2014.
  23.  * 17/12/2014
  24.  */
  25. public class GameManager implements Listener {
  26.  
  27.     private static final GameManager manager = new GameManager();
  28.  
  29.     private Game game;
  30.     private GameMap map;
  31.  
  32.     public boolean forceStarted = false;
  33.  
  34.     private GameManager() {}
  35.  
  36.     public static void startUpdateEvents(){
  37.         Bukkit.getScheduler().scheduleSyncRepeatingTask(anAPI.getPlugin(), new Runnable() {
  38.             @Override
  39.             public void run() {
  40.                 Bukkit.getPluginManager().callEvent(new UpdateEvent());
  41.             }
  42.         }, 0L, 20L);
  43.     }
  44.  
  45.     public void initializeGame(Game game, GameMap map){
  46.         this.game = game;
  47.         this.map = map;
  48.         startUpdateEvents();
  49.         MapManager.getManager().setupMap(map);
  50.     }
  51.  
  52.     public static GameManager getManager(){
  53.         return manager;
  54.     }
  55.  
  56.     public Game getGame() {
  57.         return game;
  58.     }
  59.  
  60.     public GameMap getMap() {
  61.         return map;
  62.     }
  63.  
  64.     public void displayStartMessage(int time){
  65.         Bukkit.broadcastMessage("§3§m-----------------------------------------------------");
  66.         Bukkit.broadcastMessage(" §b§l" + game.getName() + " §bis starting in " + time + " seconds!");
  67.         Bukkit.broadcastMessage(" ");
  68.         for (String line : game.getDescription()){
  69.             Bukkit.broadcastMessage(" §d» " + line);
  70.         }
  71.         Bukkit.broadcastMessage(" ");
  72.         Bukkit.broadcastMessage(" §aYou are about to play the map §l" + map.getName() + " §aby " + map.getAuthor() + ".");
  73.         Bukkit.broadcastMessage("§3§m-----------------------------------------------------");
  74.         return;
  75.     }
  76.  
  77.     public void displayWinner(Player[] positions){
  78.         Bukkit.broadcastMessage("§3§m-----------------------------------------------------");
  79.         Bukkit.broadcastMessage(" §b§l" + game.getName() + " §bhas ended!");
  80.         Bukkit.broadcastMessage(" ");
  81.         if (positions.length >= 1){
  82.             Bukkit.broadcastMessage(" §c§l1st Place - " + positions[0].getDisplayName());
  83.         }
  84.         if (positions.length >= 2){
  85.             Bukkit.broadcastMessage(" §6§l2nd Place - " + positions[1].getDisplayName());
  86.         }
  87.         if (positions.length >= 3){
  88.             Bukkit.broadcastMessage(" §e§l3rd Place - " + positions[2].getDisplayName());
  89.         }
  90.         Bukkit.broadcastMessage(" ");
  91.         Bukkit.broadcastMessage(" §aYou have just played the map §l" + map.getName() + " §aby " + map.getAuthor() + ".");
  92.         Bukkit.broadcastMessage("§3§m-----------------------------------------------------");
  93.         return;
  94.     }
  95.  
  96.     public void displayWinner(String[] displayNamePositions){
  97.         Bukkit.broadcastMessage("§3§m-----------------------------------------------------");
  98.         Bukkit.broadcastMessage(" §b§l" + game.getName() + " §bhas ended!");
  99.         Bukkit.broadcastMessage(" ");
  100.         if (displayNamePositions.length >= 1){
  101.             Bukkit.broadcastMessage(" §c§l1st Place - " + displayNamePositions[0]);
  102.         }
  103.         if (displayNamePositions.length >= 2){
  104.             Bukkit.broadcastMessage(" §6§l2nd Place - " + displayNamePositions[1]);
  105.         }
  106.         if (displayNamePositions.length >= 3){
  107.             Bukkit.broadcastMessage(" §e§l3rd Place - " + displayNamePositions[2]);
  108.         }
  109.         Bukkit.broadcastMessage(" ");
  110.         Bukkit.broadcastMessage(" §aYou have just played the map §l" + map.getName() + " §aby " + map.getAuthor() + ".");
  111.         Bukkit.broadcastMessage("§3§m-----------------------------------------------------");
  112.         return;
  113.     }
  114.  
  115.     public void displayWinner(GameTeam team, String customLine){
  116.         Bukkit.broadcastMessage("§3§m-----------------------------------------------------");
  117.         Bukkit.broadcastMessage(" §b§l" + game.getName() + " §bhas Ended!");
  118.         Bukkit.broadcastMessage(" ");
  119.         if (team != null) {
  120.             Bukkit.broadcastMessage(" " + team.getColor() + "§l" + team.getName() + " §bhas won the game.");
  121.         }else{
  122.             Bukkit.broadcastMessage(" §5§lNOBODY WON! §D§LIT'S A DRAW!");
  123.         }
  124.         if (customLine != null){
  125.             Bukkit.broadcastMessage(" §e" + customLine);
  126.         }
  127.         Bukkit.broadcastMessage(" ");
  128.         Bukkit.broadcastMessage(" §aYou have just played the map §l" + map.getName() + " §aby " + map.getAuthor() + ".");
  129.         Bukkit.broadcastMessage("§3§m-----------------------------------------------------");
  130.         return;
  131.     }
  132.  
  133.     public void displayRewards(Player p, HashMap<String, Integer> map){
  134.         p.sendMessage("§3§m-----------------------------------------------------");
  135.         p.sendMessage(" §bYour §lrewards §bare:");
  136.         p.sendMessage(" ");
  137.         for (String s : map.keySet()){
  138.             p.sendMessage(" §e+" + map.get(s) + " Gems - §2" + s);
  139.         }
  140.         p.sendMessage(" ");
  141.         p.sendMessage(" §9Your new balance is §a§l" + Currency.getGems(p) + " Gems§9.");
  142.         p.sendMessage("§3§m-----------------------------------------------------");
  143.     }
  144.  
  145.     public void beginCountdownSequence(){
  146.         if (game == null) return;
  147.         if (game.getState().equals(GameState.WAITING)){
  148.             game.setState(GameState.STARTING);
  149.         }
  150.     }
  151.  
  152.     public void startWarmup(){
  153.         game.setState(GameState.WARMUP);
  154.         game.getStartGameExecutor().startWarmup();
  155.         displayStartMessage(5);
  156.     }
  157.  
  158.     public void startGame(){
  159.         game.setState(GameState.INGAME);
  160.         game.getStartGameExecutor().startGame();
  161.     }
  162.  
  163.     public void endGame(){
  164.         game.setState(GameState.ENDED);
  165.         game.getEndGameExecutor().endGame();
  166.         Bukkit.broadcastMessage(anAPI.PREFIX + "The server is restarting in 10 seconds.");
  167.         Bukkit.getScheduler().scheduleSyncDelayedTask(anAPI.getPlugin(), new Runnable() {
  168.             @Override
  169.             public void run() {
  170.                 for (Player p : Bukkit.getOnlinePlayers()){
  171.                     BungeeStuff.sendToServer(p, "hub");
  172.                 }
  173.                 MapManager.getManager().resetMap();
  174.                 Bukkit.reload();
  175.             }
  176.         }, 200L);
  177.     }
  178.  
  179.     @EventHandler
  180.     public void Countdown(UpdateEvent e){
  181.         if (game == null) return;
  182.         if (game.getState().equals(GameState.STARTING) || game.getState().equals(GameState.WARMUP)){
  183.             if (forceStarted == false){
  184.                 if (Bukkit.getOnlinePlayers().size() < game.getMinPlayers()){
  185.                     int needed = (game.getMinPlayers() - Bukkit.getOnlinePlayers().size());
  186.                     Bukkit.broadcastMessage(anAPI.PREFIX + "§cCountdown aborted: §e" + needed + " §7player(s) needed.");
  187.                     game.setState(GameState.WAITING);
  188.                     return;
  189.                 }
  190.             }
  191.  
  192.             if (game.getTicks() == 5){
  193.                 startWarmup();
  194.             }
  195.  
  196.             if (game.getTicks() == 0){
  197.                 Bukkit.broadcastMessage(anAPI.PREFIX + "§aThe game has begun!");
  198.                 startGame();
  199.                 return;
  200.             }
  201.  
  202.             if (game.getTicks() % 15 == 0){
  203.                 Bukkit.broadcastMessage(anAPI.PREFIX + "§7Game starts in §e" + game.getTicks() + "s§7.");
  204.             }
  205.  
  206.             game.setTicks(game.getTicks() - 1);
  207.             return;
  208.         }
  209.     }
  210.  
  211.  
  212. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement