You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1597 lines
72 KiB

package cx.sfy.TheBridge.listeners;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.block.Sign;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Item;
import org.bukkit.entity.Player;
import org.bukkit.entity.Projectile;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
import org.bukkit.event.entity.EntityShootBowEvent;
import org.bukkit.event.entity.FoodLevelChangeEvent;
import org.bukkit.event.entity.ProjectileLaunchEvent;
import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.inventory.InventoryCloseEvent;
import org.bukkit.event.inventory.InventoryType.SlotType;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
import org.bukkit.event.player.PlayerDropItemEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerItemConsumeEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerKickEvent;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.inventory.InventoryView;
import org.bukkit.inventory.ItemStack;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.scheduler.BukkitTask;
import cx.sfy.TheBridge.Main;
import cx.sfy.TheBridge.cosmetics.Cage;
import cx.sfy.TheBridge.database.PlayerStat;
import cx.sfy.TheBridge.game.GameDuo;
import cx.sfy.TheBridge.game.GameDuo.State;
import cx.sfy.TheBridge.game.GameFour;
import cx.sfy.TheBridge.game.GameFour.FState;
import cx.sfy.TheBridge.game.InventoryData;
import cx.sfy.TheBridge.signs.GameFourSign;
import cx.sfy.TheBridge.signs.GameNormalSign;
import cx.sfy.TheBridge.utils.ItemBuilder;
import cx.sfy.TheBridge.utils.Tagged;
import cx.sfy.TheBridge.utils.Utils;
@SuppressWarnings("deprecation")
public class PlayerListener implements Listener {
public static HashMap<Player, Integer> page = new HashMap<>();
private final ArrayList<Player> bow = new ArrayList<>();
private final ArrayList<Player> leaving = new ArrayList<>();
Main plugin;
public PlayerListener(Main plugin) {
this.plugin = plugin;
}
private BukkitTask task;
public void runTask(Player p, Entity e) {
task = Bukkit.getServer().getScheduler().runTaskTimerAsynchronously(this.plugin, () -> {
Location loc = e.getLocation();
if (e.isOnGround()) {
task.cancel();
}
createTrail(loc, plugin.getArm().getArrowByName(PlayerStat.getPlayerStat(p).getArrow()));
}, 0, 1);
}
@EventHandler
public void onShoot(ProjectileLaunchEvent e) {
if (e.getEntity().getShooter() instanceof Player) {
if (e.getEntity() instanceof Arrow) {
Player p = (Player) e.getEntity().getShooter();
if (plugin.getGm().getGameByPlayer(p) != null || plugin.getGm().getGameFourByPlayer(p) != null)
runTask(p, e.getEntity());
}
}
}
@EventHandler
public void onJoin(PlayerJoinEvent e) {
final Player p = e.getPlayer();
new PlayerStat(p);
givePlayerItems(p);
Utils.setPlayerExperience(p, PlayerStat.getPlayerStat(p).getXp());
}
public void createTrail(Location loc, cx.sfy.TheBridge.cosmetics.Arrow arrow) {
plugin.getNms().sendParticle(loc, arrow);
}
@EventHandler
public void onCommand(PlayerCommandPreprocessEvent e) {
if (plugin.getGm().getGameByPlayer(e.getPlayer()) != null
|| plugin.getGm().getGameFourByPlayer(e.getPlayer()) != null) {
final List<String> cmds = plugin.getConfig().getStringList("commands.list");
if (e.getMessage().contains("/bridges"))
return;
if (plugin.getConfig().getBoolean("commands.whitelist") == true) {
if (!cmds.contains(e.getMessage()))
e.setCancelled(true);
} else if (plugin.getConfig().getBoolean("commands.whitelist") == false)
if (cmds.contains(e.getMessage()))
e.setCancelled(true);
}
}
public void givePlayerItems(Player p) {
final ItemStack select = ItemBuilder.item(Material.valueOf(plugin.getConfig().getString("items.menu.material")),
plugin.getConfig().getInt("items.menu.amount"), (short) plugin.getConfig().getInt("items.menu.data"),
plugin.getConfig().getString("items.menu.nameItem").replaceAll("&", "§"),
plugin.getConfig().getString("items.menu.loreItem").replaceAll("&", "§"));
final ItemStack random = ItemBuilder.item(
Material.valueOf(plugin.getConfig().getString("items.random.material")),
plugin.getConfig().getInt("items.random.amount"),
(short) plugin.getConfig().getInt("items.random.data"),
plugin.getConfig().getString("items.random.nameItem").replaceAll("&", "§"),
plugin.getConfig().getString("items.random.loreItem").replaceAll("&", "§"));
final ItemStack hotbar = ItemBuilder.item(
Material.valueOf(plugin.getConfig().getString("items.hotbar.material")),
plugin.getConfig().getInt("items.hotbar.amount"),
(short) plugin.getConfig().getInt("items.hotbar.data"),
plugin.getConfig().getString("items.hotbar.nameItem").replaceAll("&", "§"),
plugin.getConfig().getString("items.hotbar.loreItem").replaceAll("&", "§"));
final ItemStack shop = ItemBuilder.item(Material.valueOf(plugin.getConfig().getString("items.shop.material")),
plugin.getConfig().getInt("items.shop.amount"), (short) plugin.getConfig().getInt("items.shop.data"),
plugin.getConfig().getString("items.shop.nameItem").replaceAll("&", "§"),
plugin.getConfig().getString("items.shop.loreItem").replaceAll("&", "§"));
final ItemStack lobby = ItemBuilder.item(Material.valueOf(plugin.getConfig().getString("items.lobby.material")),
plugin.getConfig().getInt("items.lobby.amount"), (short) plugin.getConfig().getInt("items.lobby.data"),
plugin.getConfig().getString("items.lobby.nameItem").replaceAll("&", "§"),
plugin.getConfig().getString("items.lobby.loreItem").replaceAll("&", "§"));
final ItemStack archievements = ItemBuilder.item(
Material.valueOf(plugin.getConfig().getString("items.archievements.material")),
plugin.getConfig().getInt("items.archievements.amount"),
(short) plugin.getConfig().getInt("items.archievements.data"),
plugin.getConfig().getString("items.archievements.nameItem").replaceAll("&", "§"),
plugin.getConfig().getString("items.archievements.loreItem").replaceAll("&", "§"));
if (plugin.getConfig().getBoolean("items.menu.enabled"))
p.getInventory().setItem(plugin.getConfig().getInt("items.menu.slot"), select);
if (plugin.getConfig().getBoolean("items.random.enabled"))
p.getInventory().setItem(plugin.getConfig().getInt("items.random.slot"), random);
if (plugin.getConfig().getBoolean("items.hotbar.enabled"))
p.getInventory().setItem(plugin.getConfig().getInt("items.hotbar.slot"), hotbar);
if (plugin.getConfig().getBoolean("items.shop.enabled"))
p.getInventory().setItem(plugin.getConfig().getInt("items.shop.slot"), shop);
if (plugin.getConfig().getBoolean("items.lobby.enabled"))
p.getInventory().setItem(plugin.getConfig().getInt("items.lobby.slot"), lobby);
if (plugin.getConfig().getBoolean("items.archievements.enabled"))
p.getInventory().setItem(plugin.getConfig().getInt("items.archievements.slot"), archievements);
}
@EventHandler
public void onDrop(PlayerDropItemEvent e) {
final Player p = e.getPlayer();
final Item item = e.getItemDrop();
if (p.getOpenInventory() != null)
if (p.getOpenInventory().getTitle().equals(plugin.getLang().get("menus.hotbar.title"))) {
e.getItemDrop().remove();
e.setCancelled(true);
}
if (plugin.getGm().getGameFourByPlayer(p) != null) {
e.setCancelled(true);
return;
}
if (plugin.getGm().getGameByPlayer(p) != null) {
e.setCancelled(true);
return;
}
if (plugin.getConfig().getBoolean("items.menu.enabled")) {
final ItemStack select = ItemBuilder.item(
Material.valueOf(plugin.getConfig().getString("items.menu.material")),
plugin.getConfig().getInt("items.menu.amount"),
(short) plugin.getConfig().getInt("items.menu.data"),
plugin.getConfig().getString("items.menu.nameItem").replaceAll("&", "§"),
plugin.getConfig().getString("items.menu.loreItem").replaceAll("&", "§"));
if (item.getItemStack().equals(select))
e.setCancelled(true);
}
if (plugin.getConfig().getBoolean("items.random.enabled")) {
final ItemStack random = ItemBuilder.item(
Material.valueOf(plugin.getConfig().getString("items.random.material")),
plugin.getConfig().getInt("items.random.amount"),
(short) plugin.getConfig().getInt("items.random.data"),
plugin.getConfig().getString("items.random.nameItem").replaceAll("&", "§"),
plugin.getConfig().getString("items.random.loreItem").replaceAll("&", "§"));
if (item.getItemStack().equals(random))
e.setCancelled(true);
}
if (plugin.getConfig().getBoolean("items.hotbar.enabled")) {
final ItemStack random = ItemBuilder.item(
Material.valueOf(plugin.getConfig().getString("items.hotbar.material")),
plugin.getConfig().getInt("items.hotbar.amount"),
(short) plugin.getConfig().getInt("items.hotbar.data"),
plugin.getConfig().getString("items.hotbar.nameItem").replaceAll("&", "§"),
plugin.getConfig().getString("items.hotbar.loreItem").replaceAll("&", "§"));
if (item.getItemStack().equals(random))
e.setCancelled(true);
}
if (plugin.getConfig().getBoolean("items.shop.enabled")) {
final ItemStack random = ItemBuilder.item(
Material.valueOf(plugin.getConfig().getString("items.shop.material")),
plugin.getConfig().getInt("items.shop.amount"),
(short) plugin.getConfig().getInt("items.shop.data"),
plugin.getConfig().getString("items.shop.nameItem").replaceAll("&", "§"),
plugin.getConfig().getString("items.shop.loreItem").replaceAll("&", "§"));
if (item.getItemStack().equals(random))
e.setCancelled(true);
}
if (plugin.getConfig().getBoolean("items.lobby.enabled")) {
final ItemStack random = ItemBuilder.item(
Material.valueOf(plugin.getConfig().getString("items.lobby.material")),
plugin.getConfig().getInt("items.lobby.amount"),
(short) plugin.getConfig().getInt("items.lobby.data"),
plugin.getConfig().getString("items.lobby.nameItem").replaceAll("&", "§"),
plugin.getConfig().getString("items.lobby.loreItem").replaceAll("&", "§"));
if (item.getItemStack().equals(random))
e.setCancelled(true);
}
if (plugin.getConfig().getBoolean("items.archievements.enabled")) {
final ItemStack random = ItemBuilder.item(
Material.valueOf(plugin.getConfig().getString("items.archievements.material")),
plugin.getConfig().getInt("items.archievements.amount"),
(short) plugin.getConfig().getInt("items.archievements.data"),
plugin.getConfig().getString("items.archievements.nameItem").replaceAll("&", "§"),
plugin.getConfig().getString("items.archievements.loreItem").replaceAll("&", "§"));
if (item.getItemStack().equals(random))
e.setCancelled(true);
}
}
@EventHandler
public void onInteract(PlayerInteractEvent e) {
final Player p = e.getPlayer();
if (plugin.getGm().getGameByPlayer(p) != null) {
if (p.getItemInHand() == null || p.getItemInHand().getType() == Material.AIR)
return;
final ItemStack item = p.getItemInHand();
if (!item.hasItemMeta())
return;
if (item.getType().equals(Material.PAPER)
&& item.getItemMeta().getDisplayName().equals(plugin.getLang().get("items.teams.nameItem"))) {
e.setCancelled(true);
plugin.getTem().openTeamNormalMenu(p);
}
}
if (plugin.getGm().getGameFourByPlayer(p) != null) {
if (p.getItemInHand() == null || p.getItemInHand().getType() == Material.AIR)
return;
final ItemStack item = p.getItemInHand();
if (item.getType().equals(Material.BOW))
if (bow.contains(p)) {
p.sendMessage(plugin.getLang().get("messages.noShoot"));
e.setCancelled(true);
}
if (!item.hasItemMeta())
return;
if (item.getType().equals(Material.COMPASS)
&& item.getItemMeta().getDisplayName().equals(plugin.getLang().get("items.spectate.nameItem"))) {
e.setCancelled(true);
plugin.getSpm().openSpectPlayerMenu(p);
}
if (item.getType().equals(Material.PAPER)
&& item.getItemMeta().getDisplayName().equals(plugin.getLang().get("items.teams.nameItem"))) {
e.setCancelled(true);
plugin.getTem().openTeamFourMenu(p);
}
if (item.getType().equals(Material.REDSTONE_COMPARATOR)
|| item.getType().equals(Material.REDSTONE_COMPARATOR_OFF) && item.getItemMeta().getDisplayName()
.equals(plugin.getLang().get("items.config.nameItem"))) {
e.setCancelled(true);
plugin.getSom().openOptionsMenu(p);
}
if (item.getType().equals(Material.BED)
&& item.getItemMeta().getDisplayName().equals(plugin.getLang().get("items.leave.nameItem"))) {
e.setCancelled(true);
p.chat("/bridges leave");
p.sendMessage(plugin.getLang().get("messages.leftGame"));
p.teleport(Main.get().getMainLobby());
if (!leaving.contains(p)) {
leaving.add(p);
new BukkitRunnable() {
@Override
public void run() {
leaving.remove(p);
}
}.runTaskLater(plugin, 20);
}
}
}
if (plugin.getGm().getGameByPlayer(p) != null) {
final ItemStack item = p.getItemInHand();
if (item.getType().equals(Material.BOW))
if (bow.contains(p)) {
p.sendMessage(plugin.getLang().get("messages.noShoot"));
e.setCancelled(true);
}
if (!item.hasItemMeta())
return;
if (item.getType().equals(Material.BED)
&& item.getItemMeta().getDisplayName().equals(plugin.getLang().get("items.leave.nameItem"))) {
e.setCancelled(true);
p.chat("/bridges leave");
p.sendMessage(plugin.getLang().get("messages.leftGame"));
p.teleport(Main.get().getMainLobby());
if (!leaving.contains(p)) {
leaving.add(p);
new BukkitRunnable() {
@Override
public void run() {
leaving.remove(p);
}
}.runTaskLater(plugin, 20);
}
}
}
if (plugin.getGm().getGameFourByPlayer(p) == null && plugin.getGm().getGameByPlayer(p) == null) {
if (p.getItemInHand() != null && p.getItemInHand().getType() != Material.AIR) {
final ItemStack item = p.getItemInHand();
if (item.hasItemMeta()) {
if (plugin.getConfig().getBoolean("items.menu.enabled")) {
final ItemStack select = ItemBuilder.item(
Material.valueOf(plugin.getConfig().getString("items.menu.material")),
plugin.getConfig().getInt("items.menu.amount"),
(short) plugin.getConfig().getInt("items.menu.data"),
plugin.getConfig().getString("items.menu.nameItem").replaceAll("&", "§"),
plugin.getConfig().getString("items.menu.loreItem").replaceAll("&", "§"));
if (item.equals(select))
plugin.getGmu().openSelectTypeMenu(p);
}
if (plugin.getConfig().getBoolean("items.random.enabled"))
if (!leaving.contains(p)) {
final ItemStack random = ItemBuilder.item(
Material.valueOf(plugin.getConfig().getString("items.random.material")),
plugin.getConfig().getInt("items.random.amount"),
(short) plugin.getConfig().getInt("items.random.data"),
plugin.getConfig().getString("items.random.nameItem").replaceAll("&", "§"),
plugin.getConfig().getString("items.random.loreItem").replaceAll("&", "§"));
if (item.equals(random)) {
GameDuo g = null;
int alto = 0;
for (final GameDuo game : plugin.getGm().getGames()) {
if (game.isState(State.FINISH) || game.isState(State.INGAME)
|| game.isState(State.RESTARTING) || game.isState(State.PREGAME))
continue;
if (game.getPlayers() == game.getMax())
continue;
if (game.getPlayers() <= alto) {
g = game;
alto = game.getPlayers();
}
}
if (g != null)
plugin.getGm().addPlayerGame(p, g);
else
p.sendMessage(plugin.getLang().get("messages.noGames"));
}
}
if (plugin.getConfig().getBoolean("items.hotbar.enabled")) {
final ItemStack random = ItemBuilder.item(
Material.valueOf(plugin.getConfig().getString("items.hotbar.material")),
plugin.getConfig().getInt("items.hotbar.amount"),
(short) plugin.getConfig().getInt("items.hotbar.data"),
plugin.getConfig().getString("items.hotbar.nameItem").replaceAll("&", "§"),
plugin.getConfig().getString("items.hotbar.loreItem").replaceAll("&", "§"));
if (item.equals(random))
plugin.getHotbar().createHotbarMenu(p);
}
if (plugin.getConfig().getBoolean("items.shop.enabled")) {
final ItemStack random = ItemBuilder.item(
Material.valueOf(plugin.getConfig().getString("items.shop.material")),
plugin.getConfig().getInt("items.shop.amount"),
(short) plugin.getConfig().getInt("items.shop.data"),
plugin.getConfig().getString("items.shop.nameItem").replaceAll("&", "§"),
plugin.getConfig().getString("items.shop.loreItem").replaceAll("&", "§"));
if (item.equals(random))
plugin.getShop().openShopMenu(p);
}
if (plugin.getConfig().getBoolean("items.archievements.enabled")) {
final ItemStack random = ItemBuilder.item(
Material.valueOf(plugin.getConfig().getString("items.archievements.material")),
plugin.getConfig().getInt("items.archievements.amount"),
(short) plugin.getConfig().getInt("items.archievements.data"),
plugin.getConfig().getString("items.archievements.nameItem").replaceAll("&", "§"),
plugin.getConfig().getString("items.archievements.loreItem").replaceAll("&", "§"));
if (item.equals(random))
plugin.getArchimenu().createArchievementsMenu(p, 1);
}
if (plugin.getConfig().getBoolean("items.lobby.enabled")) {
final ItemStack random = ItemBuilder.item(
Material.valueOf(plugin.getConfig().getString("items.lobby.material")),
plugin.getConfig().getInt("items.lobby.amount"),
(short) plugin.getConfig().getInt("items.lobby.data"),
plugin.getConfig().getString("items.lobby.nameItem").replaceAll("&", "§"),
plugin.getConfig().getString("items.lobby.loreItem").replaceAll("&", "§"));
if (item.equals(random)) {
String broadcastMessage = "Yolo";
ByteArrayOutputStream bo = new ByteArrayOutputStream();
DataOutputStream out = new DataOutputStream(bo);
byte[] data = broadcastMessage.getBytes();
try {
out.writeUTF("Forward");
out.writeUTF(plugin.getConfig().getString("items.lobby.server"));
out.writeShort(data.length);
out.write(data);
p.sendPluginMessage(Main.get(), "BungeeCord", bo.toByteArray());
} catch (Exception ex) {
ex.printStackTrace();
plugin.getServer().getConsoleSender()
.sendMessage(ChatColor.RED + "Server " + ChatColor.YELLOW
+ plugin.getConfig().getString("items.lobby.server") + ChatColor.RED
+ " not found... Please check you config!");
}
}
}
}
}
if (e.getAction().equals(Action.RIGHT_CLICK_BLOCK) || e.getAction().equals(Action.LEFT_CLICK_BLOCK))
if (e.getClickedBlock().getState() instanceof Sign) {
if (p.hasPermission("bridges.admin") && p.isSneaking())
return;
if (leaving.contains(p))
return;
if (plugin.getSim().getSigns().keySet().contains(e.getClickedBlock().getLocation())) {
final GameNormalSign sign = plugin.getSim().getSigns().get(e.getClickedBlock().getLocation());
final GameDuo game = plugin.getGm().getGameByName(sign.getGame());
if (game.isState(State.WAITING) || game.isState(State.STARTING)) {
if (game.getPlayers() >= game.getMax()) {
p.sendMessage(plugin.getLang().get("messages.gameFull"));
return;
}
plugin.getGm().addPlayerGame(p, game);
return;
} else
p.sendMessage(plugin.getLang().get("messages.gameAlreadyStart"));
} else if (plugin.getSim().getFourSigns().keySet().contains(e.getClickedBlock().getLocation())) {
final GameFourSign sign = plugin.getSim().getFourSigns().get(e.getClickedBlock().getLocation());
final GameFour game = plugin.getGm().getGameFourByName(sign.getGame());
if (game.isState(FState.WAITING) || game.isState(FState.STARTING)) {
if (game.getPlayers().size() >= game.getMax()) {
p.sendMessage(plugin.getLang().get("messages.gameFull"));
return;
}
plugin.getGm().addPlayerGameFour(p, game);
return;
} else
p.sendMessage(plugin.getLang().get("messages.gameAlreadyStart"));
}
}
}
}
@EventHandler
public void onMove(PlayerMoveEvent e) {
boolean wait = false;
final Player p = e.getPlayer();
if (plugin.getGm().getGameByPlayer(p) != null) {
final GameDuo game = plugin.getGm().getGameByPlayer(p);
if (game.isState(State.WAITING) || game.isState(State.STARTING) || game.isState(State.FINISH))
if (p.getLocation().getY() < 30)
p.teleport(game.getLobby());
if (game.isState(State.INGAME)) {
if (!game.getTeamPlayer(p).getColor().equals(ChatColor.RED) && game.getTeams().get(ChatColor.RED)
.getPortal().contains(p.getLocation().getBlock().getLocation()) && wait == false) {
game.celebrateGoal(game.getTeamPlayer(p), p);
wait = true;
return;
}
if (!game.getTeamPlayer(p).getColor().equals(ChatColor.BLUE) && game.getTeams().get(ChatColor.BLUE)
.getPortal().contains(p.getLocation().getBlock().getLocation()) && wait == false) {
game.celebrateGoal(game.getTeamPlayer(p), p);
wait = true;
return;
}
if (p.getLocation().getY() < 30)
respawn(p, Tagged.getTag(p));
wait = false;
}
return;
}
if (plugin.getGm().getGameFourByPlayer(p) != null) {
final GameFour game = plugin.getGm().getGameFourByPlayer(p);
if (game.isState(FState.WAITING) || game.isState(FState.STARTING) || game.isState(FState.FINISH))
if (p.getLocation().getY() < 30)
p.teleport(game.getLobby());
if (game.isState(FState.INGAME)) {
if (!game.getSpects().contains(p)) {
if (!game.getTeams().get(ChatColor.RED).getDeath()
&& !game.getTeamPlayer(p).getColor().equals(ChatColor.RED)
&& game.getTeams().get(ChatColor.RED).getPortal()
.contains(p.getLocation().getBlock().getLocation())) {
game.celebrateGoal(game.getTeamPlayer(p), game.getTeams().get(ChatColor.RED), p);
return;
}
if (!game.getTeams().get(ChatColor.BLUE).getDeath()
&& !game.getTeamPlayer(p).getColor().equals(ChatColor.BLUE)
&& game.getTeams().get(ChatColor.BLUE).getPortal()
.contains(p.getLocation().getBlock().getLocation())) {
game.celebrateGoal(game.getTeamPlayer(p), game.getTeams().get(ChatColor.BLUE), p);
return;
}
if (!game.getTeams().get(ChatColor.YELLOW).getDeath()
&& !game.getTeamPlayer(p).getColor().equals(ChatColor.YELLOW)
&& game.getTeams().get(ChatColor.YELLOW).getPortal()
.contains(p.getLocation().getBlock().getLocation())) {
game.celebrateGoal(game.getTeamPlayer(p), game.getTeams().get(ChatColor.YELLOW), p);
return;
}
if (!game.getTeams().get(ChatColor.GREEN).getDeath()
&& !game.getTeamPlayer(p).getColor().equals(ChatColor.GREEN)
&& game.getTeams().get(ChatColor.GREEN).getPortal()
.contains(p.getLocation().getBlock().getLocation())) {
game.celebrateGoal(game.getTeamPlayer(p), game.getTeams().get(ChatColor.GREEN), p);
return;
}
}
if (p.getLocation().getY() < 30) {
if (game.getSpects().contains(p)) {
p.teleport(game.getLobby());
return;
}
respawnFour(p, Tagged.getTag(p));
}
}
return;
}
}
@EventHandler
public void onFood(FoodLevelChangeEvent e) {
if (e.getEntity() instanceof Player) {
final Player p = (Player) e.getEntity();
if (plugin.getGm().getGameByPlayer(p) != null) {
e.setCancelled(true);
return;
}
if (plugin.getGm().getGameFourByPlayer(p) != null) {
e.setCancelled(true);
return;
}
}
}
@EventHandler
public void onChat(AsyncPlayerChatEvent e) {
final Player p = e.getPlayer();
if (!plugin.getConfig().getBoolean("chat.enabled"))
return;
if (plugin.getGm().getGameByPlayer(p) != null) {
final GameDuo game = plugin.getGm().getGameByPlayer(p);
e.setCancelled(true);
if (game.isState(State.WAITING) || game.isState(State.STARTING) || game.isState(State.FINISH)
|| game.isState(State.RESTARTING)) {
for (final Player on : game.getGamePlayers())
on.sendMessage(plugin.getConfig().getString("chat.lobby").replaceAll("&", "§")
.replaceAll("<player>", p.getName()).replaceAll("<msg>", e.getMessage()));
return;
}
if (game.isState(State.INGAME) || game.isState(State.PREGAME)) {
if (e.getMessage().startsWith("!")) {
final String msg = e.getMessage();
for (final Player on : game.getGamePlayers())
on.sendMessage(plugin.getConfig().getString("chat.global").replaceAll("&", "§")
.replaceAll("<teamName>", game.getTeamPlayer(p).getTeamName())
.replaceAll("<teamColor>", game.getTeamPlayer(p).getColor() + "")
.replaceAll("<player>", p.getName()).replaceAll("<msg>", msg.replaceFirst("!", "")));
} else
for (final Player on : game.getTeamPlayer(p).getTeamPlayers())
on.sendMessage(plugin.getConfig().getString("chat.ingame").replaceAll("&", "§")
.replaceAll("<teamName>", game.getTeamPlayer(p).getTeamName())
.replaceAll("<teamColor>", game.getTeamPlayer(p).getColor() + "")
.replaceAll("<player>", p.getName()).replaceAll("<msg>", e.getMessage()));
return;
}
}
if (plugin.getGm().getGameFourByPlayer(p) != null) {
final GameFour game = plugin.getGm().getGameFourByPlayer(p);
e.setCancelled(true);
if (game.isState(FState.WAITING) || game.isState(FState.STARTING) || game.isState(FState.FINISH)
|| game.isState(FState.RESTARTING)) {
for (final Player on : game.getPlayers())
on.sendMessage(plugin.getConfig().getString("chat.lobby").replaceAll("&", "§")
.replaceAll("<player>", p.getName()).replaceAll("<msg>", e.getMessage()));
return;
}
if (game.isState(FState.INGAME) || game.isState(FState.PREGAME)) {
if (e.getMessage().startsWith("!")) {
final String msg = e.getMessage();
for (final Player on : game.getPlayers())
on.sendMessage(plugin.getConfig().getString("chat.global").replaceAll("&", "§")
.replaceAll("<teamName>", game.getTeamPlayer(p).getTeamName())
.replaceAll("<teamColor>", game.getTeamPlayer(p).getColor() + "")
.replaceAll("<player>", p.getName()).replaceAll("<msg>", msg.replaceFirst("!", "")));
} else
for (final Player on : game.getTeamPlayer(p).getTeamPlayers())
on.sendMessage(plugin.getConfig().getString("chat.ingame").replaceAll("&", "§")
.replaceAll("<teamName>", game.getTeamPlayer(p).getTeamName())
.replaceAll("<teamColor>", game.getTeamPlayer(p).getColor() + "")
.replaceAll("<player>", p.getName()).replaceAll("<msg>", e.getMessage()));
return;
}
}
}
@EventHandler
public void onDamage(EntityDamageEvent e) {
if (e.getEntity() instanceof Player) {
final Player p = (Player) e.getEntity();
if (plugin.getGm().getGameByPlayer(p) != null) {
final GameDuo game = plugin.getGm().getGameByPlayer(p);
if (e.getCause().equals(DamageCause.FALL)) {
e.setCancelled(true);
return;
}
if (game.isState(State.WAITING) || game.isState(State.STARTING) || game.isState(State.PREGAME)
|| game.isState(State.FINISH))
e.setCancelled(true);
return;
}
if (plugin.getGm().getGameFourByPlayer(p) != null) {
final GameFour game = plugin.getGm().getGameFourByPlayer(p);
if (e.getCause().equals(DamageCause.FALL)) {
e.setCancelled(true);
return;
}
if (game.isState(FState.WAITING) || game.isState(FState.STARTING) || game.isState(FState.PREGAME)
|| game.isState(FState.FINISH))
e.setCancelled(true);
return;
}
}
}
@EventHandler
public void onClose(InventoryCloseEvent e) {
final Player p = (Player) e.getPlayer();
InventoryView inv = e.getView();
if (inv.getTitle().equals(plugin.getLang().get("menus.type.title")))
page.remove(p);
if (inv.getTitle().equals(plugin.getLang().get("menus.hotbar.title"))) {
InventoryData.getInventoryData(p).restore();
InventoryData.remove(p);
}
}
@EventHandler
public void onMenu(InventoryClickEvent e) {
final Player p = (Player) e.getWhoClicked();
final InventoryView inv = e.getView();
if (inv.getTitle() == null)
return;
if (plugin.getGm().getGameFourByPlayer(p) != null || plugin.getGm().getGameByPlayer(p) != null) {
if (e.getSlotType().equals(SlotType.ARMOR))
e.setCancelled(true);
if (e.getCurrentItem() == null || e.getCurrentItem().getType() == Material.AIR)
return;
if (e.getCurrentItem().getType().equals(Material.BED) && e.getCurrentItem().getItemMeta().getDisplayName()
.equals(plugin.getLang().get("items.leave.nameItem")))
e.setCancelled(true);
}
if (plugin.getGm().getGameFourByPlayer(p) == null && plugin.getGm().getGameByPlayer(p) == null) {
if (p.getOpenInventory() != null)
if (p.getOpenInventory().getTitle().equals(plugin.getLang().get("menus.hotbar.title"))) {
if (p.getOpenInventory() != null && e.getClickedInventory() != null
&& !e.getClickedInventory().equals(p.getOpenInventory().getTopInventory()))
e.setCancelled(true);
if (p.getItemOnCursor() != null && p.getItemOnCursor().getType() != Material.AIR) {
if (e.getClick().equals(ClickType.SHIFT_RIGHT) || e.getClick().equals(ClickType.SHIFT_LEFT)
|| e.getSlotType().equals(SlotType.QUICKBAR)
|| e.getSlotType().equals(SlotType.OUTSIDE))
e.setCancelled(true);
if (!e.getSlotType().equals(SlotType.OUTSIDE)) {
if (!e.getClickedInventory().getTitle().equals(plugin.getLang().get("menus.hotbar.title")))
e.setCancelled(true);
if (e.getClickedInventory().getTitle().equals(plugin.getLang().get("menus.hotbar.title")))
if (e.getSlot() == 53 || e.getSlot() == 52 || e.getSlot() == 51 || e.getSlot() == 48
|| e.getSlot() == 47 || e.getSlot() == 46 || e.getSlot() == 45)
e.setCancelled(true);
}
}
}
if (e.getCurrentItem() == null || e.getCurrentItem().getType() == Material.AIR)
return;
final ItemStack item = e.getCurrentItem();
if (item.hasItemMeta()) {
if (plugin.getConfig().getBoolean("items.menu.enabled")) {
final ItemStack select = ItemBuilder.item(
Material.valueOf(plugin.getConfig().getString("items.menu.material")),
plugin.getConfig().getInt("items.menu.amount"),
(short) plugin.getConfig().getInt("items.menu.data"),
plugin.getConfig().getString("items.menu.nameItem").replaceAll("&", "§"),
plugin.getConfig().getString("items.menu.loreItem").replaceAll("&", "§"));
if (item.equals(select))
e.setCancelled(true);
}
if (plugin.getConfig().getBoolean("items.random.enabled")) {
final ItemStack random = ItemBuilder.item(
Material.valueOf(plugin.getConfig().getString("items.random.material")),
plugin.getConfig().getInt("items.random.amount"),
(short) plugin.getConfig().getInt("items.random.data"),
plugin.getConfig().getString("items.random.nameItem").replaceAll("&", "§"),
plugin.getConfig().getString("items.random.loreItem").replaceAll("&", "§"));
if (item.equals(random))
e.setCancelled(true);
}
if (plugin.getConfig().getBoolean("items.hotbar.enabled")) {
final ItemStack random = ItemBuilder.item(
Material.valueOf(plugin.getConfig().getString("items.hotbar.material")),
plugin.getConfig().getInt("items.hotbar.amount"),
(short) plugin.getConfig().getInt("items.hotbar.data"),
plugin.getConfig().getString("items.hotbar.nameItem").replaceAll("&", "§"),
plugin.getConfig().getString("items.hotbar.loreItem").replaceAll("&", "§"));
if (item.equals(random))
e.setCancelled(true);
}
if (plugin.getConfig().getBoolean("items.shop.enabled")) {
final ItemStack random = ItemBuilder.item(
Material.valueOf(plugin.getConfig().getString("items.shop.material")),
plugin.getConfig().getInt("items.shop.amount"),
(short) plugin.getConfig().getInt("items.shop.data"),
plugin.getConfig().getString("items.shop.nameItem").replaceAll("&", "§"),
plugin.getConfig().getString("items.shop.loreItem").replaceAll("&", "§"));
if (item.equals(random))
e.setCancelled(true);
}
if (plugin.getConfig().getBoolean("items.lobby.enabled")) {
final ItemStack random = ItemBuilder.item(
Material.valueOf(plugin.getConfig().getString("items.lobby.material")),
plugin.getConfig().getInt("items.lobby.amount"),
(short) plugin.getConfig().getInt("items.lobby.data"),
plugin.getConfig().getString("items.lobby.nameItem").replaceAll("&", "§"),
plugin.getConfig().getString("items.lobby.loreItem").replaceAll("&", "§"));
if (item.equals(random))
e.setCancelled(true);
}
if (plugin.getConfig().getBoolean("items.archievements.enabled")) {
final ItemStack random = ItemBuilder.item(
Material.valueOf(plugin.getConfig().getString("items.archievements.material")),
plugin.getConfig().getInt("items.archievements.amount"),
(short) plugin.getConfig().getInt("items.archievements.data"),
plugin.getConfig().getString("items.archievements.nameItem").replaceAll("&", "§"),
plugin.getConfig().getString("items.archievements.loreItem").replaceAll("&", "§"));
if (item.equals(random))
e.setCancelled(true);
}
}
}
if (inv.getTitle().equals(plugin.getAchievement().get("title").replaceAll("<player>", p.getName()))) {
e.setCancelled(true);
if (e.getCurrentItem() == null || e.getCurrentItem().getType() == Material.AIR)
return;
if (e.getCurrentItem().getItemMeta().getDisplayName().equals(plugin.getAchievement().get("close.name"))) {
p.getOpenInventory().close();
e.setCancelled(true);
}
if (e.getCurrentItem().getItemMeta().getDisplayName()
.equals(plugin.getAchievement().get("next").replaceAll("<next>", "→"))) {
if (!page.containsKey(p))
page.put(p, 2);
else
page.put(p, page.get(p) + 1);
plugin.getArchimenu().createArchievementsMenu(p, page.get(p));
e.setCancelled(true);
}
if (e.getCurrentItem().getItemMeta().getDisplayName()
.equals(plugin.getAchievement().get("back").replaceAll("<back>", "§?"))) {
page.put(p, page.get(p) - 1);
plugin.getArchimenu().createArchievementsMenu(p, page.get(p));
e.setCancelled(true);
}
}
if (inv.getTitle().equals(plugin.getLang().get("shop.title"))) {
e.setCancelled(true);
if (e.getCurrentItem() == null || e.getCurrentItem().getType() == Material.AIR)
return;
if (e.getCurrentItem().getItemMeta().getDisplayName().equals(plugin.getLang().get("shop.glass.nameItem")))
plugin.getGlam().createGlassMenu(p);
if (e.getCurrentItem().getItemMeta().getDisplayName().equals(plugin.getLang().get("shop.arrow.nameItem")))
plugin.getAmu().createArrowMenu(p);
if (e.getCurrentItem().getItemMeta().getDisplayName().equals(plugin.getLang().get("shop.close.nameItem")))
p.getOpenInventory().close();
}
if (inv.getTitle().equals(plugin.getCages().get("title"))) {
e.setCancelled(true);
if (e.getCurrentItem() == null || e.getCurrentItem().getType() == Material.AIR)
return;
for (final Cage cage : plugin.getCm().getCages().values())
if (cage.getSlot() == e.getSlot())
if (!p.hasPermission(cage.getPermission())) {
if (!cage.isBuy())
p.sendMessage(plugin.getLang().get("messages.noBuy"));
else if (cage.getPrice() > PlayerStat.getPlayerStat(p).getCoins())
p.sendMessage(plugin.getLang().get("messages.noMoney"));
else if (cage.isBuy() && cage.getPrice() <= PlayerStat.getPlayerStat(p).getCoins()) {
Bukkit.dispatchCommand(Bukkit.getConsoleSender(),
plugin.getConfig().getString("permFormat").replaceAll("<name>", p.getName())
.replaceAll("<permission>", cage.getPermission()));
PlayerStat.getPlayerStat(p).removeCoins(cage.getPrice());
p.getOpenInventory().close();
new BukkitRunnable() {
@Override
public void run() {
plugin.getGlam().createGlassMenu(p);
}
}.runTaskLater(plugin, 2L);
p.playSound(p.getLocation(), Sound.valueOf(plugin.getSounds().get("sounds.shop.buy")), 1.0f,
1.0f);
p.sendMessage(
plugin.getLang().get("messages.buyCage").replaceAll("<cage>", cage.getName()));
}
} else {
p.sendMessage(
plugin.getLang().get("messages.selectedCage").replaceAll("<cage>", cage.getName()));
PlayerStat.getPlayerStat(p).setCage(cage.getId());
}
}
if (inv.getTitle().equals(plugin.getArrow().get("title"))) {
e.setCancelled(true);
if (e.getCurrentItem() == null || e.getCurrentItem().getType() == Material.AIR)
return;
for (final cx.sfy.TheBridge.cosmetics.Arrow arrow : plugin.getArm().getArrows().values())
if (arrow.getSlot() == e.getSlot())
if (!p.hasPermission(arrow.getPermission())) {
if (!arrow.isBuy())
p.sendMessage(plugin.getLang().get("messages.noBuy"));
else if (arrow.getPrice() > PlayerStat.getPlayerStat(p).getCoins())
p.sendMessage(plugin.getLang().get("messages.noMoney"));
else if (arrow.isBuy() && arrow.getPrice() <= PlayerStat.getPlayerStat(p).getCoins()) {
Bukkit.dispatchCommand(Bukkit.getConsoleSender(),
plugin.getConfig().getString("permFormat").replaceAll("<name>", p.getName())
.replaceAll("<permission>", arrow.getPermission()));
PlayerStat.getPlayerStat(p).removeCoins(arrow.getPrice());
p.getOpenInventory().close();
new BukkitRunnable() {
@Override
public void run() {
plugin.getAmu().createArrowMenu(p);
}
}.runTaskLater(plugin, 2L);
p.playSound(p.getLocation(), Sound.valueOf(plugin.getSounds().get("sounds.shop.buy")), 1.0f,
1.0f);
p.sendMessage(
plugin.getLang().get("messages.buyTrail").replaceAll("<trail>", arrow.getName()));
}
} else {
p.sendMessage(
plugin.getLang().get("messages.selectedTrail").replaceAll("<trail>", arrow.getName()));
PlayerStat.getPlayerStat(p).setArrow(arrow.getId());
}
}
if (inv.getTitle().equals(plugin.getLang().get("menus.type.title"))) {
e.setCancelled(true);
if (e.getCurrentItem() == null || e.getCurrentItem().getType() == Material.AIR)
return;
if (e.getCurrentItem().getItemMeta().getDisplayName()
.equals(plugin.getLang().get("menus.type.normal.nameItem")))
plugin.getGmu().openGameMenu(p);
if (e.getCurrentItem().getItemMeta().getDisplayName()
.equals(plugin.getLang().get("menus.type.four.nameItem")))
plugin.getGmu().openGameFourMenu(p);
}
if (inv.getTitle().equals(plugin.getLang().get("menus.hotbar.title"))) {
if (e.getCurrentItem() == null || e.getCurrentItem().getType() == Material.AIR) {
e.setCancelled(true);
return;
}
if (!e.getCurrentItem().hasItemMeta())
return;
if (!e.getCurrentItem().getItemMeta().hasDisplayName())
return;
if (e.getCurrentItem().getItemMeta().getDisplayName().equals("§a↑ §eInventory"))
e.setCancelled(true);
if (e.getCurrentItem().getItemMeta().getDisplayName()
.equals(plugin.getLang().get("menus.close.nameItem"))) {
e.setCancelled(true);
p.getOpenInventory().close();
}
if (e.getCurrentItem().getItemMeta().getDisplayName().equals(plugin.getLang().get("menus.save.nameItem"))) {
plugin.getHotbar().saveLayout(p, e.getInventory());
e.setCancelled(true);
}
}
if (inv.getTitle().equals(plugin.getLang().get("menus.game.title"))) {
if (e.getCurrentItem() == null || e.getCurrentItem().getType() == Material.AIR
|| e.getSlotType().equals(SlotType.OUTSIDE))
return;
e.setCancelled(true);
if (plugin.getGm().getGameByPlayer(p) == null)
if (e.getCurrentItem().getItemMeta().getDisplayName().contains("§a")) {
final String arena = e.getCurrentItem().getItemMeta().getDisplayName().replaceAll("§a", "");
final GameDuo game = plugin.getGm().getGameByName(arena);
if (game.getPlayers() >= game.getMax()) {
p.sendMessage(plugin.getLang().get("messages.gameFull"));
return;
}
if (game.isState(State.WAITING) || game.isState(State.STARTING))
plugin.getGm().addPlayerGame(p, game);
else
p.sendMessage(plugin.getLang().get("messages.gameAlreadyStart"));
}
}
if (inv.getTitle().equals(plugin.getLang().get("menus.gameFour.title"))) {
if (e.getCurrentItem() == null || e.getCurrentItem().getType() == Material.AIR
|| e.getSlotType().equals(SlotType.OUTSIDE))
return;
e.setCancelled(true);
if (plugin.getGm().getGameFourByPlayer(p) == null)
if (e.getCurrentItem().getItemMeta().getDisplayName().contains("§a")) {
final String arena = e.getCurrentItem().getItemMeta().getDisplayName().replaceAll("§a", "");
final GameFour game = plugin.getGm().getGameFourByName(arena);
if (game == null)
return;
if (game.getPlayers().size() >= game.getMax()) {
p.sendMessage(plugin.getLang().get("messages.gameFull"));
return;
}
if (game.isState(FState.WAITING) || game.isState(FState.STARTING))
plugin.getGm().addPlayerGameFour(p, game);
else
p.sendMessage(plugin.getLang().get("messages.gameAlreadyStart"));
}
}
if (plugin.getGm().getGameByPlayer(p) != null)
if (inv.getTitle().equals(plugin.getLang().get("menus.team.title"))) {
e.setCancelled(true);
final GameDuo game = plugin.getGm().getGameByPlayer(p);
if (e.getCurrentItem().getItemMeta().getDisplayName().contains("§9")) {
if (p.hasPermission("bridges.bypass")) {
if (game.getTeamPlayer(p) != null)
game.removeAllPlayerTeam(p);
game.addPlayerTeam(p, game.getTeams().get(ChatColor.BLUE));
p.sendMessage(plugin.getLang().get("messages.joinedTeam").replaceAll("<team>",
"§9" + plugin.getConfig().getString("names.blue")));
plugin.getTem().openTeamNormalMenu(p);
return;
}
if (game.getTeamPlayer(p) != null)
game.removeAllPlayerTeam(p);
if (game.getTeams().get(ChatColor.BLUE).getTeamSize() < game.getTeamSize() && game.getTeams()
.get(ChatColor.BLUE).getTeamSize() <= game.getTeams().get(ChatColor.RED).getTeamSize()) {
game.addPlayerTeam(p, game.getTeams().get(ChatColor.BLUE));
p.sendMessage(plugin.getLang().get("messages.joinedTeam").replaceAll("<team>",
"§9" + plugin.getConfig().getString("names.blue")));
plugin.getTem().openTeamNormalMenu(p);
} else
p.sendMessage(plugin.getLang().get("messages.unbalancedTeam"));
}
if (e.getCurrentItem().getItemMeta().getDisplayName().contains("§c")) {
if (p.hasPermission("bridges.bypass")) {
if (game.getTeamPlayer(p) != null)
game.removeAllPlayerTeam(p);
game.addPlayerTeam(p, game.getTeams().get(ChatColor.RED));
p.sendMessage(plugin.getLang().get("messages.joinedTeam").replaceAll("<team>",
"§c" + plugin.getConfig().getString("names.red")));
plugin.getTem().openTeamNormalMenu(p);
return;
}
if (game.getTeamPlayer(p) != null)
game.removeAllPlayerTeam(p);
if (game.getTeams().get(ChatColor.RED).getTeamSize() < game.getTeamSize() && game.getTeams()
.get(ChatColor.RED).getTeamSize() <= game.getTeams().get(ChatColor.BLUE).getTeamSize()) {
game.addPlayerTeam(p, game.getTeams().get(ChatColor.RED));
p.sendMessage(plugin.getLang().get("messages.joinedTeam").replaceAll("<team>",
"§c" + plugin.getConfig().getString("names.red")));
plugin.getTem().openTeamNormalMenu(p);
} else
p.sendMessage(plugin.getLang().get("messages.unbalancedTeam"));
}
}
if (plugin.getGm().getGameFourByPlayer(p) != null) {
if (inv.getTitle().equals(plugin.getLang().get("menus.options.title"))) {
e.setCancelled(true);
if (Bukkit.getPlayer(e.getCurrentItem().getItemMeta().getDisplayName().replaceAll("§7", "")) == null)
return;
p.teleport(Bukkit.getPlayer(e.getCurrentItem().getItemMeta().getDisplayName().replaceAll("§7", "")));
}
if (e.getInventory().getName().equals(plugin.getLang().get("menus.options.title"))) {
if (e.getCurrentItem() == null || e.getCurrentItem().getType() == Material.AIR)
return;
e.setCancelled(true);
if (e.getCurrentItem().getItemMeta().getDisplayName()
.equals(plugin.getLang().get("menus.options.velocidad.nameItem").replaceAll("<#>", "I")))
p.setFlySpeed(0.2f);
if (e.getCurrentItem().getItemMeta().getDisplayName()
.equals(plugin.getLang().get("menus.options.velocidad.nameItem").replaceAll("<#>", "II")))
p.setFlySpeed(0.4f);
if (e.getCurrentItem().getItemMeta().getDisplayName()
.equals(plugin.getLang().get("menus.options.velocidad.nameItem").replaceAll("<#>", "III")))
p.setFlySpeed(0.6f);
if (e.getCurrentItem().getItemMeta().getDisplayName()
.equals(plugin.getLang().get("menus.options.velocidad.nameItem").replaceAll("<#>", "IV")))
p.setFlySpeed(0.8f);
if (e.getCurrentItem().getItemMeta().getDisplayName()
.equals(plugin.getLang().get("menus.options.velocidad.nameItem").replaceAll("<#>", "V")))
p.setFlySpeed(1.0f);
if (e.getCurrentItem().getItemMeta().getDisplayName().equals(
plugin.getLang().get("menus.options.vision.nameItem").replaceAll("<type>", "§aActivar"))) {
plugin.getSom().settings.put(p, true);
p.addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION, 9999, 1, true));
plugin.getSom().openOptionsMenu(p);
}
if (e.getCurrentItem().getItemMeta().getDisplayName().equals(
plugin.getLang().get("menus.options.vision.nameItem").replaceAll("<type>", "§cDesactivar"))) {
plugin.getSom().settings.put(p, false);
p.removePotionEffect(PotionEffectType.NIGHT_VISION);
plugin.getSom().openOptionsMenu(p);
}
}
if (inv.getTitle().equals(plugin.getLang().get("menus.teamFour.title"))) {
e.setCancelled(true);
final GameFour game = plugin.getGm().getGameFourByPlayer(p);
if (e.getCurrentItem().getItemMeta().getDisplayName().contains("§9")) {
if (p.hasPermission("bridges.bypass")) {
if (game.getTeamPlayer(p) != null)
game.removeAllPlayerTeam(p);
game.addPlayerTeam(p, game.getTeams().get(ChatColor.BLUE));
p.sendMessage(plugin.getLang().get("messages.joinedTeam").replaceAll("<team>",
"§9" + plugin.getConfig().getString("names.blue")));
plugin.getTem().openTeamFourMenu(p);
return;
}
if (game.getTeamPlayer(p) != null)
game.removeAllPlayerTeam(p);
if (game.getTeams().get(ChatColor.BLUE).getTeamSize() < game.getTeamSize()
&& game.getTeams().get(ChatColor.BLUE).getTeamSize() <= game.getTeams().get(ChatColor.RED)
.getTeamSize()
&& game.getTeams().get(ChatColor.BLUE).getTeamSize() <= game.getTeams()
.get(ChatColor.YELLOW).getTeamSize()
&& game.getTeams().get(ChatColor.BLUE).getTeamSize() <= game.getTeams().get(ChatColor.GREEN)
.getTeamSize()) {
game.addPlayerTeam(p, game.getTeams().get(ChatColor.BLUE));
p.sendMessage(plugin.getLang().get("messages.joinedTeam").replaceAll("<team>",
"§9" + plugin.getConfig().getString("names.blue")));
plugin.getTem().openTeamFourMenu(p);
} else
p.sendMessage(plugin.getLang().get("messages.unbalancedTeam"));
}
if (e.getCurrentItem().getItemMeta().getDisplayName().contains("§c")) {
if (p.hasPermission("bridges.bypass")) {
if (game.getTeamPlayer(p) != null)
game.removeAllPlayerTeam(p);
game.addPlayerTeam(p, game.getTeams().get(ChatColor.RED));
p.sendMessage(plugin.getLang().get("messages.joinedTeam").replaceAll("<team>",
"§c" + plugin.getConfig().getString("names.red")));
plugin.getTem().openTeamFourMenu(p);
return;
}
if (game.getTeamPlayer(p) != null)
game.removeAllPlayerTeam(p);
if (game.getTeams().get(ChatColor.RED).getTeamSize() < game.getTeamSize()
&& game.getTeams().get(ChatColor.RED).getTeamSize() <= game.getTeams().get(ChatColor.BLUE)
.getTeamSize()
&& game.getTeams().get(ChatColor.RED).getTeamSize() <= game.getTeams().get(ChatColor.YELLOW)
.getTeamSize()
&& game.getTeams().get(ChatColor.RED).getTeamSize() <= game.getTeams().get(ChatColor.GREEN)
.getTeamSize()) {
game.addPlayerTeam(p, game.getTeams().get(ChatColor.RED));
p.sendMessage(plugin.getLang().get("messages.joinedTeam").replaceAll("<team>",
"§c" + plugin.getConfig().getString("names.red")));
plugin.getTem().openTeamFourMenu(p);
} else
p.sendMessage(plugin.getLang().get("messages.unbalancedTeam"));
}
if (e.getCurrentItem().getItemMeta().getDisplayName().contains("§a")) {
if (p.hasPermission("bridges.bypass")) {
if (game.getTeamPlayer(p) != null)
game.removeAllPlayerTeam(p);
game.addPlayerTeam(p, game.getTeams().get(ChatColor.GREEN));
p.sendMessage(plugin.getLang().get("messages.joinedTeam").replaceAll("<team>",
"§a" + plugin.getConfig().getString("names.green")));
plugin.getTem().openTeamFourMenu(p);
return;
}
if (game.getTeamPlayer(p) != null)
game.removeAllPlayerTeam(p);
if (game.getTeams().get(ChatColor.GREEN).getTeamSize() < game.getTeamSize()
&& game.getTeams().get(ChatColor.GREEN).getTeamSize() <= game.getTeams().get(ChatColor.RED)
.getTeamSize()
&& game.getTeams().get(ChatColor.GREEN).getTeamSize() <= game.getTeams()
.get(ChatColor.YELLOW).getTeamSize()
&& game.getTeams().get(ChatColor.GREEN).getTeamSize() <= game.getTeams().get(ChatColor.BLUE)
.getTeamSize()) {
game.addPlayerTeam(p, game.getTeams().get(ChatColor.GREEN));
p.sendMessage(plugin.getLang().get("messages.joinedTeam").replaceAll("<team>",
"§a" + plugin.getConfig().getString("names.green")));
plugin.getTem().openTeamFourMenu(p);
} else
p.sendMessage(plugin.getLang().get("messages.unbalancedTeam"));
}
if (e.getCurrentItem().getItemMeta().getDisplayName().contains("§e")) {
if (p.hasPermission("bridges.bypass")) {
if (game.getTeamPlayer(p) != null)
game.removeAllPlayerTeam(p);
game.addPlayerTeam(p, game.getTeams().get(ChatColor.YELLOW));
p.sendMessage(plugin.getLang().get("messages.joinedTeam").replaceAll("<team>",
"§e" + plugin.getConfig().getString("names.yellow")));
plugin.getTem().openTeamFourMenu(p);
return;
}
if (game.getTeamPlayer(p) != null)
game.removeAllPlayerTeam(p);
if (game.getTeams().get(ChatColor.YELLOW).getTeamSize() < game.getTeamSize()
&& game.getTeams().get(ChatColor.YELLOW).getTeamSize() <= game.getTeams().get(ChatColor.RED)
.getTeamSize()
&& game.getTeams().get(ChatColor.YELLOW).getTeamSize() <= game.getTeams()
.get(ChatColor.BLUE).getTeamSize()
&& game.getTeams().get(ChatColor.YELLOW).getTeamSize() <= game.getTeams()
.get(ChatColor.GREEN).getTeamSize()) {
game.addPlayerTeam(p, game.getTeams().get(ChatColor.YELLOW));
p.sendMessage(plugin.getLang().get("messages.joinedTeam").replaceAll("<team>",
"§e" + plugin.getConfig().getString("names.yellow")));
plugin.getTem().openTeamFourMenu(p);
} else
p.sendMessage(plugin.getLang().get("messages.unbalancedTeam"));
}
}
}
}
@EventHandler
public void onShoot(EntityShootBowEvent e) {
if (e.getEntity() instanceof Player) {
final Player p = (Player) e.getEntity();
if (bow.contains(p)) {
p.sendMessage(plugin.getLang().get("messages.noShoot"));
e.setCancelled(true);
} else {
timeBow(p);
bow.add(p);
}
}
}
public void timeBow(Player p) {
p.setLevel(plugin.getConfig().getInt("bow.seconds"));
p.setExp(1.0F);
new BukkitRunnable() {
@Override
public void run() {
if (p.getLevel() - 1 < 0) {
p.setLevel(0);
p.setExp(0.0F);
bow.remove(p);
p.getInventory().addItem(new ItemStack(Material.ARROW, 1, (short) 0));
cancel();
} else {
p.setLevel(p.getLevel() - 1);
p.setExp(1.0F);
new BukkitRunnable() {
@Override
public void run() {
if (p.getExp() - 0.05F < 0) {
p.setExp(0.0F);
cancel();
} else
p.setExp(p.getExp() - 0.05F);
}
}.runTaskTimer(plugin, 0, 2);
}
}
}.runTaskTimer(plugin, 0, 20);
}
@EventHandler
public void onEntityDamage(EntityDamageByEntityEvent e) {
if (e.getEntity() instanceof Player) {
if (e.getDamager() instanceof Player) {
final Player p = (Player) e.getEntity();
final Player d = (Player) e.getDamager();
if (plugin.getGm().getGameByPlayer(p) != null) {
final GameDuo game = plugin.getGm().getGameByPlayer(p);
if (game.isState(State.WAITING) || game.isState(State.STARTING) || game.isState(State.PREGAME)) {
e.setCancelled(true);
return;
}
if (game.getTeamPlayer(p).equals(game.getTeamPlayer(d))) {
e.setCancelled(true);
return;
}
Tagged.setTag(p, d);
if (e.getFinalDamage() >= p.getHealth()) {
e.setDamage(0);
respawn(p, Tagged.getTag(p));
}
}
if (plugin.getGm().getGameFourByPlayer(p) != null) {
final GameFour game = plugin.getGm().getGameFourByPlayer(p);
if (game.isState(FState.WAITING) || game.isState(FState.STARTING) || game.isState(FState.PREGAME)) {
e.setCancelled(true);
return;
}
if (game.getTeamPlayer(p).equals(game.getTeamPlayer(d))) {
e.setCancelled(true);
return;
}
Tagged.setTag(p, d);
if (e.getFinalDamage() >= p.getHealth()) {
e.setDamage(0);
respawnFour(p, Tagged.getTag(p));
}
}
}
if (e.getDamager() instanceof Projectile) {
final Projectile proj = (Projectile) e.getDamager();
if (proj.getShooter() instanceof Player) {
final Player p = (Player) e.getEntity();
final Player d = (Player) proj.getShooter();
if (plugin.getGm().getGameByPlayer(p) != null) {
final GameDuo game = plugin.getGm().getGameByPlayer(p);
if (game.isState(State.WAITING) || game.isState(State.STARTING)
|| game.isState(State.PREGAME)) {
e.setCancelled(true);
return;
}
if (game.getTeamPlayer(p).equals(game.getTeamPlayer(d))) {
e.setCancelled(true);
return;
}
Tagged.setTag(p, d);
if (e.getFinalDamage() >= p.getHealth()) {
e.setDamage(0);
respawn(p, Tagged.getTag(p));
}
}
if (plugin.getGm().getGameFourByPlayer(p) != null) {
final GameFour game = plugin.getGm().getGameFourByPlayer(p);
if (game.isState(FState.WAITING) || game.isState(FState.STARTING)
|| game.isState(FState.PREGAME)) {
e.setCancelled(true);
return;
}
if (game.getTeamPlayer(p).equals(game.getTeamPlayer(d))) {
e.setCancelled(true);
return;
}
Tagged.setTag(p, d);
if (e.getFinalDamage() >= p.getHealth()) {
e.setDamage(0);
respawnFour(p, Tagged.getTag(p));
}
}
}
}
}
}
@EventHandler
public void onConsume(PlayerItemConsumeEvent e) {
final Player p = e.getPlayer();
if (plugin.getGm().getGameByPlayer(p) != null)
if (e.getItem().getType().equals(Material.GOLDEN_APPLE)) {
p.setHealth(p.getMaxHealth());
if (plugin.getConfig().getBoolean("remove.absorption") == true)
new BukkitRunnable() {
@Override
public void run() {
p.removePotionEffect(PotionEffectType.ABSORPTION);
}
}.runTaskLater(plugin, 1);
if (plugin.getConfig().getBoolean("remove.regeneration") == true)
new BukkitRunnable() {
@Override
public void run() {
p.removePotionEffect(PotionEffectType.REGENERATION);
}
}.runTaskLater(plugin, 1);
}
if (plugin.getGm().getGameFourByPlayer(p) != null)
if (e.getItem().getType().equals(Material.GOLDEN_APPLE)) {
p.setHealth(p.getMaxHealth());
if (plugin.getConfig().getBoolean("remove.absorption") == true)
new BukkitRunnable() {
@Override
public void run() {
p.removePotionEffect(PotionEffectType.ABSORPTION);
}
}.runTaskLater(plugin, 1);
if (plugin.getConfig().getBoolean("remove.regeneration") == true)
new BukkitRunnable() {
@Override
public void run() {
p.removePotionEffect(PotionEffectType.REGENERATION);
}
}.runTaskLater(plugin, 1);
}
}
@EventHandler
public void onQuit(PlayerQuitEvent e) {
final Player p = e.getPlayer();
if (plugin.getGm().getGameByPlayer(p) != null) {
final GameDuo game = plugin.getGm().getGameByPlayer(p);
game.removePlayer(p);
if (game.getTeamsAlive() == 1)
game.checkWin(p, game.getLastTeam(), game.getLastTeam().getGoals());
}
if (plugin.getGm().getGameFourByPlayer(p) != null) {
final GameFour game = plugin.getGm().getGameFourByPlayer(p);
game.removePlayer(p);
if (game.getTeamsAlive() == 1)
game.checkWin(game.getLastTeam(), game.getTeamPlayer(p), game.getLastTeam().getTeamPlayers().get(0));
}
for (final Player on : plugin.getSb().getSB().keySet())
plugin.getSb().update(on);
if (InventoryData.getInventoryData(p) != null) {
InventoryData.getInventoryData(p).restore();
InventoryData.remove(p);
}
plugin.getSb().remove(p);
plugin.getTop().removeHolo(p);
plugin.getDb().saveData(PlayerStat.getPlayerStat(p));
plugin.getCb().saveData(PlayerStat.getPlayerStat(p));
}
@EventHandler
public void onKick(PlayerKickEvent e) {
final Player p = e.getPlayer();
if (plugin.getGm().getGameByPlayer(p) != null) {
final GameDuo game = plugin.getGm().getGameByPlayer(p);
game.removePlayer(p);
if (game.getTeamsAlive() == 1)
game.checkWin(p, game.getLastTeam(), game.getLastTeam().getGoals());
}
if (plugin.getGm().getGameFourByPlayer(p) != null) {
final GameFour game = plugin.getGm().getGameFourByPlayer(p);
game.removePlayer(p);
if (game.getTeamsAlive() == 1)
game.checkWin(game.getLastTeam(), game.getTeamPlayer(p), game.getLastTeam().getTeamPlayers().get(0));
}
for (final Player on : plugin.getSb().getSB().keySet())
plugin.getSb().update(on);
if (InventoryData.getInventoryData(p) != null) {
InventoryData.getInventoryData(p).restore();
InventoryData.remove(p);
}
plugin.getSb().remove(p);
plugin.getTop().removeHolo(p);
plugin.getDb().saveData(PlayerStat.getPlayerStat(p));
plugin.getCb().saveData(PlayerStat.getPlayerStat(p));
}
@EventHandler
public void onBreak(BlockBreakEvent e) {
final Player p = e.getPlayer();
if (plugin.getGm().getGameByPlayer(p) != null) {
final GameDuo game = plugin.getGm().getGameByPlayer(p);
if (game.isState(State.WAITING) || game.isState(State.STARTING) || game.isState(State.PREGAME)
|| game.isState(State.PREGAME) || game.isState(State.FINISH) || game.isState(State.RESTARTING))
e.setCancelled(true);
if (game.isState(State.INGAME))
if (!game.getPlaced().contains(e.getBlock().getLocation())) {
e.setCancelled(true);
p.sendMessage(plugin.getLang().get("messages.noBreak"));
} else
PlayerStat.getPlayerStat(p).addBroken();
return;
}
if (plugin.getGm().getGameFourByPlayer(p) != null) {
final GameFour game = plugin.getGm().getGameFourByPlayer(p);
if (game.isState(FState.WAITING) || game.isState(FState.STARTING) || game.isState(FState.PREGAME)
|| game.isState(FState.PREGAME) || game.isState(FState.FINISH) || game.isState(FState.RESTARTING))
e.setCancelled(true);
if (game.isState(FState.INGAME))
if (!game.getPlaced().contains(e.getBlock().getLocation())) {
e.setCancelled(true);
p.sendMessage(plugin.getLang().get("messages.noBreak"));
} else
PlayerStat.getPlayerStat(p).addBroken();
return;
}
}
@EventHandler
public void onPlace(BlockPlaceEvent e) {
final Player p = e.getPlayer();
if (plugin.getGm().getGameByPlayer(p) != null) {
final GameDuo game = plugin.getGm().getGameByPlayer(p);
if (game.isState(State.WAITING) || game.isState(State.STARTING) || game.isState(State.PREGAME)
|| game.isState(State.FINISH) || game.isState(State.RESTARTING))
e.setCancelled(true);
if (game.isState(State.INGAME))
if (!game.getBuild().contains(e.getBlockPlaced().getLocation())) {
e.setCancelled(true);
p.sendMessage(plugin.getLang().get("messages.noPlace"));
} else {
PlayerStat.getPlayerStat(p).addPlaced();
game.addPlace(e.getBlockPlaced().getLocation());
}
return;
}
if (plugin.getGm().getGameFourByPlayer(p) != null) {
final GameFour game = plugin.getGm().getGameFourByPlayer(p);
if (game.isState(FState.WAITING) || game.isState(FState.STARTING) || game.isState(FState.PREGAME)
|| game.isState(FState.PREGAME) || game.isState(FState.FINISH) || game.isState(FState.RESTARTING))
e.setCancelled(true);
if (game.isState(FState.INGAME))
if (!game.getBuild().contains(e.getBlockPlaced().getLocation())) {
e.setCancelled(true);
p.sendMessage(plugin.getLang().get("messages.noPlace"));
} else {
PlayerStat.getPlayerStat(p).addPlaced();
game.addPlace(e.getBlockPlaced().getLocation());
}
return;
}
}
public void respawn(Player d, Player k) {
d.closeInventory();
d.getInventory().clear();
d.setHealth(d.getMaxHealth());
if (k != null) {
final GameDuo game = plugin.getGm().getGameByPlayer(k);
if (game == null)
return;
game.addKill(k);
PlayerStat.getPlayerStat(k).addNormalKills();
d.teleport(game.getTeamPlayer(d).getTeamRespawn());
game.giveKit(d, game.getTeamPlayer(d));
if (d.getLastDamageCause() == null)
for (final Player on : game.getGamePlayers())
on.sendMessage(plugin.getLang().get("deathMessages.custom")
.replaceAll("<TDColor>", game.getTeamPlayer(d).getColor() + "")
.replaceAll("<TKColor>", game.getTeamPlayer(k).getColor() + "")
.replaceAll("<death>", d.getName()).replaceAll("<player>", k.getName())
+ plugin.getLang().get("deathMessages.player")
.replaceAll("<TDColor>", game.getTeamPlayer(d).getColor() + "")
.replaceAll("<TKColor>", game.getTeamPlayer(k).getColor() + "")
.replaceAll("<death>", d.getName()).replaceAll("<player>", k.getName()));
else {
final DamageCause cause = d.getLastDamageCause().getCause();
if (cause.equals(DamageCause.VOID))
for (final Player on : game.getGamePlayers())
on.sendMessage(plugin.getLang().get("deathMessages.void")
.replaceAll("<TDColor>", game.getTeamPlayer(d).getColor() + "")
.replaceAll("<TKColor>", game.getTeamPlayer(k).getColor() + "")
.replaceAll("<death>", d.getName()).replaceAll("<player>", k.getName())
+ plugin.getLang().get("deathMessages.player")
.replaceAll("<TDColor>", game.getTeamPlayer(d).getColor() + "")
.replaceAll("<TKColor>", game.getTeamPlayer(k).getColor() + "")
.replaceAll("<death>", d.getName()).replaceAll("<player>", k.getName()));
else if (cause.equals(DamageCause.ENTITY_ATTACK))
for (final Player on : game.getGamePlayers())
on.sendMessage(plugin.getLang().get("deathMessages.damage")
.replaceAll("<TDColor>", game.getTeamPlayer(d).getColor() + "")
.replaceAll("<TKColor>", game.getTeamPlayer(k).getColor() + "")
.replaceAll("<death>", d.getName()).replaceAll("<player>", k.getName())
+ plugin.getLang().get("deathMessages.player")
.replaceAll("<TDColor>", game.getTeamPlayer(d).getColor() + "")
.replaceAll("<TKColor>", game.getTeamPlayer(k).getColor() + "")
.replaceAll("<death>", d.getName()).replaceAll("<player>", k.getName()));
else
for (final Player on : game.getGamePlayers())
on.sendMessage(plugin.getLang().get("deathMessages.custom")
.replaceAll("<TDColor>", game.getTeamPlayer(d).getColor() + "")
.replaceAll("<TKColor>", game.getTeamPlayer(k).getColor() + "")
.replaceAll("<death>", d.getName()).replaceAll("<player>", k.getName())
+ plugin.getLang().get("deathMessages.player")
.replaceAll("<TDColor>", game.getTeamPlayer(d).getColor() + "")
.replaceAll("<TKColor>", game.getTeamPlayer(k).getColor() + "")
.replaceAll("<death>", d.getName()).replaceAll("<player>", k.getName()));
}
} else {
final GameDuo game = plugin.getGm().getGameByPlayer(d);
d.teleport(game.getTeamPlayer(d).getTeamRespawn());
game.giveKit(d, game.getTeamPlayer(d));
if (d.getLastDamageCause() == null)
for (final Player on : game.getGamePlayers())
on.sendMessage(plugin.getLang().get("deathMessages.custom")
.replaceAll("<TDColor>", game.getTeamPlayer(d).getColor() + "")
.replaceAll("<death>", d.getName()) + plugin.getLang().get("deathMessages.none"));
else {
final DamageCause cause = d.getLastDamageCause().getCause();
if (cause.equals(DamageCause.VOID))
for (final Player on : game.getGamePlayers())
on.sendMessage(plugin.getLang().get("deathMessages.void")
.replaceAll("<TDColor>", game.getTeamPlayer(d).getColor() + "")
.replaceAll("<death>", d.getName()) + plugin.getLang().get("deathMessages.none"));
else if (cause.equals(DamageCause.ENTITY_ATTACK))
for (final Player on : game.getGamePlayers())
on.sendMessage(plugin.getLang().get("deathMessages.damage")
.replaceAll("<TDColor>", game.getTeamPlayer(d).getColor() + "")
.replaceAll("<death>", d.getName()) + plugin.getLang().get("deathMessages.none"));
else
for (final Player on : game.getGamePlayers())
on.sendMessage(plugin.getLang().get("deathMessages.custom")
.replaceAll("<TDColor>", game.getTeamPlayer(d).getColor() + "")
.replaceAll("<death>", d.getName()) + plugin.getLang().get("deathMessages.none"));
}
}
}
public void respawnFour(Player d, Player k) {
d.closeInventory();
d.getInventory().clear();
d.setHealth(d.getMaxHealth());
if (k != null) {
final GameFour game = plugin.getGm().getGameFourByPlayer(k);
game.addKill(k);
PlayerStat.getPlayerStat(k).addFourKills();
d.teleport(game.getTeamPlayer(d).getTeamRespawn());
game.giveKit(d, game.getTeamPlayer(d));
if (d.getLastDamageCause() == null)
for (final Player on : game.getPlayers())
on.sendMessage(plugin.getLang().get("deathMessages.custom")
.replaceAll("<TDColor>", game.getTeamPlayer(d).getColor() + "")
.replaceAll("<TKColor>", game.getTeamPlayer(k).getColor() + "")
.replaceAll("<death>", d.getName()).replaceAll("<player>", k.getName())
+ plugin.getLang().get("deathMessages.player")
.replaceAll("<TDColor>", game.getTeamPlayer(d).getColor() + "")
.replaceAll("<TKColor>", game.getTeamPlayer(k).getColor() + "")
.replaceAll("<death>", d.getName()).replaceAll("<player>", k.getName()));
else {
final DamageCause cause = d.getLastDamageCause().getCause();
if (cause.equals(DamageCause.VOID))
for (final Player on : game.getPlayers())
on.sendMessage(plugin.getLang().get("deathMessages.void")
.replaceAll("<TDColor>", game.getTeamPlayer(d).getColor() + "")
.replaceAll("<TKColor>", game.getTeamPlayer(k).getColor() + "")
.replaceAll("<death>", d.getName()).replaceAll("<player>", k.getName())
+ plugin.getLang().get("deathMessages.player")
.replaceAll("<TDColor>", game.getTeamPlayer(d).getColor() + "")
.replaceAll("<TKColor>", game.getTeamPlayer(k).getColor() + "")
.replaceAll("<death>", d.getName()).replaceAll("<player>", k.getName()));
else if (cause.equals(DamageCause.ENTITY_ATTACK))
for (final Player on : game.getPlayers())
on.sendMessage(plugin.getLang().get("deathMessages.damage")
.replaceAll("<TDColor>", game.getTeamPlayer(d).getColor() + "")
.replaceAll("<TKColor>", game.getTeamPlayer(k).getColor() + "")
.replaceAll("<death>", d.getName()).replaceAll("<player>", k.getName())
+ plugin.getLang().get("deathMessages.player")
.replaceAll("<TDColor>", game.getTeamPlayer(d).getColor() + "")
.replaceAll("<TKColor>", game.getTeamPlayer(k).getColor() + "")
.replaceAll("<death>", d.getName()).replaceAll("<player>", k.getName()));
else
for (final Player on : game.getPlayers())
on.sendMessage(plugin.getLang().get("deathMessages.custom")
.replaceAll("<TDColor>", game.getTeamPlayer(d).getColor() + "")
.replaceAll("<TKColor>", game.getTeamPlayer(k).getColor() + "")
.replaceAll("<death>", d.getName()).replaceAll("<player>", k.getName())
+ plugin.getLang().get("deathMessages.player")
.replaceAll("<TDColor>", game.getTeamPlayer(d).getColor() + "")
.replaceAll("<TKColor>", game.getTeamPlayer(k).getColor() + "")
.replaceAll("<death>", d.getName()).replaceAll("<player>", k.getName()));
}
} else {
final GameFour game = plugin.getGm().getGameFourByPlayer(d);
d.teleport(game.getTeamPlayer(d).getTeamRespawn());
game.giveKit(d, game.getTeamPlayer(d));
if (d.getLastDamageCause() == null)
for (final Player on : game.getPlayers())
on.sendMessage(plugin.getLang().get("deathMessages.custom")
.replaceAll("<TDColor>", game.getTeamPlayer(d).getColor() + "")
.replaceAll("<death>", d.getName()) + plugin.getLang().get("deathMessages.none"));
else {
final DamageCause cause = d.getLastDamageCause().getCause();
if (cause.equals(DamageCause.VOID))
for (final Player on : game.getPlayers())
on.sendMessage(plugin.getLang().get("deathMessages.void")
.replaceAll("<TDColor>", game.getTeamPlayer(d).getColor() + "")
.replaceAll("<death>", d.getName()) + plugin.getLang().get("deathMessages.none"));
else if (cause.equals(DamageCause.ENTITY_ATTACK))
for (final Player on : game.getPlayers())
on.sendMessage(plugin.getLang().get("deathMessages.damage")
.replaceAll("<TDColor>", game.getTeamPlayer(d).getColor() + "")
.replaceAll("<death>", d.getName()) + plugin.getLang().get("deathMessages.none"));
else
for (final Player on : game.getPlayers())
on.sendMessage(plugin.getLang().get("deathMessages.custom")
.replaceAll("<TDColor>", game.getTeamPlayer(d).getColor() + "")
.replaceAll("<death>", d.getName()) + plugin.getLang().get("deathMessages.none"));
}
}
}
}