Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.black.miniglad.game;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.Location;
- import org.bukkit.Sound;
- import org.bukkit.entity.Player;
- import org.bukkit.scheduler.BukkitRunnable;
- import org.bukkit.scheduler.BukkitTask;
- import com.arzio.arziolib.api.region.Flags;
- import com.black.miniglad.Main;
- import com.sk89q.worldguard.protection.flags.StateFlag;
- import com.sk89q.worldguard.protection.flags.StateFlag.State;
- import com.sk89q.worldguard.protection.managers.RegionManager;
- import net.milkbowl.vault.economy.EconomyResponse;
- import net.sacredlabyrinth.phaed.simpleclans.SimpleClans;
- public class MiniGladiador {
- public static enum EstadoPartida {
- FECHADO, ESPERANDO, PREPARANDO, JOGANDO, TERMINANDO;
- }
- private Main plugin = Main.getPlugin();
- private ParticipantesManager partManager = new ParticipantesManager(plugin, this);
- private static MiniGladiador match;
- private EstadoPartida status = EstadoPartida.FECHADO;
- private final int chamadaPrimal = 5;
- private static final int secondsPrimal = 10;
- private String prefix = "§d[MINI-GLADIADOR] ";
- private static int seconds;
- private static int chamadas;
- BukkitTask pvpTask;
- BukkitTask broadcastTask;
- public static MiniGladiador getInstance() {
- if (match == null) {
- match = new MiniGladiador();
- }
- return match;
- }
- public ParticipantesManager getPartManager() {
- return partManager;
- }
- public void setPartManager(ParticipantesManager partManager) {
- this.partManager = partManager;
- }
- public EstadoPartida getStatus() {
- return status;
- }
- public void setStatus(EstadoPartida status) {
- this.status = status;
- }
- public int getChamadas() {
- return chamadaPrimal;
- }
- public void close() {
- if(status == EstadoPartida.ESPERANDO) {
- status = EstadoPartida.JOGANDO;
- if(partManager.getClansParticipando().size() == 1) {
- end(true);
- Bukkit.broadcastMessage(prefix + "§fO clan §d" + partManager.getClansParticipando().get(0).getTag() + "§fvenceu o evento por W.O");
- }
- if (pvpTask != null) {
- pvpTask.cancel();
- pvpTask = null;
- }
- broadcastTask.cancel();
- broadcastTask = null;
- seconds = secondsPrimal;
- pvpTask = Bukkit.getScheduler().runTaskTimer(plugin, new Runnable() {
- public void run() {
- if(partManager.getParticipantes().size() == 0) {
- Bukkit.broadcastMessage(prefix + "§fO evento §dMINI-GLADIADOR §ffoi cancelado porque ninguem participou.");
- cancelar();
- pvpTask.cancel();
- pvpTask = null;
- }
- if(seconds==0){
- Bukkit.getServer().broadcastMessage(prefix+"§fO PVP no evento §dMINI-GLADIADOR §ffoi ativado! Que vençam os melhores.");
- Bukkit.getWorld("gladiador").setPVP(true);
- RegionManager rm = Flags.getRegionManager(Bukkit.getWorld("gladiador"));
- StateFlag minhaFlag = (StateFlag) Flags.getFlag("minha-flag");
- if(minhaFlag != null) {
- rm.getRegionExact("glad").setFlag(minhaFlag, State.ALLOW);
- }
- status=EstadoPartida.JOGANDO;
- pvpTask.cancel();
- }
- for(String p : partManager.getParticipantes()) {
- if(seconds<10 && seconds!=0){
- Bukkit.getPlayer(p).sendMessage(prefix+"§fFaltam §a"+seconds+" segundos §fpara o pvp ser ativado.");
- }
- if(seconds%10==0&&seconds!=0){
- if(pvpTask != null) {
- Bukkit.getPlayer(p).sendMessage(prefix+"§fFaltam §a"+seconds+" segundos §fpara o pvp ser ativado.");
- }
- }
- }
- seconds--;
- }
- }, 20L, 20L);
- }
- }
- public void cancelar() {
- if (status != EstadoPartida.FECHADO) {
- if(status != EstadoPartida.ESPERANDO) {
- for (String p : partManager.getParticipantes()) {
- Player player = Bukkit.getPlayer(p);
- player.teleport(new Location(Bukkit.getWorld("spawn2"), -530.7, 108.0, 723.52));
- }
- }
- if (pvpTask != null) {
- pvpTask.cancel();
- pvpTask = null;
- }
- if (broadcastTask != null) {
- broadcastTask.cancel();
- broadcastTask = null;
- }
- chamadas = chamadaPrimal;
- status = EstadoPartida.FECHADO;
- partManager.limparParticipantes();
- }
- }
- public void start() {
- if(status == EstadoPartida.FECHADO) {
- status = EstadoPartida.ESPERANDO;
- partManager.limparParticipantes();
- RegionManager rm = Flags.getRegionManager(Bukkit.getWorld("gladiador"));
- StateFlag minhaFlag = (StateFlag) Flags.getFlag("minha-flag");
- if(minhaFlag != null) {
- rm.getRegionExact("glad").setFlag(minhaFlag, State.DENY);
- }
- Bukkit.getWorld("gladiador").setPVP(false);
- Bukkit.getServer().broadcastMessage(
- prefix+"§d--------------§f[§dMINI-GLAD§f]§d--------------\n"
- +prefix+"§fO Evento §dMINI-GLADIADOR §Festá aberto!\n\n"
- +prefix+"§fUtilize §a/miniglad entrar!\n"
- +prefix+"§fPrêmio: §aR$1.000.000 + TAG §8§l[´§d§lMINI§8§l]\n"
- +prefix+"§fJogadores no evento: §a "+partManager.getParticipantes().size()+"\n"
- +prefix+"§fClans no evento: §a "+partManager.getClansParticipando().size()+"\n"
- +prefix+"§fChamadas restantes: §a " +chamadas+"\n"
- +prefix+"§d--------------§f[§dMINI-GLAD§f]§d--------------\n");
- chamadas--;
- BukkitRunnable broadcastRun = new BukkitRunnable() {
- public void run() {
- if(chamadas>0) {
- Bukkit.getServer().broadcastMessage(
- prefix+"§d--------------§f[§dMINI-GLAD§f]§d--------------\n"
- +prefix+"§fO Evento §dMINI-GLADIADOR §Festá aberto!\n\n"
- +prefix+"§fUtilize §a/miniglad entrar!\n"
- +prefix+"§fPrêmio: §aR$1.000.000 + TAG §8§l[´§d§lMINI§8§l]\n"
- +prefix+"§fJogadores no evento: §a "+partManager.getParticipantes().size()+"\n"
- +prefix+"§fClans no evento: §a "+partManager.getClansParticipando().size()+"\n"
- +prefix+"§fChamadas restantes: §a " +chamadas+"\n"
- +prefix+"§d--------------§f[§dMINI-GLAD§f]§d--------------\n");
- chamadas--;
- }else {
- Bukkit.getServer().broadcastMessage(prefix+"§fO evento §dMINI-GLADIADOR §ffoi trancado!");
- close();
- chamadas = chamadaPrimal;
- }
- }
- };
- broadcastTask = broadcastRun.runTaskTimer(plugin, 10*20L, 10*20L);
- }
- }
- public void end() {
- end(false);
- }
- public void end(boolean wo) {
- chamadas = chamadaPrimal;
- status = EstadoPartida.TERMINANDO;
- for (String participante : partManager.getParticipantes()) {
- Player p = Bukkit.getPlayer(participante);
- p.sendMessage(prefix + "§f§lSeu clan venceu o Mini-Gladiador!");
- plugin.getConfig().set("last_clan_winner", SimpleClans.getInstance().getClanManager().getClanByPlayerName(participante).getTag().toLowerCase());
- plugin.saveConfig();
- plugin.reloadConfig();
- p.playSound(p.getLocation(), Sound.FIREWORK_BLAST, 1, 3);
- Bukkit.getWorld("gladiador").setPVP(false);
- EconomyResponse r = Main.getPlugin().getEconomy().depositPlayer(participante, 1000000.00);
- if(r.transactionSuccess()) {
- Bukkit.getPlayer(participante).sendMessage(prefix + "§fVocê recebeu §dR$1.000.000 §fpor vencer o evento!");
- }
- Bukkit.getPlayer(participante).sendMessage(prefix + "§aVocê possui 5 minutos para lootiar!");
- }
- //Essa linha n funciona
- Bukkit.getServer().broadcastMessage(prefix + "§f§lO clan [" + ChatColor.RESET + partManager.getClansParticipando().get(0).getColorTag() + "§f§l] venceu o evento Battle!");
- if(wo) {
- for (String participante : partManager.getParticipantes()) {
- Bukkit.getPlayer(participante)
- .sendMessage(prefix + "§fVocê esta sendo teleportado para o spawn.");
- partManager.removerParticipante(participante);
- chamadas = chamadaPrimal;
- status = EstadoPartida.FECHADO;
- partManager.limparParticipantes();
- if(pvpTask != null) {
- pvpTask.cancel();
- }
- }
- }
- if(!wo) {
- Bukkit.getScheduler().runTaskLater(plugin, new Runnable() {
- public void run() {
- for (String participante : partManager.getParticipantes()) {
- Bukkit.getPlayer(participante)
- .sendMessage(prefix + "§fVocê esta sendo teleportado para o spawn.");
- Bukkit.getPlayer(participante).teleport(new Location(Bukkit.getWorld("spawn2"), -530.7, 108.0, 723.52));
- chamadas = chamadaPrimal;
- status = EstadoPartida.FECHADO;
- }
- partManager.limparParticipantes();
- }
- }, 10 * 20L);
- }
- }
- public boolean shouldEnd() {
- return partManager.getClansParticipando().size() == 1;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement