From cea8141c9cbcc6cc00af01746238081f6b7677bb Mon Sep 17 00:00:00 2001 From: neru Date: Sat, 21 Mar 2026 18:00:15 -0300 Subject: [PATCH] fix: handle bloodweb endpoints --- src/unlocker/main.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/unlocker/main.cpp b/src/unlocker/main.cpp index f4a62ad..522832a 100644 --- a/src/unlocker/main.cpp +++ b/src/unlocker/main.cpp @@ -343,7 +343,7 @@ int main() else Log::warning("No catalog data available to inject into global inventory yet!"); } - else if (url.find("api/v1/dbd-character-data/") != std::string::npos && url.find("/bloodweb") == std::string::npos) + else if (url.find("api/v1/dbd-character-data/") != std::string::npos) { std::vector localStackable; std::vector localUnique; @@ -361,7 +361,9 @@ int main() std::unordered_set uniqueSet(localUnique.begin(), localUnique.end()); std::regex qtyRegex(R"("quantity"\s*:\s*\d+)"); - const char* targetArrays[] = {"\"characterItems\":[", "\"inventory\":["}; + const char* targetArrays[] = {"\"characterItems\":[", "\"inventory\":[", "\"bloodwebRewards\":[", + "\"prestigeRewards\":["}; + bool isBloodweb = url.find("/bloodweb") != std::string::npos; size_t arraysModified = 0; for (const char* arrayKey : targetArrays) @@ -431,9 +433,13 @@ int main() } }; - injectIfMissing(localStackable, 100); - injectIfMissing(localUnique, 1); - injectIfMissing(localPerks, 3); + if (!isBloodweb && (std::string_view(arrayKey) == "\"characterItems\":[" || + std::string_view(arrayKey) == "\"inventory\":[")) + { + injectIfMissing(localStackable, 100); + injectIfMissing(localUnique, 1); + injectIfMissing(localPerks, 3); + } data.replace(pos, endPos - pos, currentItems); pos += currentItems.length();