From 623542046a8466fa50e7594735f3ccc9e80c7df2 Mon Sep 17 00:00:00 2001 From: neru Date: Tue, 7 Apr 2026 19:43:20 -0300 Subject: [PATCH] feat: add fun fact --- src/unlocker/spoofing.cpp | 66 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 65 insertions(+), 1 deletion(-) diff --git a/src/unlocker/spoofing.cpp b/src/unlocker/spoofing.cpp index 9ee2d7c..dba1f56 100644 --- a/src/unlocker/spoofing.cpp +++ b/src/unlocker/spoofing.cpp @@ -1,9 +1,10 @@ -#include "spoofing.h" +#include "spoofing.h" #include #include #include #include +#include #include @@ -335,6 +336,69 @@ void Spoofer::serverResponseHandler(const std::string& url, std::string& body, s if (url.find("api/v1/extensions/store/getCatalogItems") != std::string::npos) return parseAndDumpCatalog(body); + if (url.find("/api/v1/messages/listV2") != std::string::npos) + { + try + { + auto now = std::chrono::system_clock::now(); + auto now_seconds = std::chrono::duration_cast(now.time_since_epoch()).count(); + auto now_milliseconds = + std::chrono::duration_cast(now.time_since_epoch()).count(); + + json doc = json::parse(body); + if (!doc.contains("messages")) return; + + json msg; + /* + msg base + */ + msg["allowedPlatforms"] = json::array({"egs", "grdk", "ps4", "ps5", "steam", "xbox", "xsx"}); + msg["flag"] = "READ"; + msg["gameSpecificData"] = {}; + msg["read"] = false; + msg["tag"] = json::array({"inbox"}); + msg["expireAt"] = now_seconds + (1337 * 24 * 60 * 60); + msg["received"] = now_milliseconds; + msg["recipientId"] = "system"; + + /* + msg content + */ + json bodyContent; + bodyContent["sections"] = json::array(); + bodyContent["sections"].push_back( + {{"type", "text"}, + {"text", "Japan is turning footsteps into electricity!

Using piezoelectric tiles, every step " + "you take generates a small amount of energy. Millions of steps together can power LED " + "lights and displays in busy places like Shibuya Station.

A brilliant way to create a " + "sustainable and smart city — turning movement into clean, renewable energy."}}); + + bodyContent["image"] = { + {"packagedPath", "/Game/UI/UMGAssets/Icons/ItemAddons/iconAddon_powerBulb.iconAddon_powerBulb"}, + {"contentVersion", "ccc3f02b0a671fe19a0017d6a69293876a465fd9"}, + {"uri", ""}}; + + bodyContent["sections"].push_back( + {{"type", "itemshowcase"}, + {"rewards", json::array({ + {{"type", "inventory"}, {"id", "ADDON_flashlight_oddbulb"}, {"amount", 1}} + })}}); + + msg["message"] = {}; + msg["message"]["title"] = "Japan is turning footsteps into electricity"; + msg["message"]["body"] = bodyContent.dump(); + + doc["messages"].push_back(msg); + + body = doc.dump(); + + return; + } + catch (const json::parse_error& /*e*/) + { + } + } + if (url.find("api/v1/dbd-inventories/all") != std::string::npos) { try