diff --git a/src/main/java/com/garbagemule/MobArena/Msg.java b/src/main/java/com/garbagemule/MobArena/Msg.java index 453886f..a1d2270 100644 --- a/src/main/java/com/garbagemule/MobArena/Msg.java +++ b/src/main/java/com/garbagemule/MobArena/Msg.java @@ -64,6 +64,7 @@ public enum Msg { LOBBY_CLASS_PRICE("This class costs &c%&r (paid on arena start)."), LOBBY_CLASS_TOO_EXPENSIVE("You can't afford that class (&c%&r)"), LOBBY_NO_SUCH_CLASS("There is no class named &c%&r."), + NOT_IN_LOBBY("You are not in the lobby"), WARP_TO_ARENA("Warping to the arena not allowed!"), WARP_FROM_ARENA("Warping from the arena not allowed!"), WAVE_DEFAULT("Wave &b#%&r!"), diff --git a/src/main/java/com/garbagemule/MobArena/commands/CommandHandler.java b/src/main/java/com/garbagemule/MobArena/commands/CommandHandler.java index 09484a8..e51c54c 100644 --- a/src/main/java/com/garbagemule/MobArena/commands/CommandHandler.java +++ b/src/main/java/com/garbagemule/MobArena/commands/CommandHandler.java @@ -29,6 +29,7 @@ import com.garbagemule.MobArena.commands.user.NotReadyCommand; import com.garbagemule.MobArena.commands.user.PickClassCommand; import com.garbagemule.MobArena.commands.user.PlayerListCommand; import com.garbagemule.MobArena.commands.user.SpecCommand; +import com.garbagemule.MobArena.commands.user.ReadyCommand; import com.garbagemule.MobArena.framework.ArenaMaster; import org.bukkit.ChatColor; import org.bukkit.command.CommandExecutor; @@ -252,6 +253,7 @@ public class CommandHandler implements CommandExecutor register(PlayerListCommand.class); register(NotReadyCommand.class); register(PickClassCommand.class); + register(ReadyCommand.class); // mobarena.admin register(EnableCommand.class); diff --git a/src/main/java/com/garbagemule/MobArena/commands/user/NotReadyCommand.java b/src/main/java/com/garbagemule/MobArena/commands/user/NotReadyCommand.java index 685cace..0d64a27 100644 --- a/src/main/java/com/garbagemule/MobArena/commands/user/NotReadyCommand.java +++ b/src/main/java/com/garbagemule/MobArena/commands/user/NotReadyCommand.java @@ -12,7 +12,7 @@ import org.bukkit.entity.Player; @CommandInfo( name = "notready", - pattern = "notr.*|ready", + pattern = "notr.*", usage = "/ma notready ()", desc = "see which players aren't ready", permission = "mobarena.use.notready" diff --git a/src/main/java/com/garbagemule/MobArena/commands/user/ReadyCommand.java b/src/main/java/com/garbagemule/MobArena/commands/user/ReadyCommand.java new file mode 100644 index 0000000..2918fd1 --- /dev/null +++ b/src/main/java/com/garbagemule/MobArena/commands/user/ReadyCommand.java @@ -0,0 +1,44 @@ +package com.garbagemule.MobArena.commands.user; + +import com.garbagemule.MobArena.Msg; +import com.garbagemule.MobArena.commands.Command; +import com.garbagemule.MobArena.commands.CommandInfo; +import com.garbagemule.MobArena.commands.Commands; +import com.garbagemule.MobArena.framework.Arena; +import com.garbagemule.MobArena.framework.ArenaMaster; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +@CommandInfo( + name = "join", + pattern = "ready|rdy", + usage = "/ma ready", + desc = "ready to start the battle", + permission = "mobarena.use.ready" +) +public class ReadyCommand implements Command { + @Override + public boolean execute(ArenaMaster am, CommandSender sender, String... args) { + if (!Commands.isPlayer(sender)) { + am.getGlobalMessenger().tell(sender, Msg.MISC_NOT_FROM_CONSOLE); + return true; + } + + Player p = Commands.unwrap(sender); + + Arena arena = am.getArenaWithPlayer(p); + if (arena == null) { + am.getGlobalMessenger().tell(p, Msg.NOT_IN_LOBBY); + } else if (!arena.inLobby(p)) { + arena.getMessenger().tell(p, Msg.NOT_IN_LOBBY); + } else if (arena.getArenaPlayer(p).getArenaClass() != null) { + arena.getMessenger().tell(p, Msg.LOBBY_PLAYER_READY); + arena.playerReady(p); + } else { + arena.getMessenger().tell(p, Msg.LOBBY_PICK_CLASS); + } + + return true; + } + +}