Implement first pass at config loading, /join, /leave commands, tab completion (broken)
This commit is contained in:
@@ -18,8 +18,12 @@ public class AddPlayerCommand implements CommandExecutor {
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String s, String[] args) {
|
||||
String worldName = args[0];
|
||||
GameRunner runner = m_plugin.getRunnerForWorld(m_plugin.getServer().getWorld(worldName));
|
||||
String arenaName = args[0];
|
||||
GameRunner runner = m_plugin.getRunnerForArenaName(arenaName);
|
||||
if (runner == null) {
|
||||
sender.sendMessage("No such arena '" + arenaName + "'");
|
||||
return true;
|
||||
}
|
||||
Player player = m_plugin.getServer().getPlayer(args[1]);
|
||||
runner.addPlayer(player);
|
||||
return true;
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
package gg.malloc.defense.commands;
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import gg.malloc.defense.engine.GameRunner;
|
||||
|
||||
import gg.malloc.defense.Plugin;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class JoinGameCommand implements TabExecutor {
|
||||
Plugin m_plugin;
|
||||
|
||||
public JoinGameCommand(Plugin plugin) {
|
||||
m_plugin = plugin;
|
||||
}
|
||||
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) {
|
||||
ArrayList<String> ret = new ArrayList<>();
|
||||
if (args.length == 1) {
|
||||
String proposal = args[0].toLowerCase();
|
||||
for(String arena : m_plugin.arenaNames()) {
|
||||
if (proposal.startsWith(arena.toLowerCase())) {
|
||||
ret.add(arena);
|
||||
}
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String s, String[] args) {
|
||||
if (args.length != 1) {
|
||||
sender.sendMessage("Usage: join <game>");
|
||||
return true;
|
||||
}
|
||||
if (sender instanceof Player) {
|
||||
Player player = (Player)sender;
|
||||
String arenaName = args[0];
|
||||
sender.sendMessage("Joining arena '" + arenaName + "'...");
|
||||
GameRunner runner = m_plugin.getRunnerForArenaName(arenaName);
|
||||
if (runner == null) {
|
||||
sender.sendMessage("No such arena '" + arenaName + "'");
|
||||
return true;
|
||||
}
|
||||
m_plugin.addPlayerToArena(arenaName, player);
|
||||
} else {
|
||||
sender.sendMessage("Only players may use htis command.");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package gg.malloc.defense.commands;
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import gg.malloc.defense.engine.GameRunner;
|
||||
|
||||
import gg.malloc.defense.Plugin;
|
||||
|
||||
public class LeaveGameCommand implements CommandExecutor {
|
||||
Plugin m_plugin;
|
||||
|
||||
public LeaveGameCommand(Plugin plugin) {
|
||||
m_plugin = plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String s, String[] args) {
|
||||
if (sender instanceof Player) {
|
||||
Player player = (Player)sender;
|
||||
GameRunner runner = m_plugin.getRunnerForPlayer(player);
|
||||
if (runner == null) {
|
||||
sender.sendMessage("You ae not currently in a game.");
|
||||
return true;
|
||||
}
|
||||
runner.removePlayer(player);
|
||||
} else {
|
||||
sender.sendMessage("Only players may use htis command.");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
package gg.malloc.defense.commands;
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import gg.malloc.defense.engine.GameRunner;
|
||||
|
||||
import gg.malloc.defense.Plugin;
|
||||
|
||||
public class ListGamesCommand implements CommandExecutor {
|
||||
Plugin m_plugin;
|
||||
|
||||
public ListGamesCommand(Plugin plugin) {
|
||||
m_plugin = plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String s, String[] args) {
|
||||
sender.sendMessage("Available games:");
|
||||
for(String arenaName : m_plugin.arenaNames()) {
|
||||
String arenaDescription = arenaName + ": ";
|
||||
if (m_plugin.hasRunnerForArenaName(arenaName)) {
|
||||
GameRunner runner = m_plugin.getRunnerForArenaName(arenaName);
|
||||
arenaDescription += runner.getStage().toString();
|
||||
} else {
|
||||
arenaDescription += "Loadable";
|
||||
}
|
||||
sender.sendMessage(arenaDescription);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,9 +20,12 @@ public class PlayerReadyCommand implements CommandExecutor {
|
||||
public boolean onCommand(CommandSender sender, Command command, String s, String[] args) {
|
||||
if (sender instanceof Player) {
|
||||
Player player = (Player)sender;
|
||||
GameRunner runner = m_plugin.getRunnerForWorld(player.getLocation().getWorld());
|
||||
runner.addPlayer(player);
|
||||
runner.togglePlayerReady(player);
|
||||
GameRunner runner = m_plugin.getRunnerForPlayer(player);
|
||||
if (runner != null) {
|
||||
runner.togglePlayerReady(player);
|
||||
} else {
|
||||
sender.sendMessage("You are not part of any game.");
|
||||
}
|
||||
return true;
|
||||
} else {
|
||||
sender.sendMessage("You must be a player to use this command.");
|
||||
|
||||
@@ -1,25 +1,56 @@
|
||||
package gg.malloc.defense.commands;
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
import org.bukkit.World;
|
||||
|
||||
import gg.malloc.defense.engine.GameRunner;
|
||||
|
||||
import gg.malloc.defense.Plugin;
|
||||
|
||||
public class SetStageCommand implements CommandExecutor {
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class SetStageCommand implements TabExecutor {
|
||||
Plugin m_plugin;
|
||||
|
||||
public SetStageCommand(Plugin plugin) {
|
||||
m_plugin = plugin;
|
||||
}
|
||||
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) {
|
||||
ArrayList<String> ret = new ArrayList<>();
|
||||
if (args.length == 1) {
|
||||
String proposal = args[0];
|
||||
for(String arena : m_plugin.arenaNames()) {
|
||||
if (proposal.startsWith(arena)) {
|
||||
ret.add(arena);
|
||||
}
|
||||
}
|
||||
} else if (args.length == 2) {
|
||||
String proposal = args[1].toLowerCase();
|
||||
GameRunner.Stage stages[] = GameRunner.Stage.Idle.getDeclaringClass().getEnumConstants();
|
||||
for(GameRunner.Stage stage : stages) {
|
||||
if (proposal.startsWith(stage.toString().toLowerCase())) {
|
||||
ret.add(stage.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String s, String[] args) {
|
||||
World world = m_plugin.getServer().getWorld(args[1]);
|
||||
GameRunner runner = m_plugin.getRunnerForWorld(world);
|
||||
if (args.length != 2) {
|
||||
sender.sendMessage("Usage: setstage <stage> <arena>");
|
||||
return true;
|
||||
}
|
||||
GameRunner runner = m_plugin.getRunnerForArenaName(args[1]);
|
||||
if (runner == null) {
|
||||
sender.sendMessage("Unknown arena " + args[1]);
|
||||
return true;
|
||||
}
|
||||
String stateName = args[0].toLowerCase();
|
||||
boolean ret = false;
|
||||
GameRunner.Stage decodedStage = null;
|
||||
|
||||
Reference in New Issue
Block a user