本帖最后由 美味的曲奇 于 2022-5-17 15:24 编辑
曾经在
https://www.mcbbs.net/thread-1301401-1-1.html
有过实体序列化的尝试
但在1.16+之后的高版本没找到序列化的方法
在1.18-1.17的NMS
- World.getCurrentDifficultyAt 也需要一个参数 BlockPosition
* 这个好像一直有,鬼知道我之前怎么跑的
* 解决,构建一个就是了
- 且没有 Entity.getBukkitEntity 方法
* 好像是有的(?)看起来是我眼瞎
有没有高版本序列化实体的方案
曾经在
https://www.mcbbs.net/thread-1301401-1-1.html
有过实体序列化的尝试
但在1.16+之后的高版本没找到序列化的方法
在1.18-1.17的NMS
- World.getCurrentDifficultyAt 也需要一个参数 BlockPosition
* 这个好像一直有,鬼知道我之前怎么跑的
- 且没有 Entity.getBukkitEntity 方法
* 好像是有的(?)看起来是我眼瞎
有没有高版本序列化实体的方案
UnsafeValues#serializeEntity(Entity entity)
UnsafeValues#deserializeEntity(byte[] data, World world)
UnsafeValues#deserializeEntity(byte[] data, World world, boolean preserveUUID)
今天逛doc无意中发现的
https://papermc.io/javadocs/pape ... t/UnsafeValues.html
UnsafeValues#deserializeEntity(byte[] data, World world)
UnsafeValues#deserializeEntity(byte[] data, World world, boolean preserveUUID)
今天逛doc无意中发现的
https://papermc.io/javadocs/pape ... t/UnsafeValues.html
tcejorPoiK 发表于 2022-5-20 19:23
UnsafeValues#serializeEntity(Entity entity)
UnsafeValues#deserializeEntity(byte[] data, World world ...
这些方法被标记为了Deprecated.
怕行为上会有异常
美味的曲奇 发表于 2022-5-20 20:12
这些方法被标记为了Deprecated.
怕行为上会有异常
因为它是Unsafe类,所以是可能会有兼容性问题。
看了下源码它就是粗暴的直接序列化和反序列化生物NBT,如果跨版本生物NBT有大改是会导致保存的生物无法反序列化,其他情况都安全。