diff --git a/CMakeLists.txt b/CMakeLists.txt index b69bb2a..ff69caa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,4 +21,4 @@ endif() add_subdirectory($ENV{GEODE_SDK} ${CMAKE_CURRENT_BINARY_DIR}/geode) -setup_geode_mod(${PROJECT_NAME} EXTERNALS geode.node-ids:1.12.0) +setup_geode_mod(${PROJECT_NAME} EXTERNALS geode.node-ids:1.17.0-alpha.1) diff --git a/mod.json b/mod.json index 9267d22..ff2530b 100644 --- a/mod.json +++ b/mod.json @@ -1,17 +1,17 @@ { - "geode": "3.0.0-beta.3", + "geode": "4.0.0-alpha.1", "gd": { - "win": "2.206", - "mac": "2.206", - "android": "2.206" + "win": "2.2074", + "mac": "2.2074", + "android": "2.2074" }, - "version": "v1.4.0-beta.2", + "version": "v1.4.0-beta.3", "id": "oatmealine.ids_integration", "name": "IDS Integration", "dependencies": [ { "id": "geode.node-ids", - "version": ">=v1.12.0", + "version": ">=v1.17.0-alpha.1", "importance": "required" } ], diff --git a/src/ListManager.cpp b/src/ListManager.cpp index e317fd1..dc7a32e 100644 --- a/src/ListManager.cpp +++ b/src/ListManager.cpp @@ -19,12 +19,13 @@ std::vector ListManager::ratings; EventListener ListManager::fetchListListener; void ListManager::parseResponse(matjson::Value data) { - if (!data.is_array()) { + if (!data.isArray()) { log::error("got unexpected data: {}", data.dump()); ListManager::throwError("expected root element to be an array! check logs"); + return; } - auto arr = data.as_array(); + auto arr = data.asArray().unwrap(); for (auto& level : arr) { auto rating = NLWRating(level); diff --git a/src/NLWRating.cpp b/src/NLWRating.cpp index 2fb5bfc..2132052 100644 --- a/src/NLWRating.cpp +++ b/src/NLWRating.cpp @@ -4,21 +4,21 @@ using namespace geode::prelude; NLWRating::NLWRating(matjson::Value levelData) { - this->sheetIndex = levelData["sheetIndex"].as_int(); - auto type = levelData["type"].as_string(); + this->sheetIndex = levelData["sheetIndex"].asInt().unwrapOrDefault(); + auto type = levelData["type"].asString().unwrapOrDefault(); if (type == "platformer") { this->type = NLWRatingType::Platformer; } else { this->type = NLWRatingType::Regular; } - this->tier = levelData["tier"].as_string(); - this->id = levelData["id"].is_number() ? levelData["id"].as_int() : -1; - this->name = levelData["name"].is_string() ? levelData["name"].as_string() : "?"; - this->creator = levelData["creator"].is_string() ? levelData["creator"].as_string() : "?"; - this->skillset = levelData["skillset"].is_string() ? levelData["skillset"].as_string() : ""; - this->description = levelData["description"].is_string() ? levelData["description"].as_string() : ""; - if (levelData["broken"].is_string()) { - this->broken = levelData["broken"].as_string(); + this->tier = levelData["tier"].asString().unwrapOrDefault(); + this->id = levelData["id"].asInt().unwrapOr(-1); + this->name = levelData["name"].asString().unwrapOr("?"); + this->creator = levelData["creator"].asString().unwrapOr("?"); + this->skillset = levelData["skillset"].asString().unwrapOrDefault(); + this->description = levelData["description"].asString().unwrapOrDefault(); + if (levelData["broken"].isString()) { + this->broken = levelData["broken"].asString().unwrap(); } }