From 83009cd29c0f7c61d4b29172342334d33d47e691 Mon Sep 17 00:00:00 2001 From: Tsubasa6848 <116721335+Tsubasa6848@users.noreply.github.com> Date: Wed, 15 May 2024 19:57:56 +0800 Subject: [PATCH] feat: add getAllPlayerInfo --- lib/GMLIB_API-JS.js | 11 +++++++--- manifest.json | 2 +- src/CompatibilityApi.cpp | 47 ++++++++++++++++++++++++++++++++++++---- src/Global.h | 2 +- tooth.json | 4 ++-- 5 files changed, 55 insertions(+), 11 deletions(-) diff --git a/lib/GMLIB_API-JS.js b/lib/GMLIB_API-JS.js index 5df68b9..04de1a4 100644 --- a/lib/GMLIB_API-JS.js +++ b/lib/GMLIB_API-JS.js @@ -1,6 +1,3 @@ -// LiteLoader-AIDS automatic generated -/// - const GMLIB_API = { createFloatingText: ll.import("GMLIB_API", "createFloatingText"), deleteFloatingText: ll.import("GMLIB_API", "deleteFloatingText"), @@ -85,6 +82,9 @@ const GMLIB_API = { clearDisplayObjective: ll.import("GMLIB_API", "clearDisplayObjective"), getAllObjectives: ll.import("GMLIB_API", "getAllObjectives"), getAllTrackedTargets: ll.import("GMLIB_API", "getAllTrackedTargets"), + getAllScoreboardPlayers: ll.import("GMLIB_API", "getAllScoreboardPlayers"), + getAllScoreboardFakePlayers: ll.import("GMLIB_API", "getAllScoreboardFakePlayers"), + getAllScoreboardEntities: ll.import("GMLIB_API", "getAllScoreboardEntities"), getPlayerFromUuid: ll.import("GMLIB_API", "getPlayerFromUuid"), getPlayerFromUniqueId: ll.import("GMLIB_API", "getPlayerFromUniqueId"), getEntityFromUniqueId: ll.import("GMLIB_API", "getEntityFromUniqueId"), @@ -105,6 +105,7 @@ const GMLIB_API = { getNameByXuid: ll.import("GMLIB_API", "getNameByXuid"), getXuidByName: ll.import("GMLIB_API", "getXuidByName"), getUuidByName: ll.import("GMLIB_API", "getUuidByName"), + getAllPlayerInfo: ll.import("GMLIB_API", "getAllPlayerInfo") } const FloatingTextList = []; @@ -866,6 +867,10 @@ class UserCache { let result = GMLIB_API.getUuidByName(name); return result == "" ? null : result; } + + static getAllPlayerInfo() { + return GMLIB_API.getAllPlayerInfo(); + } }; LLSE_Player.prototype.toEntity = function () { diff --git a/manifest.json b/manifest.json index ca6b444..bf503af 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "name": "${pluginName}", "entry": "${pluginFile}", - "version": "0.12.5", + "version": "0.12.6", "author": "GroupMountain", "type": "native", "dependencies": [ diff --git a/src/CompatibilityApi.cpp b/src/CompatibilityApi.cpp index d79871b..2fa18bc 100644 --- a/src/CompatibilityApi.cpp +++ b/src/CompatibilityApi.cpp @@ -395,32 +395,56 @@ void Export_Compatibility_API() { RemoteCall::exportAs("GMLIB_API", "getAllObjectives", []() -> std::vector { auto objs = GMLIB_Scoreboard::getInstance()->getObjectives(); std::vector result; - for (auto obj : objs) { + for (auto& obj : objs) { result.push_back(obj->getName()); } return result; }); + RemoteCall::exportAs("GMLIB_API", "getAllScoreboardPlayers", []() -> std::vector { + auto uuids = GMLIB_Scoreboard::getInstance()->getAllPlayerUuids(); + std::vector result; + for (auto& uuid : uuids) { + result.push_back(uuid.asString()); + } + return result; + }); + RemoteCall::exportAs("GMLIB_API", "getAllScoreboardFakePlayers", []() -> std::vector { + auto names = GMLIB_Scoreboard::getInstance()->getAllFakePlayers(); + std::vector result; + for (auto& name : names) { + result.push_back(name); + } + return result; + }); + RemoteCall::exportAs("GMLIB_API", "getAllScoreboardEntities", []() -> std::vector { + auto uniqueIds = GMLIB_Scoreboard::getInstance()->getAllEntities(); + std::vector result; + for (auto& uniqueId : uniqueIds) { + result.push_back(std::to_string(uniqueId.id)); + } + return result; + }); RemoteCall::exportAs( "GMLIB_API", "getAllTrackedTargets", []() -> std::vector> { std::vector> result; auto uuids = GMLIB_Scoreboard::getInstance()->getAllPlayerUuids(); - for (auto uuid : uuids) { + for (auto& uuid : uuids) { std::unordered_map data; data["Type"] = "Player"; data["Uuid"] = uuid.asString(); result.push_back(data); } auto names = GMLIB_Scoreboard::getInstance()->getAllFakePlayers(); - for (auto name : names) { + for (auto& name : names) { std::unordered_map data; data["Type"] = "FakePlayer"; data["Name"] = name; result.push_back(data); } auto uniqueIds = GMLIB_Scoreboard::getInstance()->getAllEntities(); - for (auto uniqueId : uniqueIds) { + for (auto& uniqueId : uniqueIds) { std::unordered_map data; data["Type"] = "Entity"; data["UniqueId"] = std::to_string(uniqueId.id); @@ -500,4 +524,19 @@ void Export_Compatibility_API() { auto result = GMLIB::UserCache::getUuidByName(name); return result ? result.value().asString() : ""; }); + RemoteCall::exportAs( + "GMLIB_API", + "getAllPlayerInfo", + []() -> std::vector> { + std::vector> result; + GMLIB::UserCache::forEach([&result](const GMLIB::UserCache::UserCacheEntry& entry) { + std::unordered_map info; + info["Name"] = entry.mName; + info["Xuid"] = entry.mXuid; + info["Uuid"] = entry.mUuid.asString(); + result.push_back(info); + }); + return result; + } + ); } \ No newline at end of file diff --git a/src/Global.h b/src/Global.h index e143786..054d234 100644 --- a/src/Global.h +++ b/src/Global.h @@ -5,7 +5,7 @@ #define PLUGIN_NAME fmt::format(fg(fmt::color::light_green), "GMLIB-LRCA") -#define LIB_VERSION GMLIB::Version(0, 12, 5) +#define LIB_VERSION GMLIB::Version(0, 12, 6) extern ll::Logger logger; diff --git a/tooth.json b/tooth.json index 49a98d9..425e110 100644 --- a/tooth.json +++ b/tooth.json @@ -1,7 +1,7 @@ { "format_version": 2, "tooth": "github.com/GroupMountain/GMLIB-LegacyRemoteCallApi", - "version": "0.12.5", + "version": "0.12.6", "info": { "name": "GMLIB-LegacyRemoteCallApi", "description": "Legacy RemoteCall API for GMLIB", @@ -14,7 +14,7 @@ "library" ] }, - "asset_url": "https://github.com/GroupMountain/GMLIB-LegacyRemoteCallApi/releases/download/v0.12.5/GMLIB-LegacyRemoteCallApi-windows-x64.zip", + "asset_url": "https://github.com/GroupMountain/GMLIB-LegacyRemoteCallApi/releases/download/v0.12.6/GMLIB-LegacyRemoteCallApi-windows-x64.zip", "dependencies": { "github.com/GroupMountain/GMLIB": ">=0.12.4" },