概述
Auto Network Lib 是一个自动网络数据包序列化库。
特点
描述
编写网络代码时,模组作者需要手动序列化和反序列化数据包中的所有字段。
该库可以自动执行,因此您无需编写样板代码,只需要声明数据包中的字段。
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> > 。
针对性能进行了优化。在不需要反射之后,反射仅在数据包的第一次序列化时使用一次。