public String processInput(String input) { String output = ""; switch (state) { case WAITING: if (input.startsWith("login")) { String[] array = input.split(" "); String username = array[1]; String password = array[2]; if (array.length > 2) { Player player = new Player(session.getGame(), session, session.getGame().getLogger(), username); String loadedPassword = player.getPropertyManager().getProperty(PropertyManager.PASSWORD); if (loadedPassword == password || loadedPassword == null) { for (Player p : session.getGame().getPlayers()) if (p.getName().equals(username)) return "This account is already logged in!"; if (loadedPassword == null) player.setPassword(password); session.setPlayer(player); player.sendMessage("Welcome to " + Constants.SERVER_NAME + ", " + username + "!"); player.setRoom(new Town()); state = State.LOGGED_IN; output = ""; } else { output = "Invalid username or password!"; } } else output = loginError; } else output = loginError; //state = FINISHED; break; case LOGGED_IN: if (input.startsWith("logout")) state = State.FINISHED; if (input.startsWith("say")) { for (Player player : session.getGame().getPlayers()) if (!player.getName().equals(session.getPlayer().getName()) && player.getRoom().getClass() == session.getPlayer().getRoom().getClass()) player.sendMessage(session.getPlayer().getName() + ": " + input.replace("say ", "")); } if (input.startsWith("go") && input.split(" ").length > 1) { Direction direction; switch (input.split(" ")[1]) { case "north": direction = session.getPlayer().getRoom().getNorth(); if (direction != null) { session.getPlayer().setRoom(direction.getRoom()); } else { output = "There is nothing to the north!"; } break; case "east": direction = session.getPlayer().getRoom().getEast(); if (direction != null) { session.getPlayer().setRoom(direction.getRoom()); } else { output = "There is nothing to the east!"; } break; case "south": direction = session.getPlayer().getRoom().getSouth(); if (direction != null) { session.getPlayer().setRoom(direction.getRoom()); } else { output = "There is nothing to the south!"; } break; case "west": direction = session.getPlayer().getRoom().getWest(); if (direction != null) { session.getPlayer().setRoom(direction.getRoom()); } else { output = "There is nothing to the west!"; } break; } } break; case FINISHED: session.remove(); break; } return output; }