From ed36764386f6bd5854bbdc63ae58416f89fca194 Mon Sep 17 00:00:00 2001 From: CoolLord22 Date: Fri, 2 Mar 2018 15:42:45 -0500 Subject: [PATCH] Changes making it ideal for SP server Changes the player quit event so player gets sent back to lobby upon join Changes messages to return display name rather than name as it caused some issues with the name not showing up entirely. Prevent the event from getting cancelled (as the config option wasn't working) --- .classpath | 9 ++++++ .gitignore | 3 +- .project | 17 +++++++++++ src/nl/Steffion/BlockHunt/ArenaHandler.java | 17 ++++------- .../OnEntityDamageByEntityEvent.java | 2 +- .../Listeners/OnPlayerQuitEvent.java | 29 +++++++++++++++---- .../Steffion/BlockHunt/Managers/MessageM.java | 8 ++--- 7 files changed, 62 insertions(+), 23 deletions(-) create mode 100644 .classpath create mode 100644 .project diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..d860ebd --- /dev/null +++ b/.classpath @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/.gitignore b/.gitignore index 4f63dfd..de2fe3f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ target/ -lib/ \ No newline at end of file +lib/ +/bin/ diff --git a/.project b/.project new file mode 100644 index 0000000..b516b86 --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + BlockHunt + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/src/nl/Steffion/BlockHunt/ArenaHandler.java b/src/nl/Steffion/BlockHunt/ArenaHandler.java index 191a688..3d54469 100644 --- a/src/nl/Steffion/BlockHunt/ArenaHandler.java +++ b/src/nl/Steffion/BlockHunt/ArenaHandler.java @@ -38,14 +38,14 @@ public class ArenaHandler { public static void sendMessage(Arena arena, String message, String... vars) { for (Player player : arena.playersInArena) { - String pMessage = message.replaceAll("%player%", player.getName()); + String pMessage = message.replaceAll("%player%", player.getDisplayName()); player.sendMessage(MessageM.replaceAll(pMessage, vars)); } } public static void sendFMessage(Arena arena, ConfigC location, String... vars) { for (Player player : arena.playersInArena) { - String pMessage = location.config.getFile().get(location.location).toString().replaceAll("%player%", player.getName()); + String pMessage = location.config.getFile().get(location.location).toString().replaceAll("%player%", player.getDisplayName()); player.sendMessage(MessageM.replaceAll(pMessage, vars)); } } @@ -277,13 +277,8 @@ public class ArenaHandler { // Fix for client not showing players after they join for (Player otherplayer : arena.playersInArena) { - if (otherplayer.canSee(player)) - otherplayer.showPlayer(player); // Make new player - // visible to others - if (player.canSee(otherplayer)) - player.showPlayer(otherplayer); // Make other - // players visible - // to new player + otherplayer.showPlayer(player); + player.showPlayer(otherplayer); } } } @@ -362,7 +357,7 @@ public class ArenaHandler { if (arena.seekersWinCommands != null) { for (String command : arena.seekersWinCommands) { - Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command.replaceAll("%player%", player.getName())); + Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command.replaceAll("%player%", player.getDisplayName())); } if (W.shop.getFile().get(player.getName() + ".tokens") == null) { @@ -414,7 +409,7 @@ public class ArenaHandler { if (arena.hidersWinCommands != null) { for (String command : arena.hidersWinCommands) { - Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command.replaceAll("%player%", player.getName())); + Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command.replaceAll("%player%", player.getDisplayName())); } if (W.shop.getFile().get(player.getName() + ".tokens") == null) { diff --git a/src/nl/Steffion/BlockHunt/Listeners/OnEntityDamageByEntityEvent.java b/src/nl/Steffion/BlockHunt/Listeners/OnEntityDamageByEntityEvent.java index 0a34454..c2514c4 100644 --- a/src/nl/Steffion/BlockHunt/Listeners/OnEntityDamageByEntityEvent.java +++ b/src/nl/Steffion/BlockHunt/Listeners/OnEntityDamageByEntityEvent.java @@ -76,7 +76,7 @@ public class OnEntityDamageByEntityEvent implements Listener { } else { // Seeker damaged by hider if (!arena.hidersCanHurtSeekers) { - event.setCancelled(true); + event.setCancelled(false); return; } } diff --git a/src/nl/Steffion/BlockHunt/Listeners/OnPlayerQuitEvent.java b/src/nl/Steffion/BlockHunt/Listeners/OnPlayerQuitEvent.java index d6d8e47..45b9a16 100644 --- a/src/nl/Steffion/BlockHunt/Listeners/OnPlayerQuitEvent.java +++ b/src/nl/Steffion/BlockHunt/Listeners/OnPlayerQuitEvent.java @@ -3,23 +3,40 @@ package nl.Steffion.BlockHunt.Listeners; import nl.Steffion.BlockHunt.Arena; import nl.Steffion.BlockHunt.ArenaHandler; import nl.Steffion.BlockHunt.W; +import nl.Steffion.BlockHunt.Serializables.LocationSerializable; + +import java.util.ArrayList; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; public class OnPlayerQuitEvent implements Listener { - - @EventHandler(priority = EventPriority.NORMAL) + + public ArrayList leftPlayer = new ArrayList(); + public LocationSerializable spawnWarp; + + @EventHandler(priority = EventPriority.HIGHEST) public void onPlayerQuitEvent(PlayerQuitEvent event) { - Player player = event.getPlayer(); - + Player playerLeaving = event.getPlayer(); for (Arena arena : W.arenaList) { - if (arena.playersInArena.contains(player)) { - ArenaHandler.playerLeaveArena(player, true, true); + if (arena.playersInArena.contains(playerLeaving)) { + spawnWarp = arena.spawnWarp; + leftPlayer.add(playerLeaving.getUniqueId().toString()); + ArenaHandler.playerLeaveArena(playerLeaving, true, true); } } } + + @EventHandler(priority = EventPriority.HIGHEST) + public void onPlayerJoinEvent(PlayerJoinEvent event) { + Player playerJoining = event.getPlayer(); + if(leftPlayer.contains(playerJoining.getUniqueId().toString())) { + playerJoining.teleport(spawnWarp); + leftPlayer.remove(playerJoining.getUniqueId().toString()); + } + } } diff --git a/src/nl/Steffion/BlockHunt/Managers/MessageM.java b/src/nl/Steffion/BlockHunt/Managers/MessageM.java index 7d3f6f9..e15f09f 100644 --- a/src/nl/Steffion/BlockHunt/Managers/MessageM.java +++ b/src/nl/Steffion/BlockHunt/Managers/MessageM.java @@ -35,7 +35,7 @@ public class MessageM { if (player == null) { Bukkit.getConsoleSender().sendMessage(MessageM.replaceAll(message.replaceAll("%player%", "Console"), vars)); } else { - player.sendMessage(MessageM.replaceAll(message.replaceAll("%player%", player.getName()), vars)); + player.sendMessage(MessageM.replaceAll(message.replaceAll("%player%", player.getDisplayName()), vars)); } } @@ -56,7 +56,7 @@ public class MessageM { Bukkit.getConsoleSender().sendMessage( MessageM.replaceAll(location.config.getFile().get(location.location).toString().replaceAll("%player%", "Console"), vars)); } else { - player.sendMessage(MessageM.replaceAll(location.config.getFile().get(location.location).toString().replaceAll("%player%", player.getName()), vars)); + player.sendMessage(MessageM.replaceAll(location.config.getFile().get(location.location).toString().replaceAll("%player%", player.getDisplayName()), vars)); } } @@ -74,7 +74,7 @@ public class MessageM { for (Player player : Bukkit.getOnlinePlayers()) { // String pMessage = message.replaceAll("%player%", // player.getName()); - player.sendMessage(MessageM.replaceAll(message.replaceAll("%player%", player.getName()), vars)); + player.sendMessage(MessageM.replaceAll(message.replaceAll("%player%", player.getDisplayName()), vars)); } // message = message.replaceAll("%player%", "Console"); Bukkit.getConsoleSender().sendMessage(MessageM.replaceAll(message.replaceAll("%player%", "Console"), vars)); @@ -95,7 +95,7 @@ public class MessageM { // String pMessage = // location.config.getFile().get(location.location) // .toString().replaceAll("%player%", player.getName()); - player.sendMessage(MessageM.replaceAll(location.config.getFile().get(location.location).toString().replaceAll("%player%", player.getName()), vars)); + player.sendMessage(MessageM.replaceAll(location.config.getFile().get(location.location).toString().replaceAll("%player%", player.getDisplayName()), vars)); } // String message = location.config.getFile().get(location.location) // .toString().replaceAll("%player%", "Console");