diff options
Diffstat (limited to 'src/main/java/net/tylermurphy/hideAndSeek/bukkit')
3 files changed, 58 insertions, 78 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/bukkit/CommandHandler.java b/src/main/java/net/tylermurphy/hideAndSeek/bukkit/CommandHandler.java index f15e68b..23a37a1 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/bukkit/CommandHandler.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/bukkit/CommandHandler.java @@ -1,6 +1,6 @@ package net.tylermurphy.hideAndSeek.bukkit; -import static net.tylermurphy.hideAndSeek.Store.*; +import static net.tylermurphy.hideAndSeek.Config.*; import java.util.Arrays; import java.util.LinkedHashMap; @@ -10,8 +10,8 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import net.tylermurphy.hideAndSeek.Main; import net.tylermurphy.hideAndSeek.command.*; -import net.tylermurphy.hideAndSeek.util.ICommand; public class CommandHandler { @@ -40,6 +40,9 @@ public class CommandHandler { } public static boolean handleCommand(CommandSender sender, Command cmd, String label, String[] args) { + if(!Main.plugin.board.isReady()) { + Main.plugin.board.reload(); + } if(sender instanceof Player == false) { sender.sendMessage(errorPrefix + "This command can only be run as a player."); } else if(args.length < 1 || !COMMAND_REGISTER.containsKey(args[0].toLowerCase()) ) { @@ -49,7 +52,7 @@ public class CommandHandler { COMMAND_REGISTER.get("about").execute(sender, null); } } else { - if(!args[0].toLowerCase().equals("about") && !args[0].toLowerCase().equals("help") && runningBackup) { + if(!args[0].toLowerCase().equals("about") && !args[0].toLowerCase().equals("help") && SaveMap.runningBackup) { sender.sendMessage(errorPrefix + "Map save is currently in progress. Try again later."); } else if(permissionsRequired && !sender.hasPermission("hideandseek."+args[0].toLowerCase())) { sender.sendMessage(errorPrefix + "You are not allowed to run this command."); diff --git a/src/main/java/net/tylermurphy/hideAndSeek/bukkit/EventListener.java b/src/main/java/net/tylermurphy/hideAndSeek/bukkit/EventListener.java index 8823e89..393be5b 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/bukkit/EventListener.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/bukkit/EventListener.java @@ -1,6 +1,6 @@ package net.tylermurphy.hideAndSeek.bukkit; -import static net.tylermurphy.hideAndSeek.Store.*; +import static net.tylermurphy.hideAndSeek.Config.*; import org.bukkit.Bukkit; import org.bukkit.GameMode; @@ -24,19 +24,22 @@ import org.bukkit.event.player.PlayerKickEvent; import org.bukkit.event.player.PlayerQuitEvent; import net.md_5.bungee.api.ChatColor; -import net.tylermurphy.hideAndSeek.Main; -import net.tylermurphy.hideAndSeek.util.Functions; import net.tylermurphy.hideAndSeek.util.Packet; +import net.tylermurphy.hideAndSeek.util.Util; +import net.tylermurphy.hideAndSeek.Main; +import net.tylermurphy.hideAndSeek.command.Start; public class EventListener implements Listener { @EventHandler public void onPlayerJoin(PlayerJoinEvent event) { event.getPlayer().setLevel(0); - HiderTeam.removeEntry(event.getPlayer().getName()); - SeekerTeam.removeEntry(event.getPlayer().getName()); - SpectatorTeam.removeEntry(event.getPlayer().getName()); - if(!Functions.setup()) return; + if(Main.plugin.board.isReady()) { + Main.plugin.board.remove(event.getPlayer()); + } else { + Main.plugin.board.init(); + } + 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); @@ -45,34 +48,20 @@ public class EventListener implements Listener { @EventHandler public void onQuit(PlayerQuitEvent event) { - if(!playerList.containsKey(event.getPlayer().getName())) return; - playerList.remove(event.getPlayer().getName()); - Hider.remove(event.getPlayer().getName()); - HiderTeam.removeEntry(event.getPlayer().getName()); - Seeker.remove(event.getPlayer().getName()); - SeekerTeam.removeEntry(event.getPlayer().getName()); - Spectator.remove(event.getPlayer().getName()); - SpectatorTeam.removeEntry(event.getPlayer().getName()); + Main.plugin.board.remove(event.getPlayer()); } @EventHandler public void onKick(PlayerKickEvent event) { - if(!playerList.containsKey(event.getPlayer().getName())) return; - playerList.remove(event.getPlayer().getName()); - Hider.remove(event.getPlayer().getName()); - HiderTeam.removeEntry(event.getPlayer().getName()); - Seeker.remove(event.getPlayer().getName()); - SeekerTeam.removeEntry(event.getPlayer().getName()); - Spectator.remove(event.getPlayer().getName()); - SpectatorTeam.removeEntry(event.getPlayer().getName()); + Main.plugin.board.remove(event.getPlayer()); } @EventHandler public void onEntityDamage(EntityDamageEvent event) { if(event.getEntity() instanceof Player) { Player p = (Player) event.getEntity(); - if(!playerList.containsKey(p.getName())) return; - if(!status.equals("Playing")) { + if(!Main.plugin.board.isPlayer(p)) return; + if(!Main.plugin.status.equals("Playing")) { event.setCancelled(true); return; } @@ -81,9 +70,8 @@ public class EventListener implements Listener { Entity damager = ((EntityDamageByEntityEvent)event).getDamager(); if(damager instanceof Player) { attacker = (Player) damager; - if(Hider.contains(attacker.getName()) && Hider.contains(p.getName())) event.setCancelled(true); - if(Seeker.contains(attacker.getName()) && Seeker.contains(p.getName())) event.setCancelled(true); - if(Spectator.contains(attacker.getName())) event.setCancelled(true); + if(Main.plugin.board.onSameTeam(p, p)) event.setCancelled(true); + if(Main.plugin.board.isSpectator(p)) event.setCancelled(true); } } Player player = (Player) event.getEntity(); @@ -93,33 +81,31 @@ public class EventListener implements Listener { 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(Seeker.contains(event.getEntity().getName())) { + if(Main.plugin.board.isSeeker(player)) { Bukkit.broadcastMessage(String.format(messagePrefix + "%s%s%s was killed", ChatColor.RED, event.getEntity().getName(), ChatColor.WHITE)); } - if(Hider.contains(event.getEntity().getName())) { + if(Main.plugin.board.isHider(player)) { if(attacker == null) { - Functions.broadcastMessage(String.format(messagePrefix + "%s%s%s was found and became a seeker", ChatColor.GOLD, event.getEntity().getName(), ChatColor.WHITE)); + Util.broadcastMessage(String.format(messagePrefix + "%s%s%s was found and became a seeker", ChatColor.GOLD, event.getEntity().getName(), ChatColor.WHITE)); } else { - Functions.broadcastMessage(String.format(messagePrefix + "%s%s%s was found by %s%s%s and became a seeker", ChatColor.GOLD, event.getEntity().getName(), ChatColor.WHITE, ChatColor.RED, attacker.getName(), ChatColor.WHITE)); + Util.broadcastMessage(String.format(messagePrefix + "%s%s%s was found by %s%s%s and became a seeker", ChatColor.GOLD, event.getEntity().getName(), ChatColor.WHITE, ChatColor.RED, attacker.getName(), ChatColor.WHITE)); } - Hider.remove(player.getName()); - Seeker.add(player.getName()); - SeekerTeam.addEntry(player.getName()); + Main.plugin.board.addSeeker(player); } - Functions.resetPlayer(player); + Start.resetPlayer(player); } } } @EventHandler public void onProjectile(ProjectileLaunchEvent event) { - if(!status.equals("Playing")) return; + if(Main.plugin.status.equals("Playing")) return; if(event.getEntity() instanceof Snowball) { Snowball snowball = (Snowball) event.getEntity(); if(snowball.getShooter() instanceof Player) { Player player = (Player) snowball.getShooter(); - if(Hider.contains(player.getName())) { - Main.glow.onProjectilve(); + if(Main.plugin.board.isHider(player)) { + Main.plugin.glow.onProjectilve(); snowball.remove(); player.getInventory().remove(Material.SNOWBALL); } @@ -130,7 +116,7 @@ public class EventListener implements Listener { @EventHandler public void onFoodLevelChange(FoodLevelChangeEvent event) { if(event.getEntity() instanceof Player) { - if(!playerList.containsKey(event.getEntity().getName())) return; + if(!Main.plugin.board.isPlayer((Player) event.getEntity())) return; event.setCancelled(true); } } @@ -139,7 +125,7 @@ public class EventListener implements Listener { public void onPlayerRegainHealth(EntityRegainHealthEvent event) { if(event.getRegainReason() == RegainReason.SATIATED || event.getRegainReason() == RegainReason.REGEN) { if(event.getEntity() instanceof Player) { - if(!playerList.containsKey(event.getEntity().getName())) return; + if(!Main.plugin.board.isPlayer((Player) event.getEntity())) return; event.setCancelled(true); } } diff --git a/src/main/java/net/tylermurphy/hideAndSeek/bukkit/Tick.java b/src/main/java/net/tylermurphy/hideAndSeek/bukkit/Tick.java index 7224210..3fb48d6 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/bukkit/Tick.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/bukkit/Tick.java @@ -1,41 +1,33 @@ package net.tylermurphy.hideAndSeek.bukkit; -import static net.tylermurphy.hideAndSeek.Store.*; +import static net.tylermurphy.hideAndSeek.Config.*; import org.bukkit.Bukkit; import org.bukkit.Sound; import org.bukkit.entity.Player; +import net.tylermurphy.hideAndSeek.Main; import net.tylermurphy.hideAndSeek.command.Stop; -import net.tylermurphy.hideAndSeek.util.Functions; import net.tylermurphy.hideAndSeek.util.Packet; +import net.tylermurphy.hideAndSeek.util.Util; public class Tick { static int tick = 0; public static void onTick() { - - if(board == null) { - Functions.loadScoreboard(); - } - if(status.equals("Standby")) { - tick = 0; - } - - if(status.equals("Playing")) { - onPlaying(); - } + if(Main.plugin.status.equals("Standby")) tick = 0; + else if(Main.plugin.status.equals("Playing")) onPlaying(); - if(( status.equals("Starting") || status.equals("Playing") ) && Hider.size() < 1) { + if(( Main.plugin.status.equals("Starting") || Main.plugin.status.equals("Playing") ) && Main.plugin.board.sizeHider() < 1) { if(announceMessagesToNonPlayers) Bukkit.broadcastMessage(gameoverPrefix + "All hiders have been found."); - else Functions.broadcastMessage(gameoverPrefix + "All hiders have been found."); + else Util.broadcastMessage(gameoverPrefix + "All hiders have been found."); Stop.onStop(); } - if(( status.equals("Starting") || status.equals("Playing") ) && Seeker.size() < 1) { + if(( Main.plugin.status.equals("Starting") || Main.plugin.status.equals("Playing") ) && Main.plugin.board.sizeSeeker() < 1) { if(announceMessagesToNonPlayers) Bukkit.broadcastMessage(abortPrefix + "All seekers have quit."); - else Functions.broadcastMessage(abortPrefix + "All seekers have quit."); + else Util.broadcastMessage(abortPrefix + "All seekers have quit."); Stop.onStop(); } @@ -43,32 +35,31 @@ public class Tick { private static void onPlaying() { - tick ++; + if(tick<1000000) tick++; + else tick = 1; - for(String playerName : Hider) { - Player player = playerList.get(playerName); + for(Player hider : Main.plugin.board.getHiders()) { int distance = 100; - for(String seekerName : Seeker) { - Player seeker = playerList.get(seekerName); - int temp = (int) player.getLocation().distance(seeker.getLocation()); + for(Player seeker : Main.plugin.board.getSeekers()) { + int temp = (int) hider.getLocation().distance(seeker.getLocation()); if(distance > temp) { distance = temp; } } switch(tick%10) { case 0: - if(distance < 30) Packet.playSound(player, Sound.BLOCK_NOTE_BLOCK_BASEDRUM, .5f, 1f); - if(distance < 10) Packet.playSound(player, Sound.BLOCK_NOTE_BLOCK_BIT, .3f, 1f); + if(distance < 30) Packet.playSound(hider, Sound.BLOCK_NOTE_BLOCK_BASEDRUM, .5f, 1f); + if(distance < 10) Packet.playSound(hider, Sound.BLOCK_NOTE_BLOCK_BIT, .3f, 1f); break; case 3: - if(distance < 30) Packet.playSound(player, Sound.BLOCK_NOTE_BLOCK_BASEDRUM, .3f, 1f); - if(distance < 10) Packet.playSound(player, Sound.BLOCK_NOTE_BLOCK_BIT, .3f, 1f); + if(distance < 30) Packet.playSound(hider, Sound.BLOCK_NOTE_BLOCK_BASEDRUM, .3f, 1f); + if(distance < 10) Packet.playSound(hider, Sound.BLOCK_NOTE_BLOCK_BIT, .3f, 1f); break; case 6: - if(distance < 10) Packet.playSound(player, Sound.BLOCK_NOTE_BLOCK_BIT, .3f, 1f); + if(distance < 10) Packet.playSound(hider, Sound.BLOCK_NOTE_BLOCK_BIT, .3f, 1f); break; case 9: - if(distance < 20) Packet.playSound(player, Sound.BLOCK_NOTE_BLOCK_BIT, .3f, 1f); + if(distance < 20) Packet.playSound(hider, Sound.BLOCK_NOTE_BLOCK_BIT, .3f, 1f); break; } @@ -76,13 +67,13 @@ public class Tick { if(tick%20 == 0) { if(gameLength > 0) { - timeLeft--; - for(Player player : playerList.values()) { - player.setLevel(timeLeft); + Main.plugin.timeLeft--; + for(Player player : Main.plugin.board.getPlayers()) { + player.setLevel(Main.plugin.timeLeft); } - if(timeLeft < 1) { + if(Main.plugin.timeLeft < 1) { if(announceMessagesToNonPlayers) Bukkit.broadcastMessage(gameoverPrefix + "Seekers ran out of time. Hiders win!"); - else Functions.broadcastMessage(gameoverPrefix + "Seekers ran out of time. Hiders win!"); + else Util.broadcastMessage(gameoverPrefix + "Seekers ran out of time. Hiders win!"); Stop.onStop(); } } |