LeviLamina
LeviLamina copied to clipboard
LL新增一些API接口与事件
API接口
-
[ ] 事件系统注册新事件、传递自定义事件
-
[ ] 选择器字符串解析-> 实体数组
-
[ ] 封装 玩家删除指定数量的物品 接口:bool player->removeItem(type, num)
-
[ ] 获取当前所在群系相关
-
[ ] 获取当前天气
-
[ ] 获取游戏内时间戳
-
[ ] getLightingLevel
-
[ ] 封装附魔api
-
[ ] ChunkUtils类封装操作区块相关接口
-
[ ] 生物Ai相关操作:
- 生物寻路(让生物移动到指定位置)
- 生物追击(追指定生物再发起攻击)
- 生物攻击(在攻击范围攻击)
- 改变生物旋转角度
-
[ ] 模拟打开箱子:能够打开一个箱子带格子的ui,并能放入/取出物品,也能判断返回容器对象和坐标
-
[ ] entity.kill() 增加参数
- entity.kill(type);
- type: true: 杀掉实体并不产生任何掉落物 false: 仅杀掉实体 掉落物正常
- 可能有用:Actor::kill,Actor::die,Actor::remove
-
[ ] 自定义合成接口
-
[ ] 物品损耗值:getDamageValue@ItemStackBase
-
[ ] getEntitiesAtBlockLocation
-
[ ] 修改方块硬度和爆炸抗性
-
[ ] 指令权限组
-
[ ] entity的runcmd(gt有这个接口)
-
[ ] uuid获取离线玩家数据:loadPlayerDataFromTag的第二个参数传uuid就行了
-
[ ] hook 函数名反查修饰后名字
-
[ ] ogg音乐传输
-
[ ] safecall:封装崩溃保护的symcall
-
[ ] 将SEH保护框封装为宏,以便于大规模铺开使用
-
[ ] 存档NBT操作
事件
- [ ] 玩家长按生物或者鼠标右键生物
- [ ] 发射器投掷器事件
- [ ] 打雷事件 天气变化事件
- [ ] 方块被破坏事件
- [ ] neighborChanged 方块更新事件
- [ ] 生物生成、销毁监听
- [ ] 监听玩家在工作台,切石机等功能性方块用什么东西合成了什么东西
- [ ] 指定容器物品发生变化
- [ ] 玩家指定属性发生变化
- [ ] 插件onUnload
- [ ] 活塞事件加参数:推还是拉
- [ ] 根据PM数据包内容做一些事件 https://github.com/pmmp/PocketMine-MP/tree/stable/src/pocketmine/network/mcpe/protocol
- [ ] 挖掘进度事件
//可以获取玩家在挖掘时,当前状态下,当前tick下挖掘的进度(亦可用于检测玩家是否处于挖掘状态)
THook(float, "?getDestroyProgress@Player@@QEBAMAEBVBlock@@@Z"
, Player* player,
Block* block) {
double progress = original(player, block);
std::cout << "progress:" << progress << endl;
stdcout << "block:" << offBlockgetFullName(block) << endl;
std::cout << "player:" << player->getNameTag() << endl;
return original(player, block);
}