跳到正文

Auto Network Lib

作者:Aurocosh

网络消息序列化前置库

收藏

介绍

介绍由机器翻译自 CurseForge 原页面,仅供参考。

Auto Network Lib 是一个自动网络数据包序列化库。

特性:

  • 自动序列化和反序列化网络数据包中的字段
  • 自动在主线程中处理数据包
  • 内置大多数常见数据类型的序列化器
  • 你可以为默认不支持的类型添加自己的序列化器
  • 可以序列化泛型列表
  • 可以序列化泛型集合
  • 可以序列化泛型映射
  • 可以序列化 Java 数组
  • 可以序列化泛型集合中嵌套的泛型集合
  • 可以序列化任意枚举
  • 针对性能进行了优化

描述

在编写网络代码时,模组开发者需要手动序列化和反序列化数据包中的所有字段。这个库可以自动完成这些工作,因此你无需编写样板代码。你只需要在数据包中声明字段。
Minecraft 中的网络代码运行在与主游戏线程不同的线程中,因此在做任何事之前,你需要在主线程中安排任务并在那里处理所有事情。这个库会自动在主线程中安排任务。
开箱即用,这个库支持以下数据类型的序列化:int、long、float、double、boolean、Integer、Long、Float、Double、Boolean、String、NBTTagCompound、ItemStack、char、byte、short、Character、Byte、Short、BlockPos、Vec3d、Color3f
这个库可以自动序列化以下泛型 Java 集合:List<T>、ArrayList<T>、Stack<T>、Vector<T>、LinkedList<T>、Set<T>、HashSet<T>、Map<T,K>、HashMap<T,K>
这个库可以自动序列化任意类型的数组,但目前仅支持一维数组。
这个库可以自动序列化其他受支持泛型集合中嵌套的受支持泛型集合。例如,它可以序列化以下数据类型:HashMap<Integer, List<Integer>>、List<List<List<String>>>、HashMap<List<String>, List<Integer>>
针对性能进行了优化。反射仅在数据包首次序列化时使用一次,之后不再需要反射。此外,它使用方法句柄而不是反射来读写数据,这比通过反射访问更快。

常见问题

Auto Network Lib 支持哪些 Minecraft 版本?

Auto Network Lib 支持 Minecraft Java 版 1.12.2,可用的加载器:Forge。下载时注意选择和你游戏版本一致的文件。

Auto Network Lib 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Forge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。

评论

登录后评论和评分

Aurocosh 的其他作品

查看全部 →