From a47f8c729d221a097630f0843ba3ffd315868b25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=90=E6=B2=90=E5=91=80?= <163636894+zimuya4153@users.noreply.github.com> Date: Sat, 13 Jul 2024 13:13:40 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A03=E4=B8=AA=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - getPlayerHungry - getPlayerArmorCoverPercentage - getPlayerArmorValue --- lib/GMLIB_API-JS.d.ts | 9 +++++++++ lib/GMLIB_API-JS.js | 35 ++++++++++++++++++++++++++++++++++- src/CompatibilityApi.cpp | 10 ++++++++++ 3 files changed, 53 insertions(+), 1 deletion(-) diff --git a/lib/GMLIB_API-JS.d.ts b/lib/GMLIB_API-JS.d.ts index 8dfeb69..b21eeff 100644 --- a/lib/GMLIB_API-JS.d.ts +++ b/lib/GMLIB_API-JS.d.ts @@ -1229,4 +1229,13 @@ interface Item { /** 能放置的方块 */ blocks: string[] ): void; + + /** (GMLIB)获取玩家饱食度 */ + getHungry(): number; + + /** (GMLIB)获取玩家盔甲覆盖百分比 */ + getArmorCoverPercentage(): number; + + /** (GMLIB)获取玩家盔甲值 */ + getArmorValue(): number; } \ No newline at end of file diff --git a/lib/GMLIB_API-JS.js b/lib/GMLIB_API-JS.js index 6beaeac..a9d3e1c 100644 --- a/lib/GMLIB_API-JS.js +++ b/lib/GMLIB_API-JS.js @@ -311,7 +311,13 @@ const GMLIB_API = { /** 获取物品冒险模式下能放置在什么方块上 @type {function(Item):Array.} */ getItemCanPlaceOn: ll.import("GMLIB_API", "getItemCanPlaceOn"), /** 设置物品冒险模式下能放置在什么方块上 @type {function(Item,Array.):void} */ - setItemCanPlaceOn: ll.import("GMLIB_API", "setItemCanPlaceOn") + setItemCanPlaceOn: ll.import("GMLIB_API", "setItemCanPlaceOn"), + /** 获取玩家饱食度 @type {function(Player):number} */ + getPlayerHungry: ll.import("GMLIB_API", "getPlayerHungry"), + /** 获取玩家盔甲覆盖百分比 @type {function(Player):number} */ + getPlayerArmorCoverPercentage: ll.import("GMLIB_API", "getPlayerArmorCoverPercentage"), + /** 获取玩家盔甲值 @type {function(Player):number} */ + getPlayerArmorValue: ll.import("GMLIB_API", "getPlayerArmorValue"), } /** 静态悬浮字类列表 @type {Map} */ @@ -2345,6 +2351,33 @@ LLSE_Item.prototype.setCanPlaceOn = GMLIB_API.setItemCanPlaceOn(this, blocks); } +LLSE_Player.prototype.getHungry = + /** + * 获取玩家饱食度 + * @returns {number} + */ + function () { + return GMLIB_API.getPlayerHungry(this) + } + +LLSE_Player.prototype.getArmorCoverPercentage = + /** + * 获取玩家盔甲覆盖百分比 + * @returns {number} + */ + function () { + return GMLIB_API.getPlayerArmorCoverPercentage(this) + } + +LLSE_Player.prototype.getArmorValue = + /** + * 获取玩家盔甲值覆盖百分比 + * @returns {number} + */ + function () { + return GMLIB_API.getPlayerArmorValue(this) + } + module.exports = { StaticFloatingText, DynamicFloatingText, diff --git a/src/CompatibilityApi.cpp b/src/CompatibilityApi.cpp index fb9eea2..9503c39 100644 --- a/src/CompatibilityApi.cpp +++ b/src/CompatibilityApi.cpp @@ -1,4 +1,5 @@ #include "Global.h" +#include "mc/enums/AbilitiesIndex.h" #include #include @@ -833,4 +834,13 @@ void Export_Compatibility_API() { ((GMLIB_ItemStack*)item)->setCanPlaceOn(blocks); } ); + RemoteCall::exportAs("GMLIB_API", "getPlayerHungry", [](Player* player) -> float { + return player->getMutableAttribute(Player::HUNGER)->getCurrentValue(); + }); + RemoteCall::exportAs("GMLIB_API", "getPlayerArmorCoverPercentage", [](Player* player) -> float { + return player->getArmorCoverPercentage(); + }); + RemoteCall::exportAs("GMLIB_API", "getPlayerArmorValue", [](Player* player) -> int { + return player->getArmorValue(); + }); } \ No newline at end of file