diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/TeamListCommand.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/TeamListCommand.java new file mode 100644 index 0000000..31dcf70 --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/TeamListCommand.java @@ -0,0 +1,28 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams; + +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.jetbrains.annotations.NotNull; + +import java.util.stream.Collectors; + +public class TeamListCommand extends ApplianceCommand { + public TeamListCommand() { + super("teamList"); + } + + @Override + protected void execute(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { + String teams = this.getAppliance().getAllTeams().stream() + .map(team -> { + String members = team.members.stream() + .map(member -> String.format("%s(%s)", member.player.getName(), member.isDead ? "☠" : "♥")) + .collect(Collectors.joining(", ")); + return String.format("%s: %s", team.name, members); + }) + .collect(Collectors.joining("\n")); + + sender.sendMessage(teams); + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java index dbedcb5..35afa49 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java @@ -2,6 +2,7 @@ package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams; import eu.mhsl.craftattack.spawn.core.Main; import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.spawn.core.util.text.DisconnectInfo; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName.DisplayName; import eu.mhsl.craftattack.spawn.varo.api.repositories.TeamRepository; @@ -183,4 +184,9 @@ public class Teams extends Appliance implements DisplayName.Prefixed, DisplayNam protected @NotNull List listeners() { return List.of(new ConnectivityChangeListener()); } + + @Override + protected @NotNull List> commands() { + return List.of(new TeamListCommand()); + } }