Advertisement
oZZYoWo

Untitled

Oct 13th, 2019
599
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.28 KB | None | 0 0
  1. public class GameTask extends BukkitRunnable {
  2.  
  3.     @Override
  4.     public void run() {
  5.         Game game = UHC.getInstance().getGame();
  6.         if (!game.isPurchased()) this.cancel();
  7.         if (!UHC.getInstance().getTwitterManager().isVerified()) this.cancel();
  8.  
  9.         FileConfig fileConfig = UHC.getInstance().getMessagesConfig();
  10.         ConfigCursor configCursor = new ConfigCursor(fileConfig, "game");
  11.  
  12.         WorldManager worldManager = UHC.getInstance().getWorldManager();
  13.         game.setGameTime(game.getGameTime() + 1);
  14.  
  15.         UHCPlayer.getPlayers().values().forEach(uhcPlayer -> {
  16.             if (uhcPlayer.getLogger() != null) {
  17.                 Logger logger = uhcPlayer.getLogger();
  18.                 if (logger.getCooldown().hasExpired()) {
  19.                     Bukkit.getPluginManager().callEvent(new LoggerExpireTimeEvent(uhcPlayer, logger.getDrops()));
  20.                     logger.handleDeath();
  21.                 }
  22.             }
  23.         });
  24.  
  25.         if (game.isEnded() && game.getEndCooldown().hasExpired()) {
  26.             Bukkit.getServer().shutdown();
  27.             return;
  28.         }
  29.  
  30.         Common.getCounter(game.getGameTime(), game.getHealTime(), Common.format(configCursor.getString("finalHealCounter"), "<time>"));
  31.         if (game.getGameTime() >= game.getHealTime() && !game.isHealTimeAlready()) {
  32.             game.setHealTimeAlready(true);
  33.             Bukkit.broadcastMessage(Common.format(configCursor.getString("finalHeal")));
  34.  
  35.             UHCPlayer.getPlayers().values().forEach(uhcPlayer -> {
  36.                 if (uhcPlayer.isAlive()) {
  37.                     if (uhcPlayer.isOnline() && uhcPlayer.getLogger() == null) {
  38.                         uhcPlayer.getPlayer().setHealth(20.0D);
  39.                     } else {
  40.                         Logger logger = uhcPlayer.getLogger();
  41.                         if (!logger.getZombie().isDead()) logger.getZombie().setHealth(20.0D);
  42.                     }
  43.                 }
  44.             });
  45.         }
  46.  
  47.         Common.getCounter(game.getGameTime(), game.getPvpTime(), Common.format(configCursor.getString("gracePeriodCounter"), "<time>"));
  48.         if (game.getGameTime() >= game.getPvpTime() && !game.isPvpTimeAlready()) {
  49.             game.setPvpTimeAlready(true);
  50.             game.setAllowNether(true);
  51.  
  52.             worldManager.getUhcWorld().setPVP(true);
  53.             worldManager.getUhcWorldNether().setPVP(true);
  54.             worldManager.getUhcWorldDeathMatch().setPVP(true);
  55.  
  56.             Bukkit.broadcastMessage(Common.format(configCursor.getString("gracePeriod")));
  57.  
  58.             Moles moles = (Moles) Gamemode.getByName("Moles");
  59.             if (game.isTeams() && moles.isEnabled()) {
  60.                 for (UHCTeam team : game.getGameManager().getAliveTeams()) {
  61.                     List<UHCPlayer> players = team.getTeamPlayers().stream().filter(uhcPlayer -> uhcPlayer.isAlive() && uhcPlayer.isOnline()).collect(Collectors.toList());
  62.                     if (players.size() == 0) continue;
  63.  
  64.                     Collections.shuffle(players);
  65.  
  66.                     UHCPlayer uhcPlayer = players.get(0);
  67.                     if (uhcPlayer == null) continue;
  68.  
  69.                     uhcPlayer.getPlayer().sendMessage("ยงaYou have assigned as the Mole of your team!");
  70.                     uhcPlayer.setMole(true);
  71.                     moles.getMolesTeam().add(uhcPlayer);
  72.                 }
  73.  
  74.                 moles.getMolesTeam().forEach(uhcPlayer -> game.getGameManager().colorize(uhcPlayer));
  75.                 game.getHost().forEach(uhcPlayer -> game.getGameManager().colorize(uhcPlayer));
  76.                 game.getModerators().forEach(uhcPlayer -> game.getGameManager().colorize(uhcPlayer));
  77.             }
  78.         }
  79.  
  80.         Common.getCounter(game.getGameTime(), game.getGlobalChat(), Common.format(configCursor.getString("globalChatCounter"), "<time>"));
  81.         if (game.getGameTime() >= game.getGlobalChat() && !game.isGlobalChatAlready()) {
  82.             game.setGlobalChatAlready(true);
  83.             Bukkit.broadcastMessage(Common.format(configCursor.getString("globalChat")));
  84.         }
  85.  
  86.         Gamemode skyHigh = Gamemode.getByName("Sky High");
  87.         if (skyHigh.isEnabled() && game.isPvpTimeAlready()) {
  88.             String time = Common.calculate(game.getGameTime());
  89.             if (time.endsWith(":30") || time.endsWith(":00")) {
  90.                 game.getGameManager().getAlivePlayers().stream().filter(UHCPlayer::isOnline).forEach(uhcPlayer -> {
  91.                     Player player = uhcPlayer.getPlayer();
  92.                     if (player.getLocation().getBlockY() < 100) {
  93.                         player.sendMessage("ยงcYou have been beaten for being below y: 100!");
  94.                         player.damage(1.0);
  95.                     }
  96.                 });
  97.             }
  98.         }
  99.  
  100.         if (game.getGameTime() >= (game.getBorderTime() - game.getTimePerShrink()) && !game.isBorderTimeAlready()) {
  101.             game.setBorderTimeAlready(true);
  102.  
  103.             World world = worldManager.getUhcWorld();
  104.             world.setTime(0);
  105.             world.setGameRuleValue("doDaylightCycle", "false");
  106.  
  107.             Bukkit.broadcastMessage(Common.format(configCursor.getString("permanentDay")));
  108.  
  109.             if (game.getShrinks().isEmpty()) {
  110.                 if (skyHigh.isEnabled()) {
  111.                     game.setShrink(null);
  112.                     return;
  113.                 }
  114.  
  115.                 game.setDeathmatchTime(game.getDeathmatchTime() + game.getGameTime());
  116.                 game.setDeathmatchTimeAlready(true);
  117.                 game.setShrink(null);
  118.                 return;
  119.             } else game.setShrink(new Shrink(game.getCurrentBorder(), Integer.valueOf(game.getShrinks().remove(0))));
  120.         }
  121.  
  122.         if (game.isDeathmatchRunning()) {
  123.             Common.getOnlinePlayers().forEach(player -> {
  124.                 if (player.getWorld() != worldManager.getUhcWorldDeathMatch()) {
  125.                     player.teleport(Common.randomLocation(worldManager.getUhcWorldDeathMatch(), worldManager.getUhcWorldDeathmatchSize()));
  126.                 }
  127.             });
  128.             return;
  129.         }
  130.  
  131.         if (game.isDeathmatchTimeAlready()) {
  132.             Common.getCounter(game.getGameTime(), game.getDeathmatchTime(), Common.format(configCursor.getString("deathmatchCounter"), "<time>"));
  133.             if (game.getGameTime() >= game.getDeathmatchTime() && !game.isDeathmatchRunning()) {
  134.                 game.setDeathmatchRunning(true);
  135.                 Bukkit.broadcastMessage(Common.format(configCursor.getString("deathmatch")));
  136.                 Bukkit.getPluginManager().registerEvents(new DeathmatchListener(), UHC.getInstance());
  137.                 Bukkit.getPluginManager().callEvent(new DeathMatchStartEvent(UHC.getInstance().getWorldManager()));
  138.             }
  139.             return;
  140.         }
  141.  
  142.         if (game.isBorderTimeAlready() && game.getShrink() != null) {
  143.             Common.getCounter(game.getGameTime(), game.getShrink().getTime(), Common.format(configCursor.getString("borderCounter"), game.getShrink().getNewBorder(), "<time>"));
  144.  
  145.             if (game.getShrink().getTimeLeft() == 10) worldManager.shrinkBorder(game.getShrink().getNewBorder(), 1);
  146.             if (game.getShrink().canShrink()) {
  147.                 Bukkit.getPluginManager().callEvent(new BorderShrinkEvent(game.getShrink().getNewBorder(), game.getShrink().getCurrentBorder()));
  148.                 game.setCurrentBorder(game.getShrink().getNewBorder());
  149.  
  150.                 if (game.getShrinks().isEmpty()) {
  151.                     if (skyHigh.isEnabled()) {
  152.                         game.setShrink(null);
  153.                         return;
  154.                     }
  155.  
  156.                     game.setDeathmatchTime(game.getDeathmatchTime() + game.getGameTime());
  157.                     game.setDeathmatchTimeAlready(true);
  158.                     game.setShrink(null);
  159.                     return;
  160.                 }
  161.  
  162.                 game.setShrink(new Shrink(game.getCurrentBorder(), Integer.valueOf(game.getShrinks().remove(0))));
  163.             }
  164.         }
  165.  
  166.         if (!game.isNether() || !game.isAllowNether()) {
  167.             Common.getOnlinePlayers().forEach(player -> {
  168.                 if (player.getWorld() == worldManager.getUhcWorldNether()) {
  169.                     player.teleport(Common.randomLocation(worldManager.getUhcWorld(), game.getCurrentBorder()));
  170.                 }
  171.             });
  172.         }
  173.     }
  174. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement