{
System.out.println("FATAL: Failed loading GameServerTable. Reason: " + e.getMessage());
e.printStackTrace();
System.exit(1);
}
GameServerTable gameServerTable = GameServerTable.getInstance();
System.out.println("Welcome to L2JFrozen GameServer Regitering");
System.out.println("Enter The id of the server you want to register");
System.out.println("Type 'help' to get a list of ids.");
System.out.println("Type 'clean' to unregister all currently registered gameservers on this LoginServer.");
while (!_choiceOk)
{
System.out.println("Your choice:");
_choice = _in.readLine();
if (_choice.equalsIgnoreCase("help"))
{
for (Map.Entry<Integer, String> entry : gameServerTable.getServerNames().entrySet())
{
System.out.println("Server: ID: " + entry.getKey() + "\t- " + entry.getValue() + " - In Use: " + (gameServerTable.hasRegisteredGameServerOnId(entry.getKey()) ? "YES" : "NO"));
}
System.out.println("You can also see servername.xml");
}
else if (_choice.equalsIgnoreCase("clean"))
{
System.out.print("This is going to UNREGISTER ALL servers from this LoginServer. Are you sure? (y/n) ");
_choice = _in.readLine();
if (_choice.equals("y"))
{
GameServerRegister.cleanRegisteredGameServersFromDB();
gameServerTable.getRegisteredGameServers().clear();
}
else
{
System.out.println("ABORTED");
}
}
else
{
try
{
int id = Integer.parseInt(_choice);
int size = gameServerTable.getServerNames().size();
if (size == 0)
{
System.out.println("No server names avalible, please make sure that servername.xml is in the LoginServer directory.");
System.exit(1);
}
_choice="";
while (!_choice.equalsIgnoreCase(""))
{
System.out.println("External Server Ip:");
_choice = _in.readLine();
}
String ip = _choice;
String name = gameServerTable.getServerNameById(id);
if (name == null)
{
System.out.println("No name for id: " + id);
continue;
}
if (gameServerTable.hasRegisteredGameServerOnId(id))
{
System.out.println("This id is not free");
}
else
{
byte[] hexId = LoginServerThread.generateHex(16);
gameServerTable.registerServerOnDB(hexId, id, ip);
Config.saveHexid(id, new BigInteger(hexId).toString(16), "hexid.txt");
System.out.println("Server Registered hexid saved to 'hexid.txt'");
System.out.println("Put this file in the /config folder of your gameserver.");
return;
}