From aab3c154c3520a67f85526649000f2ba63c62fd6 Mon Sep 17 00:00:00 2001 From: Tsubasa6848 Date: Tue, 5 Mar 2024 00:04:28 +0800 Subject: [PATCH] fix: fix error --- lib/BEPlaceholderAPI-JS.js | 6 +++--- lib/GMLIB_API-JS.js | 10 ++++++++++ src/EventAPI.cpp | 34 +++++++++++++++++----------------- 3 files changed, 30 insertions(+), 20 deletions(-) diff --git a/lib/BEPlaceholderAPI-JS.js b/lib/BEPlaceholderAPI-JS.js index 45284e6..50ba212 100644 --- a/lib/BEPlaceholderAPI-JS.js +++ b/lib/BEPlaceholderAPI-JS.js @@ -21,17 +21,17 @@ class PAPI { static registerPlayerPlaceholder(func, PluginName, PAPIName) { ll.export(func, PluginName, func.getName()); - PlaceholderAPI.registerPlayerPlaceholderAPI(PluginName, func.getName(), PAPIName); + return PlaceholderAPI.registerPlayerPlaceholderAPI(PluginName, func.getName(), PAPIName); } static registerServerPlaceholder(func, PluginName, PAPIName) { ll.export(func, PluginName, func.getName()); - PlaceholderAPI.registerServerPlaceholderAPI(PluginName, func.getName(), PAPIName); + return PlaceholderAPI.registerServerPlaceholderAPI(PluginName, func.getName(), PAPIName); } static registerStaticPlaceholder(func, PluginName, PAPIName, UpdateInterval = 50) { ll.export(func, PluginName, func.getName()); - PlaceholderAPI.registerStaticPlaceholderAPI(PluginName, func.getName(), PAPIName, UpdateInterval); + return PlaceholderAPI.registerStaticPlaceholderAPI(PluginName, func.getName(), PAPIName, UpdateInterval); } static getValue(key) { diff --git a/lib/GMLIB_API-JS.js b/lib/GMLIB_API-JS.js index 77654b7..ab5d461 100644 --- a/lib/GMLIB_API-JS.js +++ b/lib/GMLIB_API-JS.js @@ -15,6 +15,8 @@ const GMLIB_API = { getPlayerNbt: ll.import("GMLIB_API", "getPlayerNbt"), setPlayerNbt: ll.import("GMLIB_API", "setPlayerNbt"), setPlayerNbtTags: ll.import("GMLIB_API", "setPlayerNbtTags"), + resourcePackTranslate: ll.import("GMLIB_API", "resourcePackTranslate"), + chooseResourcePackI18nLanguage: ll.import("GMLIB_API", "chooseResourcePackI18nLanguage"), setEducationFeatureEnabled: ll.import("GMLib_ServerAPI", "setEducationFeatureEnabled"), registerAbilityCommand: ll.import("GMLib_ServerAPI", "registerAbilityCommand"), setEnableAchievement: ll.import("GMLib_ServerAPI", "setEnableAchievement"), @@ -300,6 +302,14 @@ class Minecraft { static throwEntity(entity, proj, speed = 2, offset = 3) { return GMLIB_API.throwEntity(entity, proj, speed = 2, offset = 3); } + + static chooseResourcePackI18nLanguage(language) { + return GMLIB_API.chooseResourcePackI18nLanguage(language); + } + + static resourcePackTranslate(key, params = []) { + return GMLIB_API.resourcePackTranslate(key, params); + } } class Recipes { diff --git a/src/EventAPI.cpp b/src/EventAPI.cpp index 73189ff..a4c1e25 100644 --- a/src/EventAPI.cpp +++ b/src/EventAPI.cpp @@ -17,12 +17,14 @@ void Export_Event_API() { ); eventBus->emplaceListener( [Call](GMLIB::Event::PacketEvent::ClientLoginAfterEvent& ev) { - Call( - ev.getRealName(), - ev.getUuid().asString(), - ev.getServerAuthXuid(), - ev.getClientAuthXuid() - ); + try { + Call( + ev.getRealName(), + ev.getUuid().asString(), + ev.getServerAuthXuid(), + ev.getClientAuthXuid() + ); + } catch (...) {} } ); return true; @@ -96,7 +98,9 @@ void Export_Event_API() { auto pos = ev.getPosition(); auto dimid = ev.getBlockSource().getDimensionId().id; std::pair lsePos = {pos, dimid}; - Call(&ev.getItem(), (Actor*)&ev.getItemActor(), lsePos, ev.getSpawner()); + try { + Call(&ev.getItem(), (Actor*)&ev.getItemActor(), lsePos, ev.getSpawner()); + } catch (...) {} } ); return true; @@ -133,21 +137,17 @@ void Export_Event_API() { return true; } case do_hash("onDeathMessage"): { - auto Call = RemoteCall::importAs< - bool(std::string message, std::vector, Actor * dead, Actor * killer, int cause)>( + auto Call = RemoteCall::importAs, Actor * dead)>( eventName, eventId ); eventBus->emplaceListener( [Call](GMLIB::Event::EntityEvent::DeathMessageAfterEvent& ev) { - auto msg = ev.getDeathMessage(); - auto source = ev.getDamageSource(); - Actor* entity = nullptr; - entity = GMLIB_Level::getLevel()->fetchEntity(source.getDamagingEntityUniqueID()); - if (entity->getOwner()) { - entity = entity->getOwner(); - } - Call(msg.first, msg.second, &ev.self(), entity, (int)source.getCause()); + auto msg = ev.getDeathMessage(); + auto source = ev.getDamageSource(); + try { + Call(msg.first, msg.second, &ev.self()); + } catch (...) {} } ); return true;