Advertisement
Guest User

Untitled

a guest
Jul 11th, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.39 KB | None | 0 0
  1. package com.black.miniglad.game;
  2.  
  3. import org.bukkit.Bukkit;
  4. import org.bukkit.ChatColor;
  5. import org.bukkit.Location;
  6. import org.bukkit.Sound;
  7. import org.bukkit.entity.Player;
  8. import org.bukkit.scheduler.BukkitRunnable;
  9. import org.bukkit.scheduler.BukkitTask;
  10.  
  11. import com.arzio.arziolib.api.region.Flags;
  12. import com.black.miniglad.Main;
  13. import com.sk89q.worldguard.protection.flags.StateFlag;
  14. import com.sk89q.worldguard.protection.flags.StateFlag.State;
  15. import com.sk89q.worldguard.protection.managers.RegionManager;
  16.  
  17. import net.milkbowl.vault.economy.EconomyResponse;
  18. import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
  19.  
  20. public class MiniGladiador {
  21.    
  22.     public static enum EstadoPartida {
  23.         FECHADO, ESPERANDO, PREPARANDO, JOGANDO, TERMINANDO;
  24.     }
  25.    
  26.     private Main plugin = Main.getPlugin();
  27.     private ParticipantesManager partManager = new ParticipantesManager(plugin, this);
  28.     private static MiniGladiador match;
  29.     private EstadoPartida status = EstadoPartida.FECHADO;
  30.     private final int chamadaPrimal = 5;
  31.     private static final int secondsPrimal = 10;
  32.     private String prefix = "§d[MINI-GLADIADOR] ";
  33.     private static int seconds;
  34.     private static int chamadas;
  35.  
  36.     BukkitTask pvpTask;
  37.     BukkitTask broadcastTask;
  38.  
  39.     public static MiniGladiador getInstance() {
  40.         if (match == null) {
  41.             match = new MiniGladiador();
  42.         }
  43.         return match;
  44.     }
  45.  
  46.     public ParticipantesManager getPartManager() {
  47.         return partManager;
  48.     }
  49.  
  50.     public void setPartManager(ParticipantesManager partManager) {
  51.         this.partManager = partManager;
  52.     }
  53.  
  54.     public EstadoPartida getStatus() {
  55.         return status;
  56.     }
  57.  
  58.     public void setStatus(EstadoPartida status) {
  59.         this.status = status;
  60.     }
  61.  
  62.     public int getChamadas() {
  63.         return chamadaPrimal;
  64.     }
  65.  
  66.     public void close() {
  67.         if(status == EstadoPartida.ESPERANDO) {
  68.             status = EstadoPartida.JOGANDO;
  69.             if(partManager.getClansParticipando().size() == 1) {
  70.                 end(true);
  71.                 Bukkit.broadcastMessage(prefix + "§fO clan §d" + partManager.getClansParticipando().get(0).getTag() +  "§fvenceu o evento por W.O");
  72.             }
  73.             if (pvpTask != null) {
  74.                 pvpTask.cancel();
  75.                 pvpTask = null;
  76.             }
  77.             broadcastTask.cancel();
  78.             broadcastTask = null;
  79.             seconds = secondsPrimal;
  80.             pvpTask = Bukkit.getScheduler().runTaskTimer(plugin, new Runnable() {
  81.                 public void run() {
  82.                     if(partManager.getParticipantes().size() == 0) {
  83.                         Bukkit.broadcastMessage(prefix + "§fO evento §dMINI-GLADIADOR §ffoi cancelado porque ninguem participou.");
  84.                         cancelar();
  85.                         pvpTask.cancel();
  86.                         pvpTask = null;
  87.                     }
  88.                     if(seconds==0){
  89.                         Bukkit.getServer().broadcastMessage(prefix+"§fO PVP no evento §dMINI-GLADIADOR §ffoi ativado! Que vençam os melhores.");
  90.                         Bukkit.getWorld("gladiador").setPVP(true);
  91.                         RegionManager rm = Flags.getRegionManager(Bukkit.getWorld("gladiador"));
  92.                         StateFlag minhaFlag = (StateFlag) Flags.getFlag("minha-flag");
  93.                         if(minhaFlag != null) {
  94.                             rm.getRegionExact("glad").setFlag(minhaFlag, State.ALLOW);
  95.                         }
  96.                        
  97.                         status=EstadoPartida.JOGANDO;
  98.                         pvpTask.cancel();
  99.                     }
  100.                     for(String p : partManager.getParticipantes()) {
  101.                         if(seconds<10 && seconds!=0){
  102.                             Bukkit.getPlayer(p).sendMessage(prefix+"§fFaltam §a"+seconds+" segundos §fpara o pvp ser ativado.");
  103.                         }
  104.                         if(seconds%10==0&&seconds!=0){
  105.                             if(pvpTask != null) {
  106.                                 Bukkit.getPlayer(p).sendMessage(prefix+"§fFaltam §a"+seconds+" segundos §fpara o pvp ser ativado.");
  107.                             }
  108.                         }
  109.                     }
  110.                     seconds--; 
  111.                 }
  112.             }, 20L, 20L);
  113.         }
  114.     }
  115.    
  116.     public void cancelar() {
  117.         if (status != EstadoPartida.FECHADO) {
  118.             if(status != EstadoPartida.ESPERANDO) {
  119.                 for (String p : partManager.getParticipantes()) {
  120.                     Player player = Bukkit.getPlayer(p);
  121.                     player.teleport(new Location(Bukkit.getWorld("spawn2"), -530.7, 108.0, 723.52));
  122.                 }
  123.             }
  124.             if (pvpTask != null) {
  125.                 pvpTask.cancel();
  126.                 pvpTask = null;
  127.             }
  128.             if (broadcastTask != null) {
  129.                 broadcastTask.cancel();
  130.                 broadcastTask = null;
  131.             }
  132.             chamadas = chamadaPrimal;
  133.             status = EstadoPartida.FECHADO;
  134.             partManager.limparParticipantes();
  135.         }
  136.     }
  137.    
  138.     public void start() {
  139.         if(status == EstadoPartida.FECHADO) {
  140.             status = EstadoPartida.ESPERANDO;
  141.             partManager.limparParticipantes();
  142.             RegionManager rm = Flags.getRegionManager(Bukkit.getWorld("gladiador"));
  143.             StateFlag minhaFlag = (StateFlag) Flags.getFlag("minha-flag");
  144.             if(minhaFlag != null) {
  145.                 rm.getRegionExact("glad").setFlag(minhaFlag, State.DENY);
  146.             }
  147.             Bukkit.getWorld("gladiador").setPVP(false);
  148.             Bukkit.getServer().broadcastMessage(
  149.                     prefix+"§d--------------§f[§dMINI-GLAD§f]§d--------------\n"
  150.                     +prefix+"§fO Evento §dMINI-GLADIADOR §Festá aberto!\n\n"
  151.                     +prefix+"§fUtilize §a/miniglad entrar!\n"
  152.                     +prefix+"§fPrêmio: §aR$1.000.000 + TAG §8§l[´§d§lMINI§8§l]\n"
  153.                     +prefix+"§fJogadores no evento: §a "+partManager.getParticipantes().size()+"\n"
  154.                     +prefix+"§fClans no evento: §a "+partManager.getClansParticipando().size()+"\n"
  155.                     +prefix+"§fChamadas restantes: §a " +chamadas+"\n"
  156.                     +prefix+"§d--------------§f[§dMINI-GLAD§f]§d--------------\n");
  157.             chamadas--;
  158.             BukkitRunnable broadcastRun = new BukkitRunnable() {
  159.                 public void run() {
  160.                     if(chamadas>0) {
  161.                         Bukkit.getServer().broadcastMessage(
  162.                                 prefix+"§d--------------§f[§dMINI-GLAD§f]§d--------------\n"
  163.                                 +prefix+"§fO Evento §dMINI-GLADIADOR §Festá aberto!\n\n"
  164.                                 +prefix+"§fUtilize §a/miniglad entrar!\n"
  165.                                 +prefix+"§fPrêmio: §aR$1.000.000 + TAG §8§l[´§d§lMINI§8§l]\n"
  166.                                 +prefix+"§fJogadores no evento: §a "+partManager.getParticipantes().size()+"\n"
  167.                                 +prefix+"§fClans no evento: §a "+partManager.getClansParticipando().size()+"\n"
  168.                                 +prefix+"§fChamadas restantes: §a " +chamadas+"\n"
  169.                                 +prefix+"§d--------------§f[§dMINI-GLAD§f]§d--------------\n");
  170.                         chamadas--;
  171.                     }else {
  172.                         Bukkit.getServer().broadcastMessage(prefix+"§fO evento §dMINI-GLADIADOR §ffoi trancado!");
  173.                         close();
  174.                         chamadas = chamadaPrimal;
  175.                     }
  176.                 }
  177.             };
  178.             broadcastTask = broadcastRun.runTaskTimer(plugin, 10*20L, 10*20L);
  179.         }
  180.     }
  181.    
  182.     public void end() {
  183.         end(false);
  184.     }
  185.    
  186.     public void end(boolean wo) {
  187.         chamadas = chamadaPrimal;
  188.         status = EstadoPartida.TERMINANDO;
  189.         for (String participante : partManager.getParticipantes()) {
  190.             Player p = Bukkit.getPlayer(participante);
  191.             p.sendMessage(prefix + "§f§lSeu clan venceu o Mini-Gladiador!");
  192.             plugin.getConfig().set("last_clan_winner", SimpleClans.getInstance().getClanManager().getClanByPlayerName(participante).getTag().toLowerCase());
  193.             plugin.saveConfig();
  194.             plugin.reloadConfig();
  195.             p.playSound(p.getLocation(), Sound.FIREWORK_BLAST, 1, 3);
  196.             Bukkit.getWorld("gladiador").setPVP(false);
  197.             EconomyResponse r = Main.getPlugin().getEconomy().depositPlayer(participante, 1000000.00);
  198.             if(r.transactionSuccess()) {
  199.                 Bukkit.getPlayer(participante).sendMessage(prefix + "§fVocê recebeu §dR$1.000.000 §fpor vencer o evento!");
  200.             }
  201.             Bukkit.getPlayer(participante).sendMessage(prefix + "§aVocê possui 5 minutos para lootiar!");
  202.         }
  203.         //Essa linha n funciona
  204.         Bukkit.getServer().broadcastMessage(prefix + "§f§lO clan [" + ChatColor.RESET + partManager.getClansParticipando().get(0).getColorTag() + "§f§l] venceu o evento Battle!");
  205.         if(wo) {
  206.             for (String participante : partManager.getParticipantes()) {
  207.                 Bukkit.getPlayer(participante)
  208.                     .sendMessage(prefix + "§fVocê esta sendo teleportado para o spawn.");
  209.                 partManager.removerParticipante(participante);
  210.                 chamadas = chamadaPrimal;
  211.                 status = EstadoPartida.FECHADO;
  212.                 partManager.limparParticipantes();
  213.                 if(pvpTask != null) {
  214.                     pvpTask.cancel();
  215.                 }
  216.             }
  217.         }
  218.         if(!wo) {
  219.             Bukkit.getScheduler().runTaskLater(plugin, new Runnable() {
  220.                 public void run() {
  221.                     for (String participante : partManager.getParticipantes()) {
  222.                         Bukkit.getPlayer(participante)
  223.                             .sendMessage(prefix + "§fVocê esta sendo teleportado para o spawn.");
  224.                         Bukkit.getPlayer(participante).teleport(new Location(Bukkit.getWorld("spawn2"), -530.7, 108.0, 723.52));
  225.                         chamadas = chamadaPrimal;
  226.                         status = EstadoPartida.FECHADO;
  227.                     }
  228.                     partManager.limparParticipantes();
  229.                 }
  230.             }, 10 * 20L);
  231.         }  
  232.     }
  233.    
  234.     public boolean shouldEnd() {
  235.         return partManager.getClansParticipando().size() == 1;
  236.     }
  237.    
  238. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement