diff options
Diffstat (limited to 'src/main/java/net/tylermurphy/hideAndSeek/manager/EventManager.java')
-rw-r--r-- | src/main/java/net/tylermurphy/hideAndSeek/manager/EventManager.java | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/manager/EventManager.java b/src/main/java/net/tylermurphy/hideAndSeek/manager/EventManager.java new file mode 100644 index 0000000..fbce79c --- /dev/null +++ b/src/main/java/net/tylermurphy/hideAndSeek/manager/EventManager.java @@ -0,0 +1,49 @@ +package net.tylermurphy.hideAndSeek.manager; + +import static net.tylermurphy.hideAndSeek.Store.*; + +import org.bukkit.GameMode; +import org.bukkit.Location; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.PlayerDeathEvent; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerQuitEvent; +import org.bukkit.potion.PotionEffect; + +public class EventManager implements Listener { + + @EventHandler + public void onPlayerJoin(PlayerJoinEvent event) { + if(status.equals("Playing") || status.equals("Starting")) { + Spectator.addEntry(event.getPlayer().getName()); + resetPlayerData(event.getPlayer().getName(), false); + event.getPlayer().sendMessage(messagePrefix + "You have joined mid game, and thus have been placed on the spectator team."); + event.getPlayer().setGameMode(GameMode.SPECTATOR); + event.getPlayer().getInventory().clear(); + for(PotionEffect effect : event.getPlayer().getActivePotionEffects()){ + event.getPlayer().removePotionEffect(effect.getType()); + } + event.getPlayer().teleport(new Location(event.getPlayer().getWorld(), spawnPosition.getX(),spawnPosition.getY(),spawnPosition.getZ())); + } + playerList.put(event.getPlayer().getName(), event.getPlayer()); + if(board == null) BoardManager.loadScoreboard(); + } + + @EventHandler + public void onQuit(PlayerQuitEvent event) { + playerList.remove(event.getPlayer().getName()); + Hider.removeEntry(event.getPlayer().getName()); + Seeker.removeEntry(event.getPlayer().getName()); + Spectator.removeEntry(event.getPlayer().getName()); + } + + @EventHandler + public void onDeath(PlayerDeathEvent event) { + if(status.equals("Playing")) { + setPlayerData(event.getEntity().getName(), "Death", 1); + setPlayerData(event.getEntity().getName(), "GiveStatus", 1); + } + } + +} |