Closed CalenXwX closed 6 months ago
这个问题大概就是 生存模式下 用背包里的合成栏合成物品 取出的时候服务器会出现一堆报错……
创建InventoryMenu对象时,里面的CraftingContainer f39701/craftSlots没有设置owner,这似乎对玩家没有什么明显的影响,但监听CraftItemEvent的插件(比如CoreProtect)可能会炸NPE……
参考另一处创建CraftingContainer的代码在net.minecraft.world.inventory.CraftingMenu里。打开工作台GUI时会调用CraftingMenu的构造方法,其中执行了setOwner(patches/minecraft/net/minecraft/world/inventory/CraftingMenu.java.patch::37)。当玩家取出合成的物品,CoreProtect处理CraftItemEvent时不会引发报错。
patches/minecraft/net/minecraft/world/inventory/CraftingMenu.java.patch::37
发布和处理Bukkit事件那里套了好多层 直接放StackTrace了XwX
夸夸
这个问题大概就是 生存模式下 用背包里的合成栏合成物品 取出的时候服务器会出现一堆报错……
创建InventoryMenu对象时,里面的CraftingContainer f39701/craftSlots没有设置owner,这似乎对玩家没有什么明显的影响,但监听CraftItemEvent的插件(比如CoreProtect)可能会炸NPE……
参考另一处创建CraftingContainer的代码在net.minecraft.world.inventory.CraftingMenu里。打开工作台GUI时会调用CraftingMenu的构造方法,其中执行了setOwner(
patches/minecraft/net/minecraft/world/inventory/CraftingMenu.java.patch::37
)。当玩家取出合成的物品,CoreProtect处理CraftItemEvent时不会引发报错。发布和处理Bukkit事件那里套了好多层 直接放StackTrace了XwX![image](https://github.com/Luohuayu/CatServer/assets/135932489/37880a71-8779-4c6a-87d1-dcae47549e20)