package server.command;
import server.Player;
import server.Room;
import server.RoomEntity;
import server.SyntaxException;
import server.token.TokenString;
public class GotoCommand extends Command {
private static final TokenString TS_TELEPORT_2 = new TokenString("%N1 %v1/teleports/teleport/ to a new location.");
public GotoCommand() {
super(CommandCategory.ADMIN, "Teleports you to the specified entity, whereever it may be.");
}
@Override
public void run(Player player) throws SyntaxException {
String name = CommandProcessor.nextToken();
if (name == null || CommandProcessor.nextToken() != null) {
throw new SyntaxException();
}
RoomEntity target = player.matchGlobalRoomEntity(name);
if (target == null) {
player.sendText(true, "Unknown target: " + name);
return;
}
Room otherRoom = target.getRoom();
if (otherRoom == null) {
player.sendText(true, "Unable to find target.");
return;
}
if (otherRoom != player.getRoom()) {
player.sendText(true, null, null, null, TS_TELEPORT_2, null, player);
player.moveTo(otherRoom);
}
}
@Override
public String[] getSyntax(Player player) {
return new String[] { "<target>" };
}
}