Minecraft protocol status

Viewed 54

Started making some kind of proxy client to Minecraft. After reading a protocol, I wrote everything how it was described and still can't get json status as response. Here's code I wrote:

def shift(val, imp)
    mask = (1 << (32 - imp)) - 1
    return (val >> imp) & mask
end


def writeVarInt(value, sock)
    while (true) do
        if ((value & 0x7F) == 0) then
            sock.send([value].pack('C'), 0)
            return
        end
        sock.send([(value & 0x7F) | 0x80].pack('C'), 0)
        value = shift(value, 7)
    end
end

server = TCPSocket.new('connect.2b2t.org', 25565)

writeVarInt(340, server)
server.send(['127.0.0.1'].pack('A'), 0)
server.send([25565].pack('S'), 0)
writeVarInt(1, server)
puts server.recv(1024)

If needed, there is link to protocol: https://wiki.vg/Protocol#Definitions

0 Answers
Related