2013-01-13 90 views
2

我需要创建一个包并将其发送到Minecraft服务器。数据包需要以特定方式打包。我在python中管理这个,但ruby似乎给了我这个提示。Ruby和Minecraft Packets

下面是包它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' 

我会怎么做,这是红宝石?

+2

那你试试? – sunnyrjuneja

回答

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" 
+0

谢谢,这似乎在伎俩! – Riseing