Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.william_burns.anAPI.Arcade;
- import me.william_burns.anAPI.Arcade.Events.UpdateEvent;
- import me.william_burns.anAPI.Arcade.GameType.Game;
- import me.william_burns.anAPI.Arcade.Map.GameMap;
- import me.william_burns.anAPI.Arcade.Map.MapManager;
- import me.william_burns.anAPI.Arcade.Teams.GameTeam;
- import me.william_burns.anAPI.Shop.Currency;
- import me.william_burns.anAPI.Utils.BungeeStuff;
- import me.william_burns.anAPI.anAPI;
- import org.bukkit.Bukkit;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import java.util.HashMap;
- /**
- * Created by william_burns.
- * All the code and any API's associated with it
- * are not to be used anywhere else without written
- * consent of William Burns. 2014.
- * 17/12/2014
- */
- public class GameManager implements Listener {
- private static final GameManager manager = new GameManager();
- private Game game;
- private GameMap map;
- public boolean forceStarted = false;
- private GameManager() {}
- public static void startUpdateEvents(){
- Bukkit.getScheduler().scheduleSyncRepeatingTask(anAPI.getPlugin(), new Runnable() {
- @Override
- public void run() {
- Bukkit.getPluginManager().callEvent(new UpdateEvent());
- }
- }, 0L, 20L);
- }
- public void initializeGame(Game game, GameMap map){
- this.game = game;
- this.map = map;
- startUpdateEvents();
- MapManager.getManager().setupMap(map);
- }
- public static GameManager getManager(){
- return manager;
- }
- public Game getGame() {
- return game;
- }
- public GameMap getMap() {
- return map;
- }
- public void displayStartMessage(int time){
- Bukkit.broadcastMessage("§3§m-----------------------------------------------------");
- Bukkit.broadcastMessage(" §b§l" + game.getName() + " §bis starting in " + time + " seconds!");
- Bukkit.broadcastMessage(" ");
- for (String line : game.getDescription()){
- Bukkit.broadcastMessage(" §d» " + line);
- }
- Bukkit.broadcastMessage(" ");
- Bukkit.broadcastMessage(" §aYou are about to play the map §l" + map.getName() + " §aby " + map.getAuthor() + ".");
- Bukkit.broadcastMessage("§3§m-----------------------------------------------------");
- return;
- }
- public void displayWinner(Player[] positions){
- Bukkit.broadcastMessage("§3§m-----------------------------------------------------");
- Bukkit.broadcastMessage(" §b§l" + game.getName() + " §bhas ended!");
- Bukkit.broadcastMessage(" ");
- if (positions.length >= 1){
- Bukkit.broadcastMessage(" §c§l1st Place - " + positions[0].getDisplayName());
- }
- if (positions.length >= 2){
- Bukkit.broadcastMessage(" §6§l2nd Place - " + positions[1].getDisplayName());
- }
- if (positions.length >= 3){
- Bukkit.broadcastMessage(" §e§l3rd Place - " + positions[2].getDisplayName());
- }
- Bukkit.broadcastMessage(" ");
- Bukkit.broadcastMessage(" §aYou have just played the map §l" + map.getName() + " §aby " + map.getAuthor() + ".");
- Bukkit.broadcastMessage("§3§m-----------------------------------------------------");
- return;
- }
- public void displayWinner(String[] displayNamePositions){
- Bukkit.broadcastMessage("§3§m-----------------------------------------------------");
- Bukkit.broadcastMessage(" §b§l" + game.getName() + " §bhas ended!");
- Bukkit.broadcastMessage(" ");
- if (displayNamePositions.length >= 1){
- Bukkit.broadcastMessage(" §c§l1st Place - " + displayNamePositions[0]);
- }
- if (displayNamePositions.length >= 2){
- Bukkit.broadcastMessage(" §6§l2nd Place - " + displayNamePositions[1]);
- }
- if (displayNamePositions.length >= 3){
- Bukkit.broadcastMessage(" §e§l3rd Place - " + displayNamePositions[2]);
- }
- Bukkit.broadcastMessage(" ");
- Bukkit.broadcastMessage(" §aYou have just played the map §l" + map.getName() + " §aby " + map.getAuthor() + ".");
- Bukkit.broadcastMessage("§3§m-----------------------------------------------------");
- return;
- }
- public void displayWinner(GameTeam team, String customLine){
- Bukkit.broadcastMessage("§3§m-----------------------------------------------------");
- Bukkit.broadcastMessage(" §b§l" + game.getName() + " §bhas Ended!");
- Bukkit.broadcastMessage(" ");
- if (team != null) {
- Bukkit.broadcastMessage(" " + team.getColor() + "§l" + team.getName() + " §bhas won the game.");
- }else{
- Bukkit.broadcastMessage(" §5§lNOBODY WON! §D§LIT'S A DRAW!");
- }
- if (customLine != null){
- Bukkit.broadcastMessage(" §e" + customLine);
- }
- Bukkit.broadcastMessage(" ");
- Bukkit.broadcastMessage(" §aYou have just played the map §l" + map.getName() + " §aby " + map.getAuthor() + ".");
- Bukkit.broadcastMessage("§3§m-----------------------------------------------------");
- return;
- }
- public void displayRewards(Player p, HashMap<String, Integer> map){
- p.sendMessage("§3§m-----------------------------------------------------");
- p.sendMessage(" §bYour §lrewards §bare:");
- p.sendMessage(" ");
- for (String s : map.keySet()){
- p.sendMessage(" §e+" + map.get(s) + " Gems - §2" + s);
- }
- p.sendMessage(" ");
- p.sendMessage(" §9Your new balance is §a§l" + Currency.getGems(p) + " Gems§9.");
- p.sendMessage("§3§m-----------------------------------------------------");
- }
- public void beginCountdownSequence(){
- if (game == null) return;
- if (game.getState().equals(GameState.WAITING)){
- game.setState(GameState.STARTING);
- }
- }
- public void startWarmup(){
- game.setState(GameState.WARMUP);
- game.getStartGameExecutor().startWarmup();
- displayStartMessage(5);
- }
- public void startGame(){
- game.setState(GameState.INGAME);
- game.getStartGameExecutor().startGame();
- }
- public void endGame(){
- game.setState(GameState.ENDED);
- game.getEndGameExecutor().endGame();
- Bukkit.broadcastMessage(anAPI.PREFIX + "The server is restarting in 10 seconds.");
- Bukkit.getScheduler().scheduleSyncDelayedTask(anAPI.getPlugin(), new Runnable() {
- @Override
- public void run() {
- for (Player p : Bukkit.getOnlinePlayers()){
- BungeeStuff.sendToServer(p, "hub");
- }
- MapManager.getManager().resetMap();
- Bukkit.reload();
- }
- }, 200L);
- }
- @EventHandler
- public void Countdown(UpdateEvent e){
- if (game == null) return;
- if (game.getState().equals(GameState.STARTING) || game.getState().equals(GameState.WARMUP)){
- if (forceStarted == false){
- if (Bukkit.getOnlinePlayers().size() < game.getMinPlayers()){
- int needed = (game.getMinPlayers() - Bukkit.getOnlinePlayers().size());
- Bukkit.broadcastMessage(anAPI.PREFIX + "§cCountdown aborted: §e" + needed + " §7player(s) needed.");
- game.setState(GameState.WAITING);
- return;
- }
- }
- if (game.getTicks() == 5){
- startWarmup();
- }
- if (game.getTicks() == 0){
- Bukkit.broadcastMessage(anAPI.PREFIX + "§aThe game has begun!");
- startGame();
- return;
- }
- if (game.getTicks() % 15 == 0){
- Bukkit.broadcastMessage(anAPI.PREFIX + "§7Game starts in §e" + game.getTicks() + "s§7.");
- }
- game.setTicks(game.getTicks() - 1);
- return;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement