Auto Network Lib是一个自动网络数据包序列化库。
特点:
网络数据包中字段的自动序列化和反序列化
主线程中的自动数据包处理
内置最常见数据类型的序列化程序
您可以为默认情况下不支持的类型添加自己的序列化程序
可以序列化通用列表
可以序列化通用集
可以序列化通用映射
可以序列化java数组
可以序列化泛型集合中的泛型集合
可以序列化任何枚举
针对性能进行了优化
描述:
编写网络代码时,modders需要手动序列化和反序列化数据包中的所有字段。该库可以自动执行,因此您无需编写样板代码。您只需要声明数据包中的字段。
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 >>
针对性能进行了优化。在不需要反射之后,反射仅在数据包的第一次序列化时使用一次。