diff options
Diffstat (limited to 'src/main/java/net/tylermurphy/hideAndSeek/command')
6 files changed, 129 insertions, 16 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/Join.java b/src/main/java/net/tylermurphy/hideAndSeek/command/Join.java index 88e650d..4b0baa3 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/command/Join.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/Join.java @@ -12,8 +12,8 @@ import static net.tylermurphy.hideAndSeek.Store.*; public class Join implements ICommand { public void execute(CommandSender sender, String[] args) { - if(!manualJoin) { - sender.sendMessage(errorPrefix + "Manual join isnt enabled in this server"); + if(!lobbyManualJoin) { + sender.sendMessage(errorPrefix + "Manual join/leave isnt set to manual in this server"); return; } if(!status.equals("Standby")) { @@ -29,23 +29,28 @@ public class Join implements ICommand { sender.sendMessage(errorPrefix + "An internal error has occured"); return; } + if(playerList.containsKey(player.getName())){ + sender.sendMessage(errorPrefix + "You are already in the lobby"); + return; + } playerList.put(player.getName(), player); Hider.add(player.getName()); HiderTeam.addEntry(player.getName()); + playerLastLocationList.put(player.getName(), player.getLocation()); player.teleport(new Location(Bukkit.getWorld(spawnWorld), spawnPosition.getX(),spawnPosition.getY(),spawnPosition.getZ())); - Bukkit.broadcastMessage(messagePrefix + sender.getName() + " has joined the game lobby"); + if(lobbyAnnounced) Bukkit.broadcastMessage(messagePrefix + sender.getName() + " has joined the HideAndSeek lobby"); } public String getLabel() { - return null; + return "join"; } public String getUsage() { - return null; + return ""; } public String getDescription() { - return null; + return "Joins the lobby if game is set to manual join/leave"; } } diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/Leave.java b/src/main/java/net/tylermurphy/hideAndSeek/command/Leave.java new file mode 100644 index 0000000..bde14da --- /dev/null +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/Leave.java @@ -0,0 +1,56 @@ +package net.tylermurphy.hideAndSeek.command; + +import org.bukkit.Bukkit; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import net.tylermurphy.hideAndSeek.util.ICommand; + +import static net.tylermurphy.hideAndSeek.Store.*; + +public class Leave implements ICommand { + + public void execute(CommandSender sender, String[] args) { + if(!lobbyManualJoin) { + sender.sendMessage(errorPrefix + "Manual join/leave isnt set to manual in this server"); + return; + } + if(!status.equals("Standby")) { + sender.sendMessage(errorPrefix + "Game is currently in session"); + return; + } + if(!lobbyStarted) { + sender.sendMessage(errorPrefix + "There is currently no lobby in session"); + return; + } + Player player = Bukkit.getServer().getPlayer(sender.getName()); + if(player == null) { + sender.sendMessage(errorPrefix + "An internal error has occured"); + return; + } + if(!playerList.containsKey(player.getName())) { + sender.sendMessage(errorPrefix + "You are currently not in the lobby"); + return; + } + playerList.remove(player.getName()); + Hider.remove(player.getName()); + Seeker.remove(player.getName()); + HiderTeam.removeEntry(player.getName()); + SeekerTeam.removeEntry(player.getName()); + player.teleport(playerLastLocationList.get(player.getName())); + if(lobbyAnnounced) Bukkit.broadcastMessage(messagePrefix + sender.getName() + " has left the HideAndSeek lobby"); + } + + public String getLabel() { + return "leave"; + } + + public String getUsage() { + return ""; + } + + public String getDescription() { + return "Leaves the lobby if game is set to manual join/leave"; + } + +}
\ No newline at end of file diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/Reload.java b/src/main/java/net/tylermurphy/hideAndSeek/command/Reload.java index 9771c2f..d333f6c 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/command/Reload.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/Reload.java @@ -25,7 +25,7 @@ public class Reload implements ICommand { } catch(Exception e) {} sender.sendMessage(messagePrefix + "Reloaded the config"); playerList = new HashMap<String,Player>(); - if(!manualJoin) { + if(!lobbyManualJoin) { for(Player p : Bukkit.getOnlinePlayers()) playerList.put(p.getName(), p); } diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/SetLobbyLocation.java b/src/main/java/net/tylermurphy/hideAndSeek/command/SetLobbyLocation.java new file mode 100644 index 0000000..299a227 --- /dev/null +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/SetLobbyLocation.java @@ -0,0 +1,48 @@ +package net.tylermurphy.hideAndSeek.command; + +import static net.tylermurphy.hideAndSeek.Store.*; + +import java.util.HashMap; +import java.util.Map; + +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.util.Vector; + +import net.tylermurphy.hideAndSeek.util.ICommand; + +public class SetLobbyLocation implements ICommand { + + public void execute(CommandSender sender, String[] args) { + Vector newLobbyPosition = new Vector(); + Player player = (Player) sender; + newLobbyPosition.setX(player.getLocation().getBlockX()); + newLobbyPosition.setY(player.getLocation().getBlockY()); + newLobbyPosition.setZ(player.getLocation().getBlockZ()); + if(!status.equals("Standby")) { + sender.sendMessage(errorPrefix + "Game is currently in session"); + return; + } + lobbyPosition = newLobbyPosition; + sender.sendMessage(messagePrefix + "Set lobby position to current location"); + Map<String, Object> temp = new HashMap<String,Object>(); + temp.put("x", lobbyPosition.getX()); + temp.put("y", lobbyPosition.getY()); + temp.put("z", lobbyPosition.getZ()); + addToSection("lobby.spawn",temp); + saveConfig(); + } + + public String getLabel() { + return "setlobby"; + } + + public String getUsage() { + return ""; + } + + public String getDescription() { + return "Sets hide and seeks lobby location to current position"; + } + +} diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/Start.java b/src/main/java/net/tylermurphy/hideAndSeek/command/Start.java index f5f2148..fb715d6 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/command/Start.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/Start.java @@ -32,6 +32,10 @@ public class Start implements ICommand { sender.sendMessage(errorPrefix + "Please set spawn location first"); return; } + if(lobbyPosition.getBlockX() == 0 && lobbyPosition.getBlockY() == 0 && lobbyPosition.getBlockZ() == 0) { + sender.sendMessage(errorPrefix + "Please set lobby location first"); + return; + } File destenation = new File(Main.root+File.separator+"hideandseek_"+spawnWorld); if(!destenation.exists()) { sender.sendMessage(errorPrefix + "Please set map save first"); @@ -94,54 +98,54 @@ public class Start implements ICommand { Functions.resetWorldborder("hideandseek_"+spawnWorld); status = "Starting"; int temp = gameId; - Bukkit.getServer().broadcastMessage(messagePrefix + "Hiders have 30 seconds to hide!"); + Functions.broadcastMessage(messagePrefix + "Hiders have 30 seconds to hide!"); Bukkit.getServer().getScheduler().runTaskLater(Main.plugin, new Runnable() { public void run() { if(temp != gameId) return; - Bukkit.getServer().broadcastMessage(messagePrefix + "Hiders have 20 seconds to hide!"); + Functions.broadcastMessage(messagePrefix + "Hiders have 20 seconds to hide!"); } }, 20 * 10); Bukkit.getServer().getScheduler().runTaskLater(Main.plugin, new Runnable() { public void run() { if(temp != gameId) return; - Bukkit.getServer().broadcastMessage(messagePrefix + "Hiders have 10 seconds to hide!"); + Functions.broadcastMessage(messagePrefix + "Hiders have 10 seconds to hide!"); } }, 20 * 20); Bukkit.getServer().getScheduler().runTaskLater(Main.plugin, new Runnable() { public void run() { if(temp != gameId) return; - Bukkit.getServer().broadcastMessage(messagePrefix + "Hiders have 5 seconds to hide!"); + Functions.broadcastMessage(messagePrefix + "Hiders have 5 seconds to hide!"); } }, 20 * 25); Bukkit.getServer().getScheduler().runTaskLater(Main.plugin, new Runnable() { public void run() { if(temp != gameId) return; - Bukkit.getServer().broadcastMessage(messagePrefix + "Hiders have 3 seconds to hide!"); + Functions.broadcastMessage(messagePrefix + "Hiders have 3 seconds to hide!"); } }, 20 * 27); Bukkit.getServer().getScheduler().runTaskLater(Main.plugin, new Runnable() { public void run() { if(temp != gameId) return; - Bukkit.getServer().broadcastMessage(messagePrefix + "Hiders have 2 seconds to hide!"); + Functions.broadcastMessage(messagePrefix + "Hiders have 2 seconds to hide!"); } }, 20 * 28); Bukkit.getServer().getScheduler().runTaskLater(Main.plugin, new Runnable() { public void run() { if(temp != gameId) return; - Bukkit.getServer().broadcastMessage(messagePrefix + "Hiders have 1 seconds to hide!"); + Functions.broadcastMessage(messagePrefix + "Hiders have 1 seconds to hide!"); } }, 20 * 29); Bukkit.getServer().getScheduler().runTaskLater(Main.plugin, new Runnable() { public void run() { if(temp != gameId) return; - Bukkit.getServer().broadcastMessage(messagePrefix + "Attetion SEEKERS, its time to find the hiders!"); + Functions.broadcastMessage(messagePrefix + "Attetion SEEKERS, its time to find the hiders!"); status = "Playing"; for(Player player : playerList.values()) { Functions.resetPlayer(player); diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/Stop.java b/src/main/java/net/tylermurphy/hideAndSeek/command/Stop.java index c956d3d..2b96809 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/command/Stop.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/Stop.java @@ -41,7 +41,7 @@ public class Stop implements ICommand { Hider.add(player.getName()); HiderTeam.addEntry(player.getName()); player.getInventory().clear(); - player.teleport(new Location(Bukkit.getWorld(spawnWorld), spawnPosition.getX(),spawnPosition.getY(),spawnPosition.getZ())); + player.teleport(new Location(Bukkit.getWorld(spawnWorld), lobbyPosition.getX(),lobbyPosition.getY(),lobbyPosition.getZ())); for(PotionEffect effect : player.getActivePotionEffects()){ player.removePotionEffect(effect.getType()); } |