diff options
author | Tyler Murphy <tylermurphy534@gmail.com> | 2021-12-20 18:22:23 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-20 18:22:23 -0500 |
commit | 2ab0b2bbb604db246dcc46209ef780ba44d7aa69 (patch) | |
tree | d2513dbf0e511d66aaa8361e330ccb8bdf086bea /src/main/java/net/tylermurphy/hideAndSeek/bukkit | |
parent | 1.3.0 full release (diff) | |
parent | Add Workflows (diff) | |
download | kenshinshideandseek-2ab0b2bbb604db246dcc46209ef780ba44d7aa69.tar.gz kenshinshideandseek-2ab0b2bbb604db246dcc46209ef780ba44d7aa69.tar.bz2 kenshinshideandseek-2ab0b2bbb604db246dcc46209ef780ba44d7aa69.zip |
Merge pull request #12 from tylermurphy534/1.3.1
1.3.1
Diffstat (limited to 'src/main/java/net/tylermurphy/hideAndSeek/bukkit')
3 files changed, 76 insertions, 38 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/bukkit/CommandHandler.java b/src/main/java/net/tylermurphy/hideAndSeek/bukkit/CommandHandler.java index 2001df6..1efb505 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/bukkit/CommandHandler.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/bukkit/CommandHandler.java @@ -35,6 +35,7 @@ public class CommandHandler { registerCommand(new SetBorder()); registerCommand(new Reload()); registerCommand(new SaveMap()); + registerCommand(new SetBounds()); registerCommand(new Join()); registerCommand(new Leave()); } diff --git a/src/main/java/net/tylermurphy/hideAndSeek/bukkit/EventListener.java b/src/main/java/net/tylermurphy/hideAndSeek/bukkit/EventListener.java index c0ee5eb..ffad241 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/bukkit/EventListener.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/bukkit/EventListener.java @@ -2,6 +2,7 @@ package net.tylermurphy.hideAndSeek.bukkit; import static net.tylermurphy.hideAndSeek.configuration.Config.*; +import net.tylermurphy.hideAndSeek.command.Join; import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.Location; @@ -27,7 +28,8 @@ import org.bukkit.event.player.PlayerQuitEvent; import net.tylermurphy.hideAndSeek.util.Packet; import net.tylermurphy.hideAndSeek.util.Util; import net.tylermurphy.hideAndSeek.Main; -import net.tylermurphy.hideAndSeek.command.Start; +import org.bukkit.potion.PotionEffect; + import static net.tylermurphy.hideAndSeek.configuration.Localization.*; public class EventListener implements Listener { @@ -37,60 +39,90 @@ public class EventListener implements Listener { event.getPlayer().setLevel(0); Main.plugin.board.remove(event.getPlayer()); if(!Util.isSetup()) return; - if(event.getPlayer().getWorld().getName().equals("hideandseek_"+spawnWorld) || event.getPlayer().getWorld().getName().equals(lobbyWorld)){ - event.getPlayer().teleport(new Location(Bukkit.getWorld(exitWorld), exitPosition.getX(), exitPosition.getY(), exitPosition.getZ())); - event.getPlayer().setGameMode(GameMode.ADVENTURE); + if(autoJoin){ + Join.join(event.getPlayer()); + } else if(teleportToExit) { + if (event.getPlayer().getWorld().getName().equals("hideandseek_" + spawnWorld) || event.getPlayer().getWorld().getName().equals(lobbyWorld)) { + event.getPlayer().teleport(new Location(Bukkit.getWorld(exitWorld), exitPosition.getX(), exitPosition.getY(), exitPosition.getZ())); + event.getPlayer().setGameMode(GameMode.ADVENTURE); + } + } else { + if (event.getPlayer().getWorld().getName().equals("hideandseek_" + spawnWorld)) { + event.getPlayer().teleport(new Location(Bukkit.getWorld(exitWorld), exitPosition.getX(), exitPosition.getY(), exitPosition.getZ())); + event.getPlayer().setGameMode(GameMode.ADVENTURE); + } } } @EventHandler public void onQuit(PlayerQuitEvent event) { Main.plugin.board.remove(event.getPlayer()); + if(Main.plugin.status.equals("Standby")) { + Main.plugin.board.reloadLobbyBoards(); + } else { + Main.plugin.board.reloadGameBoards(); + } + for(PotionEffect effect : event.getPlayer().getActivePotionEffects()){ + event.getPlayer().removePotionEffect(effect.getType()); + } } @EventHandler public void onKick(PlayerKickEvent event) { Main.plugin.board.remove(event.getPlayer()); + if(Main.plugin.status.equals("Standby")) { + Main.plugin.board.reloadLobbyBoards(); + } else { + Main.plugin.board.reloadGameBoards(); + } + for(PotionEffect effect : event.getPlayer().getActivePotionEffects()){ + event.getPlayer().removePotionEffect(effect.getType()); + } } @EventHandler(priority = EventPriority.HIGHEST) public void onEntityDamage(EntityDamageEvent event) { - if(event.getEntity() instanceof Player) { - Player p = (Player) event.getEntity(); - if(!Main.plugin.board.isPlayer(p)) return; - if(!Main.plugin.status.equals("Playing")) { - event.setCancelled(true); - return; - } - Player attacker = null; - if(event instanceof EntityDamageByEntityEvent) { - Entity damager = ((EntityDamageByEntityEvent)event).getDamager(); - if(damager instanceof Player) { - attacker = (Player) damager; - if(Main.plugin.board.onSameTeam(p, attacker)) event.setCancelled(true); - if(Main.plugin.board.isSpectator(p)) event.setCancelled(true); - } - } - Player player = (Player) event.getEntity(); - if(player.getHealth()-event.getDamage() < 0) { - if(spawnPosition == null) return; - event.setCancelled(true); - player.setHealth(player.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue()); - player.teleport(new Location(Bukkit.getWorld("hideandseek_"+spawnWorld), spawnPosition.getX(), spawnPosition.getY(), spawnPosition.getZ())); - Packet.playSound(player, Sound.ENTITY_PLAYER_DEATH, 1, 1); - if(Main.plugin.board.isSeeker(player)) { - Bukkit.broadcastMessage(message("GAME_PLAYER_DEATH").addPlayer(event.getEntity()).toString()); + try { + if (event.getEntity() instanceof Player) { + Player p = (Player) event.getEntity(); + if (!Main.plugin.board.isPlayer(p)) return; + if (!Main.plugin.status.equals("Playing")) { + event.setCancelled(true); + return; } - if(Main.plugin.board.isHider(player)) { - if(attacker == null) { - Util.broadcastMessage(message("GAME_PLAYER_FOUND").addPlayer(event.getEntity()).toString()); - } else { - Util.broadcastMessage(message("GAME_PLAYER_FOUND_BY").addPlayer(event.getEntity()).addPlayer(attacker).toString()); + Player attacker = null; + if (event instanceof EntityDamageByEntityEvent) { + Entity damager = ((EntityDamageByEntityEvent) event).getDamager(); + if (damager instanceof Player) { + attacker = (Player) damager; + if (Main.plugin.board.onSameTeam(p, attacker)) event.setCancelled(true); + if (Main.plugin.board.isSpectator(p)) event.setCancelled(true); + } + } + Player player = (Player) event.getEntity(); + if (player.getHealth() - event.getDamage() < 0 || !pvpEnabled) { + if (spawnPosition == null) return; + event.setCancelled(true); + player.setHealth(player.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue()); + player.teleport(new Location(Bukkit.getWorld("hideandseek_" + spawnWorld), spawnPosition.getX(), spawnPosition.getY(), spawnPosition.getZ())); + Packet.playSound(player, Sound.ENTITY_PLAYER_DEATH, 1, 1); + if (Main.plugin.board.isSeeker(player)) { + Bukkit.broadcastMessage(message("GAME_PLAYER_DEATH").addPlayer(event.getEntity()).toString()); + } + if (Main.plugin.board.isHider(player)) { + if (attacker == null) { + Util.broadcastMessage(message("GAME_PLAYER_FOUND").addPlayer(event.getEntity()).toString()); + } else { + Util.broadcastMessage(message("GAME_PLAYER_FOUND_BY").addPlayer(event.getEntity()).addPlayer(attacker).toString()); + } + Main.plugin.board.addSeeker(player); } - Main.plugin.board.addSeeker(player); + Util.resetPlayer(player); + Main.plugin.board.reloadBoardTeams(); } - Start.resetPlayer(player); } + } catch (Exception e){ + //Has shown to cause problems, so ignore if exception } } @@ -98,6 +130,7 @@ public class EventListener implements Listener { public void onProjectile(ProjectileLaunchEvent event) { if(!Main.plugin.status.equals("Playing")) return; if(event.getEntity() instanceof Snowball) { + if(!glowEnabled) return; Snowball snowball = (Snowball) event.getEntity(); if(snowball.getShooter() instanceof Player) { Player player = (Player) snowball.getShooter(); diff --git a/src/main/java/net/tylermurphy/hideAndSeek/bukkit/Tick.java b/src/main/java/net/tylermurphy/hideAndSeek/bukkit/Tick.java index eadcf14..8efbe80 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/bukkit/Tick.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/bukkit/Tick.java @@ -40,9 +40,13 @@ public class Tick { else tick = 1; for(Player hider : Main.plugin.board.getHiders()) { - int distance = 100; + int distance = 100, temp = 100; for(Player seeker : Main.plugin.board.getSeekers()) { - int temp = (int) hider.getLocation().distance(seeker.getLocation()); + try { + temp = (int) hider.getLocation().distance(seeker.getLocation()); + } catch (Exception e){ + //Players in different worlds, NOT OK!!! + } if(distance > temp) { distance = temp; } |