mc protocol

python Python
b'\xfe\xfd\t\x00\x00\x00\x00\x00\x00\x00\x00\x0b' # bytearray
# 0xFEFD   9    00000000         00000000   11
# prefix | chalengeType | 0   | challenge | len

def write_varint(self, value):
    remaining = value
    ret = bytearray()
    for i in range(5):
        if remaining & ~0x7F == 0:
            ret.extend(struct.pack("!B", remaining))
            return ret
        ret.extend(struct.pack("!B", remaining & 0x7F | 0x80))
        remaining >>= 7
    raise ValueError("The value %d is too big to send in a varint" % value)