2

パケットを作成してMinecraftサーバーに送信する必要があります。パケットは特定の方法でパックする必要があります。私はこれをPythonで管理しましたが、ルビーが私に伝票をくれているようです。

これをパックするPythonコードは次のとおりです。

def short(data):
    return pack('>h',data)
def shortchar(data):
    return pack('>H',ord(data))
def string16(data):
    chars = ''.join([shortchar(i) for i in data])
    return short(len(data))+chars

packetbytes = '\x02\x33' + string16(name) + string16(host) + '\x00\x00\x63\xdd'

これはRubyでどうすればよいですか?

4

1 に答える 1

1

これを試して:

def string_16(data)
  [data.size].pack('s>') + data.split('').map(&:ord).pack('S>*')
end

packet_bytes = "\x02\x33" + string_16(name) + string_16(host) + "\x00\x00\x63\xdd"
于 2013-01-13T05:01:26.950 に答える