|
@@ -66,34 +66,34 @@ public class GameListener extends GameBoundListener {
|
|
}
|
|
}
|
|
|
|
|
|
@EventHandler
|
|
@EventHandler
|
|
- public void onMove(PlayerMoveEvent e) {
|
|
|
|
- if (!isInGameWorld(e.getTo())) return;
|
|
|
|
|
|
+ public void onMove(PlayerMoveEvent event) {
|
|
|
|
+ if (!isInGameWorld(event.getTo())) return;
|
|
|
|
|
|
- Player p = e.getPlayer();
|
|
|
|
- if ((e.getTo().getBlockY() >= getGame().getArena().getMaxHeight()) && (p.getGameMode() == GameMode.SURVIVAL)) {
|
|
|
|
- p.teleport(e.getFrom());
|
|
|
|
|
|
+ Player p = event.getPlayer();
|
|
|
|
+ if ((event.getTo().getBlockY() >= getGame().getArena().getMaxHeight()) && (p.getGameMode() == GameMode.SURVIVAL)) {
|
|
|
|
+ p.teleport(event.getFrom());
|
|
p.sendMessage(MessageConfig.getMessage("not_higher"));
|
|
p.sendMessage(MessageConfig.getMessage("not_higher"));
|
|
- } else if ((e.getTo().getBlockY() <= getGame().getArena().getDeathHeight()) && (p.getGameMode() == GameMode.SURVIVAL)) {
|
|
|
|
|
|
+ } else if ((event.getTo().getBlockY() <= getGame().getArena().getDeathHeight()) && (p.getGameMode() == GameMode.SURVIVAL)) {
|
|
p.setLastDamageCause(new EntityDamageEvent(p, EntityDamageEvent.DamageCause.FALL, 20));
|
|
p.setLastDamageCause(new EntityDamageEvent(p, EntityDamageEvent.DamageCause.FALL, 20));
|
|
p.damage(20.0D);
|
|
p.damage(20.0D);
|
|
}
|
|
}
|
|
- if (!getGame().isInGameArea(e.getTo())) {
|
|
|
|
- e.setCancelled(true);
|
|
|
|
- Vector addTo = e.getFrom().toVector().subtract(e.getTo().toVector()).multiply(3);
|
|
|
|
|
|
+ if (!getGame().isInGameArea(event.getTo())) {
|
|
|
|
+ event.setCancelled(true);
|
|
|
|
+ Vector addTo = event.getFrom().toVector().subtract(event.getTo().toVector()).multiply(3);
|
|
addTo.setY(0);
|
|
addTo.setY(0);
|
|
- p.teleport(e.getFrom().add(addTo));
|
|
|
|
|
|
+ p.teleport(event.getFrom().add(addTo));
|
|
p.sendMessage(MessageConfig.getMessage("arena_leave"));
|
|
p.sendMessage(MessageConfig.getMessage("arena_leave"));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@EventHandler
|
|
@EventHandler
|
|
- public void onExplode(EntityExplodeEvent e) {
|
|
|
|
- if (!isInGameWorld(e.getLocation())) return;
|
|
|
|
|
|
+ public void onExplode(EntityExplodeEvent event) {
|
|
|
|
+ if (!isInGameWorld(event.getLocation())) return;
|
|
|
|
|
|
Game game = getGame();
|
|
Game game = getGame();
|
|
|
|
|
|
- if (e.getEntity().getType() == EntityType.FIREBALL && !game.getArena().getFireballConfiguration().isDestroysPortal())
|
|
|
|
- e.blockList().removeIf(b -> b.getType() == VersionUtil.getPortal());
|
|
|
|
|
|
+ if (event.getEntity().getType() == EntityType.FIREBALL && !game.getArena().getFireballConfiguration().isDestroysPortal())
|
|
|
|
+ event.blockList().removeIf(b -> b.getType() == VersionUtil.getPortal());
|
|
}
|
|
}
|
|
|
|
|
|
@EventHandler
|
|
@EventHandler
|
|
@@ -115,23 +115,23 @@ public class GameListener extends GameBoundListener {
|
|
}
|
|
}
|
|
|
|
|
|
@EventHandler
|
|
@EventHandler
|
|
- public void onInteract(PlayerInteractEvent e) {
|
|
|
|
- if (!isInGameWorld(e.getPlayer().getLocation())) return;
|
|
|
|
- if (e.getItem() == null) return;
|
|
|
|
- if (e.getAction() != Action.RIGHT_CLICK_AIR && e.getAction() != Action.RIGHT_CLICK_BLOCK) return;
|
|
|
|
|
|
+ public void onInteract(PlayerInteractEvent event) {
|
|
|
|
+ if (!isInGameWorld(event.getPlayer().getLocation())) return;
|
|
|
|
+ if (event.getItem() == null) return;
|
|
|
|
+ if (event.getAction() != Action.RIGHT_CLICK_AIR && event.getAction() != Action.RIGHT_CLICK_BLOCK) return;
|
|
|
|
|
|
- Player player = e.getPlayer();
|
|
|
|
- ItemStack itemStack = e.getItem();
|
|
|
|
|
|
+ Player player = event.getPlayer();
|
|
|
|
+ ItemStack itemStack = event.getItem();
|
|
Game game = getGame();
|
|
Game game = getGame();
|
|
|
|
|
|
// missile spawn with using of a missile spawn egg
|
|
// missile spawn with using of a missile spawn egg
|
|
if (VersionUtil.isMonsterEgg(itemStack.getType())) {
|
|
if (VersionUtil.isMonsterEgg(itemStack.getType())) {
|
|
- e.setCancelled(true);
|
|
|
|
|
|
+ event.setCancelled(true);
|
|
|
|
|
|
// Can missiles only be spawned if the item interaction was performed on a block (no air)?
|
|
// Can missiles only be spawned if the item interaction was performed on a block (no air)?
|
|
boolean isOnlyBlockPlaceable = game.getArena().getMissileConfiguration().isOnlyBlockPlaceable();
|
|
boolean isOnlyBlockPlaceable = game.getArena().getMissileConfiguration().isOnlyBlockPlaceable();
|
|
if (isOnlyBlockPlaceable) {
|
|
if (isOnlyBlockPlaceable) {
|
|
- if (e.getAction() != Action.RIGHT_CLICK_BLOCK) return;
|
|
|
|
|
|
+ if (event.getAction() != Action.RIGHT_CLICK_BLOCK) return;
|
|
}
|
|
}
|
|
|
|
|
|
// Are missiles only allowed to spawn inside the arena, between the two arena spawn points?
|
|
// Are missiles only allowed to spawn inside the arena, between the two arena spawn points?
|
|
@@ -157,8 +157,8 @@ public class GameListener extends GameBoundListener {
|
|
|
|
|
|
// shield spawn with using of a missile spawn egg
|
|
// shield spawn with using of a missile spawn egg
|
|
if (itemStack.getType() == VersionUtil.getFireball()) {
|
|
if (itemStack.getType() == VersionUtil.getFireball()) {
|
|
- int amount = e.getItem().getAmount();
|
|
|
|
- e.getItem().setAmount(amount - 1);
|
|
|
|
|
|
+ int amount = event.getItem().getAmount();
|
|
|
|
+ event.getItem().setAmount(amount - 1);
|
|
|
|
|
|
if (amount == 1 && VersionUtil.getVersion() == 8) {
|
|
if (amount == 1 && VersionUtil.getVersion() == 8) {
|
|
player.getInventory().remove(VersionUtil.getFireball());
|
|
player.getInventory().remove(VersionUtil.getFireball());
|
|
@@ -176,11 +176,11 @@ public class GameListener extends GameBoundListener {
|
|
}
|
|
}
|
|
|
|
|
|
@EventHandler
|
|
@EventHandler
|
|
- public void onJoin(PlayerArenaJoinEvent e) {
|
|
|
|
- Game game = e.getGame();
|
|
|
|
|
|
+ public void onJoin(PlayerArenaJoinEvent event) {
|
|
|
|
+ Game game = event.getGame();
|
|
if (game != getGame()) return;
|
|
if (game != getGame()) return;
|
|
|
|
|
|
- Player p = e.getPlayer();
|
|
|
|
|
|
+ Player p = event.getPlayer();
|
|
MWPlayer mwPlayer = game.addPlayer(p);
|
|
MWPlayer mwPlayer = game.addPlayer(p);
|
|
PlayerDataProvider.getInstance().storeInventory(p);
|
|
PlayerDataProvider.getInstance().storeInventory(p);
|
|
p.getInventory().clear();
|
|
p.getInventory().clear();
|
|
@@ -209,110 +209,98 @@ public class GameListener extends GameBoundListener {
|
|
}
|
|
}
|
|
|
|
|
|
@EventHandler
|
|
@EventHandler
|
|
- public void onThrow(ProjectileLaunchEvent e) {
|
|
|
|
- if (!isInGameWorld(e.getEntity().getLocation())) return;
|
|
|
|
|
|
+ public void onThrow(ProjectileLaunchEvent event) {
|
|
|
|
+ if (!isInGameWorld(event.getEntity().getLocation())) return;
|
|
|
|
|
|
Game game = getGame();
|
|
Game game = getGame();
|
|
- if (e.getEntity() instanceof Snowball) {
|
|
|
|
- Snowball ball = (Snowball) e.getEntity();
|
|
|
|
|
|
+ if (event.getEntity() instanceof Snowball) {
|
|
|
|
+ Snowball ball = (Snowball) event.getEntity();
|
|
if (ball.getShooter() instanceof Player) {
|
|
if (ball.getShooter() instanceof Player) {
|
|
Shield shield = new Shield((Player) ball.getShooter(), game.getArena().getShieldConfiguration());
|
|
Shield shield = new Shield((Player) ball.getShooter(), game.getArena().getShieldConfiguration());
|
|
- shield.onThrow(e);
|
|
|
|
|
|
+ shield.onThrow(event);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@EventHandler
|
|
@EventHandler
|
|
- public void onDamage(EntityDamageByEntityEvent e) {
|
|
|
|
- if (!isInGameWorld(e.getEntity().getLocation())) return;
|
|
|
|
- if (!(e.getEntity() instanceof Player)) return;
|
|
|
|
|
|
+ public void onDamage(EntityDamageByEntityEvent event) {
|
|
|
|
+ if (!isInGameWorld(event.getEntity().getLocation())) return;
|
|
|
|
+ if (!(event.getEntity() instanceof Player)) return;
|
|
|
|
|
|
- Player p = (Player) e.getEntity();
|
|
|
|
- if (e.getDamager() instanceof Projectile) {
|
|
|
|
- Projectile pj = (Projectile) e.getDamager();
|
|
|
|
|
|
+ Player p = (Player) event.getEntity();
|
|
|
|
+ if (event.getDamager() instanceof Projectile) {
|
|
|
|
+ Projectile pj = (Projectile) event.getDamager();
|
|
Player shooter = (Player) pj.getShooter();
|
|
Player shooter = (Player) pj.getShooter();
|
|
if (Objects.requireNonNull(getGame().getPlayer(shooter)).getTeam() == Objects.requireNonNull(getGame().getPlayer(p)).getTeam()) {
|
|
if (Objects.requireNonNull(getGame().getPlayer(shooter)).getTeam() == Objects.requireNonNull(getGame().getPlayer(p)).getTeam()) {
|
|
shooter.sendMessage(MessageConfig.getMessage("hurt_teammates"));
|
|
shooter.sendMessage(MessageConfig.getMessage("hurt_teammates"));
|
|
- e.setCancelled(true);
|
|
|
|
|
|
+ event.setCancelled(true);
|
|
}
|
|
}
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
- if (e.getDamager() instanceof Player) {
|
|
|
|
- Player d = (Player) e.getDamager();
|
|
|
|
|
|
+ if (event.getDamager() instanceof Player) {
|
|
|
|
+ Player d = (Player) event.getDamager();
|
|
if (Objects.requireNonNull(getGame().getPlayer(d)).getTeam() == Objects.requireNonNull(getGame().getPlayer(p)).getTeam()) {
|
|
if (Objects.requireNonNull(getGame().getPlayer(d)).getTeam() == Objects.requireNonNull(getGame().getPlayer(p)).getTeam()) {
|
|
d.sendMessage(MessageConfig.getMessage("hurt_teammates"));
|
|
d.sendMessage(MessageConfig.getMessage("hurt_teammates"));
|
|
- e.setCancelled(true);
|
|
|
|
|
|
+ event.setCancelled(true);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@EventHandler(priority = EventPriority.HIGH)
|
|
@EventHandler(priority = EventPriority.HIGH)
|
|
- public void onRespawn(PlayerRespawnEvent e) {
|
|
|
|
- if (!isInGameWorld(e.getPlayer().getLocation())) return;
|
|
|
|
|
|
+ public void onRespawn(PlayerRespawnEvent event) {
|
|
|
|
+ if (!isInGameWorld(event.getPlayer().getLocation())) return;
|
|
|
|
|
|
- Game game = getGame();
|
|
|
|
- Player player = e.getPlayer();
|
|
|
|
|
|
+ Player player = event.getPlayer();
|
|
|
|
+ Team team = getGame().getPlayer(player).getTeam();
|
|
|
|
+
|
|
|
|
+ if (team != null) {
|
|
|
|
+ event.setRespawnLocation(team.getSpawn());
|
|
|
|
+ getGame().sendGameItems(player, true);
|
|
|
|
+ getGame().setPlayerAttributes(player);
|
|
|
|
|
|
- Team t = Objects.requireNonNull(getGame().getPlayer(player)).getTeam();
|
|
|
|
- if (t != null) {
|
|
|
|
- e.setRespawnLocation(t.getSpawn());
|
|
|
|
FallProtectionConfiguration fallProtection = getGame().getArena().getFallProtection();
|
|
FallProtectionConfiguration fallProtection = getGame().getArena().getFallProtection();
|
|
- if (fallProtection.isEnabled())
|
|
|
|
|
|
+ if (fallProtection.isEnabled()) {
|
|
new RespawnGoldBlock(player, fallProtection.getDuration(), fallProtection.isMessageOnlyOnStart(), getGame());
|
|
new RespawnGoldBlock(player, fallProtection.getDuration(), fallProtection.isMessageOnlyOnStart(), getGame());
|
|
|
|
+ }
|
|
} else {
|
|
} else {
|
|
- e.setRespawnLocation(getGame().getArena().getSpectatorSpawn());
|
|
|
|
|
|
+ event.setRespawnLocation(getGame().getArena().getSpectatorSpawn());
|
|
}
|
|
}
|
|
-
|
|
|
|
- game.sendGameItems(player, true);
|
|
|
|
- game.setPlayerAttributes(player);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- @EventHandler
|
|
|
|
- public void onDeath(PlayerDeathEvent e) {
|
|
|
|
-
|
|
|
|
- // check if the player is in a game world
|
|
|
|
- if (!isInGameWorld(e.getEntity().getLocation())) return;
|
|
|
|
-
|
|
|
|
- Game game = getGame();
|
|
|
|
- Player p = e.getEntity();
|
|
|
|
-
|
|
|
|
- e.setDeathMessage(null);
|
|
|
|
- // delete vanilla death message
|
|
|
|
- String deathBroadcastMessage = null;
|
|
|
|
-
|
|
|
|
- MWPlayer player = getGame().getPlayer(p);
|
|
|
|
- assert player != null;
|
|
|
|
|
|
+ @EventHandler(priority = EventPriority.HIGH)
|
|
|
|
+ public void onDeath(PlayerDeathEvent event) {
|
|
|
|
+ if (!isInGameWorld(event.getEntity().getLocation())) return;
|
|
|
|
|
|
- if (game.getArena().isAutoRespawn()) Bukkit.getScheduler().runTaskLater(MissileWars.getInstance(), () -> p.spigot().respawn(), 20L);
|
|
|
|
-
|
|
|
|
- // spectator respawn for people there are not in a team
|
|
|
|
- if (player.getTeam() == null) {
|
|
|
|
- p.setHealth(p.getMaxHealth());
|
|
|
|
- p.teleport(getGame().getArena().getSpectatorSpawn());
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
|
|
+ Player player = event.getEntity();
|
|
|
|
+ Team team = getGame().getPlayer(player).getTeam();
|
|
|
|
|
|
// check the death cause for choice the death message
|
|
// check the death cause for choice the death message
|
|
- if (p.getLastDamageCause() != null) {
|
|
|
|
|
|
+ if (team != null) {
|
|
|
|
|
|
- EntityDamageEvent.DamageCause damageCause = p.getLastDamageCause().getCause();
|
|
|
|
|
|
+ if (player.getLastDamageCause() == null) return;
|
|
|
|
+
|
|
|
|
+ String deathBroadcastMessage;
|
|
|
|
+ EntityDamageEvent.DamageCause damageCause = player.getLastDamageCause().getCause();
|
|
|
|
|
|
if (damageCause == EntityDamageEvent.DamageCause.BLOCK_EXPLOSION || damageCause == EntityDamageEvent.DamageCause.ENTITY_EXPLOSION) {
|
|
if (damageCause == EntityDamageEvent.DamageCause.BLOCK_EXPLOSION || damageCause == EntityDamageEvent.DamageCause.ENTITY_EXPLOSION) {
|
|
- deathBroadcastMessage = MessageConfig.getNativeMessage("died_explosion").replace("%player%", p.getDisplayName());
|
|
|
|
|
|
+ deathBroadcastMessage = MessageConfig.getNativeMessage("died_explosion").replace("%player%", player.getDisplayName());
|
|
} else {
|
|
} else {
|
|
- deathBroadcastMessage = MessageConfig.getNativeMessage("died").replace("%player%", p.getDisplayName());
|
|
|
|
|
|
+ deathBroadcastMessage = MessageConfig.getNativeMessage("died").replace("%player%", player.getDisplayName());
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ getGame().broadcast(deathBroadcastMessage);
|
|
}
|
|
}
|
|
|
|
|
|
- getGame().broadcast(deathBroadcastMessage);
|
|
|
|
|
|
+ event.setDeathMessage(null);
|
|
|
|
+ if (getGame().getArena().isAutoRespawn()) getGame().autoRespawnPlayer(player);
|
|
}
|
|
}
|
|
|
|
|
|
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
|
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
|
- public void onLeave(PlayerArenaLeaveEvent e) {
|
|
|
|
- Game game = e.getGame();
|
|
|
|
|
|
+ public void onLeave(PlayerArenaLeaveEvent event) {
|
|
|
|
+ Game game = event.getGame();
|
|
if (game != getGame()) return;
|
|
if (game != getGame()) return;
|
|
|
|
|
|
- MWPlayer player = getGame().getPlayer(e.getPlayer());
|
|
|
|
|
|
+ MWPlayer player = getGame().getPlayer(event.getPlayer());
|
|
if (player == null) return;
|
|
if (player == null) return;
|
|
BukkitTask task = game.getPlayerTasks().get(player.getUuid());
|
|
BukkitTask task = game.getPlayerTasks().get(player.getUuid());
|
|
if (task != null) task.cancel();
|
|
if (task != null) task.cancel();
|
|
@@ -320,8 +308,8 @@ public class GameListener extends GameBoundListener {
|
|
Team team = player.getTeam();
|
|
Team team = player.getTeam();
|
|
if (team != null) {
|
|
if (team != null) {
|
|
getGame().broadcast(
|
|
getGame().broadcast(
|
|
- MessageConfig.getMessage("player_left").replace("%player%", e.getPlayer().getDisplayName()));
|
|
|
|
- team.removeMember(getGame().getPlayer(e.getPlayer()));
|
|
|
|
|
|
+ MessageConfig.getMessage("player_left").replace("%player%", event.getPlayer().getDisplayName()));
|
|
|
|
+ team.removeMember(getGame().getPlayer(event.getPlayer()));
|
|
|
|
|
|
int teamSize = team.getMembers().size();
|
|
int teamSize = team.getMembers().size();
|
|
if (teamSize == 0) {
|
|
if (teamSize == 0) {
|