diff --git a/lib/GMLIB_API-JS.d.ts b/lib/GMLIB_API-JS.d.ts index 1a7cf32..2dbaa2d 100644 --- a/lib/GMLIB_API-JS.d.ts +++ b/lib/GMLIB_API-JS.d.ts @@ -760,7 +760,7 @@ declare class JsonConfig { ): void; /** 获取所有数据 */ - getData(): Record; + getData(): Record; /** 读取数据 */ get( @@ -1034,6 +1034,15 @@ interface Player { /** (GMLIB)获取玩家的rumtimeId */ getRuntimeId(): number; + + /** (GMLIB)获取玩家饱食度 */ + getHungry(): number; + + /** (GMLIB)获取玩家盔甲覆盖百分比 */ + getArmorCoverPercentage(): number; + + /** (GMLIB)获取玩家盔甲值 */ + getArmorValue(): number; } interface Entity { @@ -1233,12 +1242,15 @@ interface Item { blocks: string[] ): void; - /** (GMLIB)获取玩家饱食度 */ - getHungry(): number; + /** 获取物品分类名称 */ + getCategoryName(): string; - /** (GMLIB)获取玩家盔甲覆盖百分比 */ - getArmorCoverPercentage(): number; + /** 获取物品的命名 */ + getCustomName(): string; - /** (GMLIB)获取玩家盔甲值 */ - getArmorValue(): number; + /** 获取物品的BUFF效果名称 */ + getEffecName(): string; + + /** 物品是否为食物 */ + isFood(): boolean; } \ No newline at end of file diff --git a/lib/GMLIB_API-JS.js b/lib/GMLIB_API-JS.js index 820f747..86a58f7 100644 --- a/lib/GMLIB_API-JS.js +++ b/lib/GMLIB_API-JS.js @@ -319,7 +319,15 @@ const GMLIB_API = { /** 获取玩家盔甲值 @type {function(Player):number} */ getPlayerArmorValue: ll.import("GMLIB_API", "getPlayerArmorValue"), /** 获取实体主人的UniqueID @type {function(Entity):Entity} */ - getEntityOwnerUniqueId: ll.import("GMLIB_API", "getEntityOwnerUniqueId") + getEntityOwnerUniqueId: ll.import("GMLIB_API", "getEntityOwnerUniqueId"), + /** 获取物品分类名称 @type {function(Item):string} */ + getItemCategoryName: ll.import("GMLIB_API", "getItemCategoryName"), + /** 获取物品的命名 @type {function(Item):string} */ + getItemCustomName: ll.import("GMLIB_API", "getItemCustomName"), + /** 获取物品BUFF效果名称 @type {function(Item):string} */ + getItemEffecName: ll.import("GMLIB_API", "getItemEffecName"), + /** 物品是否为食物 @type {function(Item):boolean} */ + itemIsFood: ll.import("GMLIB_API", "itemIsFood") } /** 静态悬浮字类列表 @type {Map} */ @@ -2390,6 +2398,42 @@ LLSE_Player.prototype.getEntityOwner = return uniqueId === -1 ? null : Minecraft.getEntityFromUniqueId(uniqueId); } +LLSE_Item.prototype.getCategoryName = + /** + * 获取物品分类名称 + * @returns {string} + */ + function () { + return GMLIB_API.getItemCategoryName(this); + } + +LLSE_Item.prototype.getCustomName = + /** + * 获取物品的命名 + * @returns {string} + */ + function () { + return GMLIB_API.getItemCustomName(this); + } + +LLSE_Item.prototype.getEffecName = + /** + * 获取物品的BUFF效果名称 + * @returns {string} + */ + function () { + return GMLIB_API.getItemEffecName(this); + } + +LLSE_Item.prototype.isFood = + /** + * 物品是否为食物 + * @returns {boolean} + */ + function () { + return GMLIB_API.itemIsFood(this); + } + module.exports = { StaticFloatingText, DynamicFloatingText, diff --git a/src/CompatibilityApi.cpp b/src/CompatibilityApi.cpp index cca5ae3..557c5d7 100644 --- a/src/CompatibilityApi.cpp +++ b/src/CompatibilityApi.cpp @@ -847,4 +847,19 @@ void Export_Compatibility_API() { RemoteCall::exportAs("GMLIB_API", "getEntityOwnerUniqueId", [](Actor* entity) -> int64 { return entity->getOwnerId().id; }); + RemoteCall::exportAs("GMLIB_API", "getItemCategoryName", [](ItemStack const* item) -> std::string { + return item->getCategoryName(); + }); + RemoteCall::exportAs("GMLIB_API", "getItemCustomName", [](ItemStack const* item) -> std::string { + return item->getCustomName(); + }); + RemoteCall::exportAs("GMLIB_API", "getItemEffecName", [](ItemStack const* item) -> std::string { + return item->getEffectName(); + }); + RemoteCall::exportAs("GMLIB_API", "itemIsFood", [](ItemStack const* item) -> bool { + if (auto itemDef = item->getItem()) { + return itemDef->isFood(); + } + return false; + }); } \ No newline at end of file