【从0开始Minecraft服务端开发】0、一些基础知识(更新中)

【从0开始Minecraft服务端开发】0、一些基础知识

协议版本

本文基于Minecraft Java版1.19.4,协议版本762。
协议的具体内容请看wiki

连接类型

Minecraft客户端与服务端之间使用TCP连接。

数据包结构

本文中数据包默认不进行压缩操作
数据包格式如下表

名称类型描述
LengthVarIntPacket ID和Data的总长度
Packet IDVarInt数据包ID
DataByte Array传输的数据

数据类型(更新中)

名称长度(字节数)描述
Boolean11为真,0为假
Byte1有符号字节
Unsigned Byte1无符号字节
Short2有符号短整型
Unsigned Short2无符号短整型
Int4有符号整形
Long8有符号长整形
Float4单精度浮点数
Double8双精度浮点数
String(n)>=1, <=(n×4+3)UTF-8编码的字符串,以VarInt类型的字符串长度起始。
Chat
Identifier
VarInt>=1, <=5可变长度的无符号整型,最大5个字节,最小1个字节。
VarLong>=1, <=10可变长度的无符号长整型,最大10个字节,最小1个字节。
Entity Metadata
Slot
NBT Tag
Position8
Angle1
UUID16
Optional X
Array of X
X Enum
Byte Array

连接状态

Handshaking:连接刚建立时的状态,在此状态下,客户端发送一个数据包后连接会转变成其他状态。
Status:此状态用于客户端中多人游戏界面的ping服务器。
Login:用于登录的相关处理。
Play:登录成功后将自动切换到此状态,用于游戏内容的相关处理。

名词解释

ClientBound:服务端发送给客户端的数据包
ServerBound:客户端发送给服务端的数据包

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值