From 3918069ce4226987e12d772feec82d9e9a428bbf Mon Sep 17 00:00:00 2001 From: Tsubasa6848 <116721335+Tsubasa6848@users.noreply.github.com> Date: Fri, 3 May 2024 01:39:59 +0800 Subject: [PATCH] adapt: adapt to GMLIB v0.12.4 --- SDK-GMLIB | 2 +- lib/GMLIB_API-JS.js | 13 +++---------- src/CompatibilityApi.cpp | 20 ++++++++------------ src/LegacyServerApi.cpp | 10 ++++++---- 4 files changed, 18 insertions(+), 27 deletions(-) diff --git a/SDK-GMLIB b/SDK-GMLIB index e4f3e2a..fd84632 160000 --- a/SDK-GMLIB +++ b/SDK-GMLIB @@ -1 +1 @@ -Subproject commit e4f3e2a188eb9218789c841e4dd4ea2b23d5ef02 +Subproject commit fd8463224fca3a7a716b7dc29bac2cc4aeae4dfb diff --git a/lib/GMLIB_API-JS.js b/lib/GMLIB_API-JS.js index e9a76fc..e596f3e 100644 --- a/lib/GMLIB_API-JS.js +++ b/lib/GMLIB_API-JS.js @@ -280,22 +280,15 @@ class Minecraft { } static getPlayerNbt(uuid) { - let snbt = GMLIB_API.getPlayerNbt(uuid); - if (snbt == "null") { - return null; - } - let nbt = NBT.parseSNBT(snbt); - return nbt; + return GMLIB_API.getPlayerNbt(uuid); } static setPlayerNbt(uuid, nbt, forceCreate = true) { - let snbt = nbt.toSNBT(); - return GMLIB_API.setPlayerNbt(uuid, snbt, forceCreate); + return GMLIB_API.setPlayerNbt(uuid, nbt, forceCreate); } static setPlayerNbtTags(uuid, nbt, tags) { - let snbt = nbt.toSNBT(); - return GMLIB_API.setPlayerNbtTags(uuid, snbt, tags); + return GMLIB_API.setPlayerNbtTags(uuid, nbt, tags); } static getPlayerPosition(uuid) { diff --git a/src/CompatibilityApi.cpp b/src/CompatibilityApi.cpp index bb36622..c442c0c 100644 --- a/src/CompatibilityApi.cpp +++ b/src/CompatibilityApi.cpp @@ -53,25 +53,21 @@ void Export_Compatibility_API() { } return result; }); - RemoteCall::exportAs("GMLIB_API", "getPlayerNbt", [](std::string uuid) -> std::string { + RemoteCall::exportAs("GMLIB_API", "getPlayerNbt", [](std::string uuid) -> std::unique_ptr { auto uid = mce::UUID::fromString(uuid); - auto nbt = GMLIB_Player::getPlayerNbt(uid); - if (nbt) { - return nbt->toSnbt(); - } - return "null"; + return std::move(GMLIB_Player::getPlayerNbt(uid)); }); - RemoteCall::exportAs("GMLIB_API", "setPlayerNbt", [](std::string uuid, std::string snbt, bool forceCreate) -> bool { + RemoteCall::exportAs("GMLIB_API", "setPlayerNbt", [](std::string uuid, CompoundTag* nbt, bool forceCreate) -> bool { auto uid = mce::UUID::fromString(uuid); - auto nbt = CompoundTag::fromSnbt(snbt); + logger.warn(nbt->toSnbt()); return GMLIB_Player::setPlayerNbt(uid, *nbt, forceCreate); }); RemoteCall::exportAs( "GMLIB_API", "setPlayerNbtTags", - [](std::string uuid, std::string snbt, std::vector tags) -> bool { + [](std::string uuid, CompoundTag* nbt, std::vector tags) -> bool { auto uid = mce::UUID::fromString(uuid); - auto nbt = CompoundTag::fromSnbt(snbt); + logger.warn(nbt->toSnbt()); return GMLIB_Player::setPlayerNbtTags(uid, *nbt, tags); } ); @@ -176,8 +172,8 @@ void Export_Compatibility_API() { } }); RemoteCall::exportAs("GMLIB_API", "getResourcePackI18nLanguage", []() -> std::string { - if (auto result = I18nAPI::getCurrentLanguageCode()) { - return result.value(); + if (GMLIB_Level::getInstance()) { + return I18nAPI::getCurrentLanguageCode(); } return "unknown"; }); diff --git a/src/LegacyServerApi.cpp b/src/LegacyServerApi.cpp index 812579d..7fc0f8e 100644 --- a/src/LegacyServerApi.cpp +++ b/src/LegacyServerApi.cpp @@ -2,16 +2,18 @@ void Export_Legacy_GMLib_ServerAPI() { RemoteCall::exportAs("GMLib_ServerAPI", "setEducationFeatureEnabled", []() -> void { - GMLIB_Level::addEducationEditionRequired(); + GMLIB_Level::tryEnableEducationEdition(); }); RemoteCall::exportAs("GMLib_ServerAPI", "registerAbilityCommand", []() -> void { - GMLIB_Level::forceEnableAbilityCommand(); + GMLIB_Level::tryRegisterAbilityCommand(); }); RemoteCall::exportAs("GMLib_ServerAPI", "setEnableAchievement", []() -> void { GMLIB_Level::setForceAchievementsEnabled(); }); - RemoteCall::exportAs("GMLib_ServerAPI", "setForceTrustSkins", []() -> void { GMLIB_Level::setForceTrustSkin(); }); - RemoteCall::exportAs("GMLib_ServerAPI", "enableCoResourcePack", []() -> void { GMLIB_Level::setCoResourcePack(); }); + RemoteCall::exportAs("GMLib_ServerAPI", "setForceTrustSkins", []() -> void { GMLIB_Level::trustAllSkins(); }); + RemoteCall::exportAs("GMLib_ServerAPI", "enableCoResourcePack", []() -> void { + GMLIB_Level::requireServerResourcePackAndAllowClientResourcePack(); + }); RemoteCall::exportAs("GMLib_ServerAPI", "getLevelName", []() -> std::string { auto level = GMLIB_Level::getInstance(); if (!level) {