Open ajh123 opened 1 year ago
BTW, I'm using 1.19.2 vanilla
Solved by writing my own command node packer. I wish it could be implemented into quarry.
I have been trying to send this packet (under quarry it's called "tab_complete") to the client but I can't seem how to construct its array properly.
class TabCompleteProtocol(ChatProtocol): # <-- Just a normal ServerProtocol
def packet_tab_complete(self, buff: Buffer1_19_1): # <-- Buffer1_19_1 is there just for type hints
trans_id = buff.unpack_varint()
msg = buff.unpack_string()
array = []
array.append(("msg", False))
array.append(("123", False))
output = b""
for e in array:
output+=self.buff_type.pack_string(e[0])
output+=self.buff_type.pack("?", e[1])
self.send_packet(
"tab_complete",
self.buff_type.pack_varint(trans_id),
self.buff_type.pack_varint(3), # Start of the text to replace.
self.buff_type.pack_varint(3), # Length of the text to replace.
self.buff_type.pack_varint(len(array)), # Number of elements in the following array.
self.buff_type.pack_byte_array(output)
)
The problem is I can't seem to figure out how to construct the array. Or are my Varints wrong?
the packet name might be wrong, this program is outdated af for names
Solved by writing my own command node packer. I wish it could be implemented into quarry.
NICE JOB BRO, that is cool
Also make a pull request and try to merge it, if owner ever gets active he might
the packet name might be wrong, this program is outdated af for names
It's not the name because that's what Qurray calls it in it's files. The problem is how I'm adding the data to the packet.
https://github.com/barneygale/quarry/blob/8adc03095d244621aa8cf3a956c0af5c0a7b1058/quarry/types/buffer/v1_13.py#L294
Wiki.vg says the parser id is a Varint, above we are treating it as a string, Is this a change past 1.13?. When using my code I get the error below because the parser ID is not meant to be a string (because it's too big?)