新增/修改

新增
  - getContainerType
修改
  - HandleRequestActionEvent
This commit is contained in:
子沐呀
2024-07-23 05:59:08 +08:00
Unverified
parent 7a0e3d8019
commit f427f2f5e1
5 changed files with 32 additions and 9 deletions
+2 -2
View File
@@ -215,8 +215,8 @@ declare class Event {
player: Player, player: Player,
/** 请求类型 */ /** 请求类型 */
actionType: string, actionType: string,
/** 容器ID */ /** 容器枚举名 */
containerId: number, containerNetId: string,
/** 请求的槽位 */ /** 请求的槽位 */
slot: number slot: number
) => boolean | void ) => boolean | void
+9 -4
View File
@@ -1266,15 +1266,20 @@ interface Item {
blocks: string[] blocks: string[]
): void; ): void;
/** 获取物品分类名称 */ /** (GMLIB)获取物品分类名称 */
getCategoryName(): string; getCategoryName(): string;
/** 获取物品的命名 */ /** (GMLIB)获取物品的命名 */
getCustomName(): string; getCustomName(): string;
/** 获取物品的BUFF效果名称 */ /** (GMLIB)获取物品的BUFF效果名称 */
getEffecName(): string; getEffecName(): string;
/** 物品是否为食物 */ /** (GMLIB)物品是否为食物 */
isFood(): boolean; isFood(): boolean;
} }
interface Container {
/** (GMLIB)获取容器类型 */
getContainerType(): string
}
+11 -1
View File
@@ -333,7 +333,9 @@ const GMLIB_API = {
/** 获取玩家UI栏物品 @type {function(Player,number):Item} */ /** 获取玩家UI栏物品 @type {function(Player,number):Item} */
getPlayerUIItem: ll.import("GMLIB_API", "getPlayerUIItem"), getPlayerUIItem: ll.import("GMLIB_API", "getPlayerUIItem"),
/** 更新玩家容器物品 @type {function(Player,number,number,Item):void} */ /** 更新玩家容器物品 @type {function(Player,number,number,Item):void} */
sendInventorySlotPacket: ll.import("GMLIB_API","sendInventorySlotPacket") sendInventorySlotPacket: ll.import("GMLIB_API", "sendInventorySlotPacket"),
/** 获取容器类型 @type {function(Container):string} */
getContainerType: ll.import("GMLIB_API", "getContainerType")
} }
/** 静态悬浮字类列表 @type {Map<number,StaticFloatingText>} */ /** 静态悬浮字类列表 @type {Map<number,StaticFloatingText>} */
@@ -2471,6 +2473,14 @@ LLSE_Player.prototype.sendInventorySlotPacket =
GMLIB_API.sendInventorySlotPacket(this, containerId, slot, item); GMLIB_API.sendInventorySlotPacket(this, containerId, slot, item);
} }
LLSE_Container.prototype.getContainerType =
/**
* 获取容器类型
*/
function () {
return GMLIB_API.getContainerType(this);
}
module.exports = { module.exports = {
StaticFloatingText, StaticFloatingText,
DynamicFloatingText, DynamicFloatingText,
+8
View File
@@ -1,6 +1,7 @@
#include "Global.h" #include "Global.h"
#include "magic_enum.hpp" #include "magic_enum.hpp"
#include "mc/network/packet/InventorySlotPacket.h" #include "mc/network/packet/InventorySlotPacket.h"
#include "mc/world/Container.h"
#include <map> #include <map>
#include <regex> #include <regex>
#include <vector> #include <vector>
@@ -878,4 +879,11 @@ void Export_Compatibility_API() {
InventorySlotPacket((ContainerID)containerId, slot, *item).sendTo(*player); InventorySlotPacket((ContainerID)containerId, slot, *item).sendTo(*player);
} }
); );
RemoteCall::exportAs(
"GMLIB_API",
"getContainerType",
[](Container* container) -> std::string {
return magic_enum::enum_name(container->getContainerType()).data();
}
);
} }
+2 -2
View File
@@ -266,7 +266,7 @@ void Export_Event_API() {
} }
case doHash("HandleRequestAction"): { case doHash("HandleRequestAction"): {
auto Call = RemoteCall::importAs< auto Call = RemoteCall::importAs<
bool(Player * player, std::string const& actionType, int ContainerNetId, int slot)>( bool(Player * player, std::string const& actionType, std::string const& containerNetId, int slot)>(
eventName, eventName,
eventId eventId
); );
@@ -278,7 +278,7 @@ void Export_Event_API() {
result = Call( result = Call(
&ev.self(), &ev.self(),
magic_enum::enum_name(requestAction->mActionType).data(), magic_enum::enum_name(requestAction->mActionType).data(),
(int)requestAction->getSrc().mOpenContainerNetId, magic_enum::enum_name(requestAction->getSrc().mOpenContainerNetId).data(),
requestAction->getSrc().mSlot requestAction->getSrc().mSlot
); );
} catch (...) {} } catch (...) {}