Colors, basic mob AI categories, end world hunger, UX buffs
This commit is contained in:
@@ -24,10 +24,14 @@ public class JoinGameCommand implements TabExecutor {
|
||||
if (args.length == 1) {
|
||||
String proposal = args[0].toLowerCase();
|
||||
for(String arena : m_plugin.arenaNames()) {
|
||||
if (proposal.startsWith(arena.toLowerCase())) {
|
||||
if (arena.toLowerCase().startsWith(proposal.toLowerCase())) {
|
||||
ret.add(arena);
|
||||
}
|
||||
}
|
||||
} else if (args.length == 0) {
|
||||
for(String arena : m_plugin.arenaNames()) {
|
||||
ret.add(arena);
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -22,13 +22,13 @@ public class LeaveGameCommand implements CommandExecutor {
|
||||
Player player = (Player)sender;
|
||||
GameRunner runner = m_plugin.getRunnerForPlayer(player);
|
||||
if (runner == null) {
|
||||
sender.sendMessage("You ae not currently in a game.");
|
||||
sender.sendMessage("You are not currently in a game.");
|
||||
return true;
|
||||
}
|
||||
runner.removePlayer(player);
|
||||
m_plugin.returnPlayerToLobby(player);
|
||||
} else {
|
||||
sender.sendMessage("Only players may use htis command.");
|
||||
sender.sendMessage("Only players may use this command.");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -5,6 +5,11 @@ import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import net.md_5.bungee.api.chat.BaseComponent;
|
||||
import net.md_5.bungee.api.chat.ClickEvent;
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
import net.md_5.bungee.api.chat.ComponentBuilder;
|
||||
|
||||
import gg.malloc.defense.engine.GameRunner;
|
||||
|
||||
import gg.malloc.defense.Plugin;
|
||||
@@ -20,14 +25,28 @@ public class ListGamesCommand implements CommandExecutor {
|
||||
public boolean onCommand(CommandSender sender, Command command, String s, String[] args) {
|
||||
sender.sendMessage("Available games:");
|
||||
for(String arenaName : m_plugin.arenaNames()) {
|
||||
String arenaDescription = arenaName + ": ";
|
||||
String stageName = "Ready to play";
|
||||
ChatColor stageColor = ChatColor.WHITE;
|
||||
if (m_plugin.hasRunnerForArenaName(arenaName)) {
|
||||
GameRunner runner = m_plugin.getRunnerForArenaName(arenaName);
|
||||
arenaDescription += runner.getStage().toString();
|
||||
} else {
|
||||
arenaDescription += "Loadable";
|
||||
switch(runner.getStage()) {
|
||||
case Idle: stageColor = ChatColor.WHITE;stageName = "Open";break;
|
||||
case Warmup: stageColor = ChatColor.YELLOW;stageName = "" + runner.getPlayers().size() + " players warming up";break;
|
||||
case Countdown: stageColor = ChatColor.YELLOW;stageName = "" + runner.getPlayers().size() + " players warming up";break;
|
||||
case Playing: stageColor = ChatColor.GOLD;stageName = "" + runner.getPlayers().size() + " players";break;
|
||||
case GameOver: stageColor = ChatColor.RED;stageName = "Cleaning up...";break;
|
||||
}
|
||||
}
|
||||
sender.sendMessage(arenaDescription);
|
||||
|
||||
|
||||
BaseComponent[] message = new ComponentBuilder()
|
||||
.append(" " + arenaName).color(ChatColor.LIGHT_PURPLE).bold(true)
|
||||
.append(" - ").color(ChatColor.WHITE)
|
||||
.append(stageName).color(stageColor).italic(true)
|
||||
.append(" [Join] ").color(ChatColor.GOLD).bold(true)
|
||||
.event(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/malloc-defense:join " + arenaName))
|
||||
.create();
|
||||
sender.spigot().sendMessage(message);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -22,20 +22,24 @@ public class SetStageCommand implements TabExecutor {
|
||||
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);
|
||||
String proposal = args[0].toLowerCase();
|
||||
GameRunner.Stage stages[] = GameRunner.Stage.Idle.getDeclaringClass().getEnumConstants();
|
||||
for(GameRunner.Stage stage : stages) {
|
||||
if (stage.toString().toLowerCase().startsWith(proposal)) {
|
||||
ret.add(stage.toString());
|
||||
}
|
||||
}
|
||||
} 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());
|
||||
for(String arena : m_plugin.arenaNames()) {
|
||||
if (arena.toLowerCase().startsWith(proposal)) {
|
||||
ret.add(arena);
|
||||
}
|
||||
}
|
||||
} else if (args.length == 0) {
|
||||
for(String arena : m_plugin.arenaNames()) {
|
||||
ret.add(arena);
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user