Package org.ggp.base.apps.player

Source Code of org.ggp.base.apps.player.PlayerRunner

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();
  }
}
TOP

Related Classes of org.ggp.base.apps.player.PlayerRunner

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.