@Override public LuaValue call(LuaValue pnts, LuaValue p) { Zone zone = MapTool.getFrame().getCurrentZoneRenderer().getZone(); if (!token.isSelfOrTrusted()) { throw new LuaError( new ParserException( I18N.getText("macro.function.general.noPerm", "token.movedOverPoints"))); } String points = pnts.checkjstring(); if (p.isnil()) { Path<?> path = token.getToken().getLastPath(); return LuaConverters.fromJson( TokenMoveFunctions.pathPointsToJSONArray( TokenMoveFunctions.crossedPoints( zone, token.getToken(), points, TokenMoveFunctions.getLastPathList(path, true)))); } else { String jsonPath = ObjectUtils.toString(LuaConverters.toJson(p)); return LuaConverters.fromJson( TokenMoveFunctions.pathPointsToJSONArray( TokenMoveFunctions.crossedPoints(zone, token.getToken(), points, jsonPath))); } }