新增/修改

新增
  - 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,
/** 请求类型 */
actionType: string,
/** 容器ID */
containerId: number,
/** 容器枚举名 */
containerNetId: string,
/** 请求的槽位 */
slot: number
) => boolean | void
+9 -4
View File
@@ -1266,15 +1266,20 @@ interface Item {
blocks: string[]
): void;
/** 获取物品分类名称 */
/** (GMLIB)获取物品分类名称 */
getCategoryName(): string;
/** 获取物品的命名 */
/** (GMLIB)获取物品的命名 */
getCustomName(): string;
/** 获取物品的BUFF效果名称 */
/** (GMLIB)获取物品的BUFF效果名称 */
getEffecName(): string;
/** 物品是否为食物 */
/** (GMLIB)物品是否为食物 */
isFood(): boolean;
}
interface Container {
/** (GMLIB)获取容器类型 */
getContainerType(): string
}
+11 -1
View File
@@ -333,7 +333,9 @@ const GMLIB_API = {
/** 获取玩家UI栏物品 @type {function(Player,number):Item} */
getPlayerUIItem: ll.import("GMLIB_API", "getPlayerUIItem"),
/** 更新玩家容器物品 @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>} */
@@ -2471,6 +2473,14 @@ LLSE_Player.prototype.sendInventorySlotPacket =
GMLIB_API.sendInventorySlotPacket(this, containerId, slot, item);
}
LLSE_Container.prototype.getContainerType =
/**
* 获取容器类型
*/
function () {
return GMLIB_API.getContainerType(this);
}
module.exports = {
StaticFloatingText,
DynamicFloatingText,
+8
View File
@@ -1,6 +1,7 @@
#include "Global.h"
#include "magic_enum.hpp"
#include "mc/network/packet/InventorySlotPacket.h"
#include "mc/world/Container.h"
#include <map>
#include <regex>
#include <vector>
@@ -878,4 +879,11 @@ void Export_Compatibility_API() {
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"): {
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,
eventId
);
@@ -278,7 +278,7 @@ void Export_Event_API() {
result = Call(
&ev.self(),
magic_enum::enum_name(requestAction->mActionType).data(),
(int)requestAction->getSrc().mOpenContainerNetId,
magic_enum::enum_name(requestAction->getSrc().mOpenContainerNetId).data(),
requestAction->getSrc().mSlot
);
} catch (...) {}