Colors, basic mob AI categories, end world hunger, UX buffs

This commit is contained in:
2022-05-15 18:16:35 +02:00
parent 9890936154
commit 99197d92bb
13 changed files with 275 additions and 103 deletions

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}