package org.ggp.base.apps.player; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.ggp.base.player.GamePlayer; import org.ggp.base.player.gamer.Gamer; import org.ggp.base.util.reflection.ProjectSearcher; /** * This is a simple command line app for running players. * * @author schreib */ public final class PlayerRunner { public static void main(String[] args) throws IOException, InstantiationException, IllegalAccessException { if (args.length != 2 || args[0].equals("${arg0}")) { System.out.println("PlayerRunner [port] [name]"); System.out.println("example: ant PlayerRunner -Darg0=9147 -Darg1=TurboTurtle"); return; } int port = Integer.parseInt(args[0]); String name = args[1]; System.out.println("Starting up preconfigured player on port " + port + " using player class named " + name); Class<?> chosenGamerClass = null; List<String> availableGamers = new ArrayList<String>(); for (Class<?> gamerClass : ProjectSearcher.GAMERS.getConcreteClasses()) { availableGamers.add(gamerClass.getSimpleName()); if (gamerClass.getSimpleName().equals(name)) { chosenGamerClass = gamerClass; } } if (chosenGamerClass == null) { System.out.println("Could not find player class with that name. Available choices are: " + Arrays.toString(availableGamers.toArray())); return; } Gamer gamer = (Gamer) chosenGamerClass.newInstance(); new GamePlayer(port, gamer).start(); } }