Improved server cli slightly.
This commit is contained in:
		
							parent
							
								
									289ce50552
								
							
						
					
					
						commit
						a1c1aad065
					
				| 
						 | 
					@ -5,10 +5,7 @@ import nl.andrewl.aos_core.model.Team;
 | 
				
			||||||
import org.joml.Vector3f;
 | 
					import org.joml.Vector3f;
 | 
				
			||||||
import org.joml.Vector3i;
 | 
					import org.joml.Vector3i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.Collection;
 | 
					import java.util.*;
 | 
				
			||||||
import java.util.Collections;
 | 
					 | 
				
			||||||
import java.util.HashMap;
 | 
					 | 
				
			||||||
import java.util.Map;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Component that manages the teams on a server.
 | 
					 * Component that manages the teams on a server.
 | 
				
			||||||
| 
						 | 
					@ -32,6 +29,21 @@ public class TeamManager {
 | 
				
			||||||
		return teams.get(id);
 | 
							return teams.get(id);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public Optional<Team> findByIdOrName(String ident) {
 | 
				
			||||||
 | 
							for (var team : teams.values()) {
 | 
				
			||||||
 | 
								if (team.getName().equals(ident)) return Optional.of(team);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							try {
 | 
				
			||||||
 | 
								int id = Integer.parseInt(ident);
 | 
				
			||||||
 | 
								for (var team : teams.values()) {
 | 
				
			||||||
 | 
									if (team.getId() == id) return Optional.of(team);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								return Optional.empty();
 | 
				
			||||||
 | 
							} catch (NumberFormatException e) {
 | 
				
			||||||
 | 
								return Optional.empty();
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public Collection<Team> getTeams() {
 | 
						public Collection<Team> getTeams() {
 | 
				
			||||||
		return Collections.unmodifiableCollection(teams.values());
 | 
							return Collections.unmodifiableCollection(teams.values());
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -15,7 +15,7 @@ import java.util.Comparator;
 | 
				
			||||||
public class PlayersCommand {
 | 
					public class PlayersCommand {
 | 
				
			||||||
	@CommandLine.ParentCommand ServerCli cli;
 | 
						@CommandLine.ParentCommand ServerCli cli;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@CommandLine.Command(description = "Lists all online players.")
 | 
						@CommandLine.Command(name = "list", description = "Lists all online players.")
 | 
				
			||||||
	public void list() {
 | 
						public void list() {
 | 
				
			||||||
		var playerManager = cli.server.getPlayerManager();
 | 
							var playerManager = cli.server.getPlayerManager();
 | 
				
			||||||
		Collection<ServerPlayer> players = playerManager.getPlayers();
 | 
							Collection<ServerPlayer> players = playerManager.getPlayers();
 | 
				
			||||||
| 
						 | 
					@ -39,11 +39,27 @@ public class PlayersCommand {
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@CommandLine.Command(description = "Kicks a player from the server.")
 | 
						@CommandLine.Command(name = "list", description = "Kicks a player from the server.")
 | 
				
			||||||
	public void kick(@CommandLine.Parameters(description = "The id or name of the player to kick.") String playerIdent) {
 | 
						public void kick(
 | 
				
			||||||
 | 
								@CommandLine.Parameters(paramLabel = "player", description = "The id or name of the player to kick.") String playerIdent
 | 
				
			||||||
 | 
						) {
 | 
				
			||||||
		cli.server.getPlayerManager().findByIdOrName(playerIdent)
 | 
							cli.server.getPlayerManager().findByIdOrName(playerIdent)
 | 
				
			||||||
				.ifPresentOrElse(player -> {
 | 
									.ifPresentOrElse(player -> {
 | 
				
			||||||
					cli.server.getPlayerManager().deregister(player);
 | 
										cli.server.getPlayerManager().deregister(player);
 | 
				
			||||||
				}, () -> cli.out.println("Player not found."));
 | 
									}, () -> cli.out.println("Player not found."));
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@CommandLine.Command(name = "set-team", description = "Sets a player's team.")
 | 
				
			||||||
 | 
						public void setTeam(
 | 
				
			||||||
 | 
								@CommandLine.Parameters(paramLabel = "player", description = "The id or name of the player to set the team of.", index = "0") String playerIdent,
 | 
				
			||||||
 | 
								@CommandLine.Parameters(paramLabel = "team", description = "The id or name of the team to move the player to.", index = "1") String teamIdent
 | 
				
			||||||
 | 
						) {
 | 
				
			||||||
 | 
							cli.server.getPlayerManager().findByIdOrName(playerIdent)
 | 
				
			||||||
 | 
									.ifPresentOrElse(player -> {
 | 
				
			||||||
 | 
										cli.server.getTeamManager().findByIdOrName(teamIdent)
 | 
				
			||||||
 | 
												.ifPresentOrElse(team -> {
 | 
				
			||||||
 | 
													cli.out.println("Not yet implemented.");
 | 
				
			||||||
 | 
												}, () -> cli.out.println("Team not found."));
 | 
				
			||||||
 | 
									}, () -> cli.out.println("Player not found."));
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue