如何将登录数据包发送到Minecraft 1.4.7服务器?

时间:2019-05-01 20:38:31

标签: python python-3.x sockets minecraft

我想为我的服务器创建一个机器人。问题是,我无法正确获取登录软件包。我的Python版本是3.7。

代码如下:

import socket, struct, json
username = "Ado1928"
key = "Open Sesame"

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("localhost", 25565))

packet = ""

id = struct.pack("B", 1)
protocol = struct.pack("B", 7)
username = ("%-64s" % username).encode()
key = ("%-64s" % key).encode()
null_byte = struct.pack("B", 0)
s.sendall(id+protocol+username+key+null_byte)

s.close()

服务器控制台显示[INFO] /127.0.0.1:54472 lost connection,但没有其他显示。如果我将id = struct.pack("B", 1)更改为id = struct.pack("B", 0),则会显示[INFO] Disconnecting /127.0.0.1:54485: Protocol error

1 个答案:

答案 0 :(得分:-1)

找到了一篇列出所有协议版本号的文章:wiki.vg/Protocol_version_numbers