conqp / mcipc

A Minecraft server inter-process communication library.
GNU General Public License v3.0
81 stars 11 forks source link

Long responses from commands are truncated and break the connection #39

Closed gilesknap closed 2 years ago

gilesknap commented 2 years ago

This is a java edition 1.19.2 server and the latest version of mcipc.

Here is an example sequence of commands that demonstrate the issue. The response gets truncated at 4096 bytes and the connection stops working.

In [2]: c.seed
Out[2]: 0

In [3]: c.data.get(entity="TransformerScorn", path="Health")
Out[3]: 'TransformerScorn has the following entity data: 20.0f'

In [4]: c.data.get(entity="TransformerScorn")
Out[4]: 'TransformerScorn has the following entity data: {Brain: {memories: {}}, HurtByTimestamp: 0, SleepTimer: 0s, Attributes: [{Base: 0.10000000149011612d, Name: "minecraft:generic.movement_speed"}], Invulnerable: 0b, FallFlying: 0b, PortalCooldown: 0, AbsorptionAmount: 0.0f, abilities: {invulnerable: 1b, mayfly: 1b, instabuild: 1b, walkSpeed: 0.1f, mayBuild: 1b, flying: 0b, flySpeed: 0.05f}, FallDistance: 0.0f, recipeBook: {recipes: ["minecraft:chest", "minecraft:gray_stained_glass", "minecraft:wooden_pickaxe", "minecraft:charcoal", "minecraft:stone_hoe", "minecraft:smooth_sandstone", "minecraft:oak_stairs", "minecraft:stone_button", "minecraft:stonecutter", "minecraft:stone_pickaxe", "minecraft:glass_pane", "minecraft:cobbled_deepslate_slab", "minecraft:cobbled_deepslate_slab_from_cobbled_deepslate_stonecutting", "minecraft:brown_stained_glass", "minecraft:wooden_axe", "minecraft:glass_bottle", "minecraft:deepslate_bricks_from_cobbled_deepslate_stonecutting", "minecraft:oak_fence_gate", "minecraft:stripped_oak_wood", "minecraft:purple_stained_glass", "minecraft:red_stained_glass", "minecraft:deepslate_brick_stairs_from_cobbled_deepslate_stonecutting", "minecraft:soul_campfire", "minecraft:ladder", "minecraft:cut_sandstone_from_sandstone_stonecutting", "minecraft:stone_stairs_from_stone_stonecutting", "minecraft:crafting_table", "minecraft:stone_stairs", "minecraft:sandstone_stairs_from_sandstone_stonecutting", "minecraft:sandstone_wall", "minecraft:dark_oak_wood", "minecraft:blue_stained_glass", "minecraft:oak_fence", "minecraft:stone_slab_from_stone_stonecutting", "minecraft:magenta_stained_glass", "minecraft:chiseled_deepslate_from_cobbled_deepslate_stonecutting", "minecraft:stone_brick_slab_from_stone_stonecutting", "minecraft:stick", "minecraft:oak_sign", "minecraft:furnace", "minecraft:stone_slab", "minecraft:oak_trapdoor", "minecraft:sandstone_wall_from_sandstone_stonecutting", "minecraft:cobbled_deepslate_wall_from_cobbled_deepslate_stonecutting", "minecraft:polished_deepslate_from_cobbled_deepslate_stonecutting", "minecraft:oak_door", "minecraft:stone_axe", "minecraft:deepslate", "minecraft:barrel", "minecraft:wooden_sword", "minecraft:oak_planks", "minecraft:stone_brick_stairs_from_stone_stonecutting", "minecraft:yellow_stained_glass", "minecraft:crossbow", "minecraft:green_stained_glass", "minecraft:light_blue_stained_glass", "minecraft:chiseled_stone_bricks_stone_from_stonecutting", "minecraft:stone_bricks", "minecraft:sandstone_slab_from_sandstone_stonecutting", "minecraft:deepslate_tile_wall_from_cobbled_deepslate_stonecutting", "minecraft:wooden_shovel", "minecraft:cobbled_deepslate_wall", "minecraft:cut_sandstone", "minecraft:cobbled_deepslate_stairs", "minecraft:chiseled_sandstone_from_sandstone_stonecutting", "minecraft:light_gray_stained_glass", "minecraft:orange_stained_glass", "minecraft:smooth_stone", "minecraft:polished_deepslate_slab_from_cobbled_deepslate_stonecutting", "minecraft:birch_planks", "minecraft:stone_shovel", "minecraft:pink_stained_glass", "minecraft:dark_oak_planks", "minecraft:deepslate_tiles_from_cobbled_deepslate_stonecutting", "minecraft:white_stained_glass", "minecraft:oak_button", "minecraft:wooden_hoe", "minecraft:cobbled_deepslate_stairs_from_cobbled_deepslate_stonecutting", "minecraft:cyan_stained_glass", "minecraft:stone_pressure_plate", "minecraft:polished_deepslate_stairs_from_cobbled_deepslate_stonecutting", "minecraft:oak_pressure_plate", "minecraft:campfire", "minecraft:sandstone_slab", "minecraft:stone_sword", "minecraft:polished_deepslate_wall_from_cobbled_deepslate_stonecutting", "minecraft:deepslate_brick_wall_from_cobbled_deepslate_stonecutting", "minecraft:packed_mud", "minecraft:deepslate_tile_slab_from_cobbled_deepslate_stonecutting", "minecraft:sandstone_stairs", "minecraft:deepslate_brick_slab_from_cobbled_deepslate_stonecutting", "minecraft:oak_slab", "minecraft:lime_stained_glass", "minecraft:cut_sandstone_slab_from_sandstone_stonecutting", "minecraft:deepslate_tile_stairs_from_cobbled_deepslate_stonecutting", "minecraft:stone_brick_walls_from_stone_stonecuttin'

In [5]: c.data.get(entity="TransformerScorn", path="Health")
ERROR:  SessionTimeout: 

In [6]: c.seed
ERROR:  ValueError: 979659040 is not a valid Type

In [7]: c.data.get(entity="TransformerScorn", path="Health")
ERROR:  SessionTimeout: 

In [8]: 
gilesknap commented 2 years ago

@conqp also - I can't see any way to deserialize the NBT from data.get() in MCIPC. Is there something that I am missing? If not would you be interested in a PR to add this?

conqp commented 2 years ago

Hi Giles,

Thank you for the detailed bug report. This looks like an issue in rcon. I'll try to reproduce and fix it over the weekend.

Regarding the NBT deserialization, iirc, NBTs conform to the JSON standard, so maybe you can use json.loads(). If I remember incorrectly, feel free to implement a parser. I'd appreciate it.

PS: I think you ran into this issue here: https://wiki.vg/RCON#Fragmentation I'll probably implement the multi-command approach in order to detect the end of the packet stream.

gilesknap commented 2 years ago

Thanks RIchard,

I've just been looking at it and although it looks like JSON it would not immediately de-serialize for at least a couple of reasons:

So I'm going to have a go at making this work. I think it probably belongs in mcipc?

conqp commented 2 years ago

Yes the NBT parser would belong in mcipc. Thanks again.

conqp commented 2 years ago

@gilesknap Unfortunately I cannot reproduce the issue, since my server cannot find any entity called TransformerScorn. Maybe you can describe to me how you introduced that entity. I tried naming a chicken TransformerScorn with a name tag to no avail.

gilesknap commented 2 years ago

@conqp I should have been clear. That is my player name and so I'm getting my player data - which is quite big.

conqp commented 2 years ago

Okay, thanks. I still cannot reproduce the issue with my test server:

>>> with Client('srv.richard-neumann.de', 5000, passwd='ZXYRdwrXkLD38hGt') as client:
...     client.seed
...     client.data.get(entity="coNQP")
... 
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Size: 10
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:ID: 653313497
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Type: 2
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Payload: b''
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Terminator: b'\x00\x00'
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Size: 19
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:ID: 1884241873
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Type: 0
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Payload: b'Seed: [0]'
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Terminator: b'\x00\x00'
0
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Size: 1998
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:ID: 131005523
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Type: 0
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Payload: b'coNQP has the following entity data: {Brain: {memories: {}}, HurtByTimestamp: 0, SleepTimer: 0s, Attributes: [{Base: 0.10000000149011612d, Name: "minecraft:generic.movement_speed"}], Invulnerable: 0b, FallFlying: 0b, PortalCooldown: 0, AbsorptionAmount: 0.0f, abilities: {invulnerable: 1b, mayfly: 1b, instabuild: 1b, walkSpeed: 0.1f, mayBuild: 1b, flying: 0b, flySpeed: 0.05f}, FallDistance: 0.0f, recipeBook: {recipes: ["minecraft:mangrove_boat", "minecraft:oak_boat", "minecraft:acacia_boat", "minecraft:spruce_boat", "minecraft:birch_boat", "minecraft:jungle_boat", "minecraft:dark_oak_boat"], isBlastingFurnaceFilteringCraftable: 0b, isSmokerGuiOpen: 0b, isFilteringCraftable: 0b, toBeDisplayed: ["minecraft:mangrove_boat", "minecraft:oak_boat", "minecraft:acacia_boat", "minecraft:spruce_boat", "minecraft:birch_boat", "minecraft:jungle_boat", "minecraft:dark_oak_boat"], isFurnaceGuiOpen: 0b, isGuiOpen: 0b, isFurnaceFilteringCraftable: 0b, isBlastingFurnaceGuiOpen: 0b, isSmokerFilteringCraftable: 0b}, DeathTime: 0s, XpSeed: -1095153864, XpTotal: 0, UUID: [I; 1125708273, -443792095, -1381435671, 1372080845], playerGameType: 1, SelectedItem: {id: "minecraft:name_tag", Count: 1b, tag: {RepairCost: 0, display: {Name: \'{"text":"TransformerScorn"}\'}}}, seenCredits: 0b, Motion: [0.0d, -0.0784000015258789d, 0.0d], Health: 20.0f, foodSaturationLevel: 5.0f, Air: 300s, OnGround: 1b, Dimension: "minecraft:overworld", Rotation: [-27.149963f, 28.407377f], XpLevel: 0, warden_spawn_tracker: {warning_level: 0, ticks_since_last_warning: 8697, cooldown_ticks: 0}, Score: 0, Pos: [-49.63523762192861d, 64.0d, 3.3940989027178974d], previousPlayerGameType: 0, Fire: -20s, XpP: 0.0f, EnderItems: [], DataVersion: 3120, foodLevel: 20, foodExhaustionLevel: 0.0f, HurtTime: 0s, SelectedItemSlot: 0, Inventory: [{Slot: 0b, id: "minecraft:name_tag", Count: 1b, tag: {RepairCost: 0, display: {Name: \'{"text":"TransformerScorn"}\'}}}, {Slot: 1b, id: "minecraft:anvil", Count: 1b}], foodTickTimer: 0}'
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Terminator: b'\x00\x00'
'coNQP has the following entity data: {Brain: {memories: {}}, HurtByTimestamp: 0, SleepTimer: 0s, Attributes: [{Base: 0.10000000149011612d, Name: "minecraft:generic.movement_speed"}], Invulnerable: 0b, FallFlying: 0b, PortalCooldown: 0, AbsorptionAmount: 0.0f, abilities: {invulnerable: 1b, mayfly: 1b, instabuild: 1b, walkSpeed: 0.1f, mayBuild: 1b, flying: 0b, flySpeed: 0.05f}, FallDistance: 0.0f, recipeBook: {recipes: ["minecraft:mangrove_boat", "minecraft:oak_boat", "minecraft:acacia_boat", "minecraft:spruce_boat", "minecraft:birch_boat", "minecraft:jungle_boat", "minecraft:dark_oak_boat"], isBlastingFurnaceFilteringCraftable: 0b, isSmokerGuiOpen: 0b, isFilteringCraftable: 0b, toBeDisplayed: ["minecraft:mangrove_boat", "minecraft:oak_boat", "minecraft:acacia_boat", "minecraft:spruce_boat", "minecraft:birch_boat", "minecraft:jungle_boat", "minecraft:dark_oak_boat"], isFurnaceGuiOpen: 0b, isGuiOpen: 0b, isFurnaceFilteringCraftable: 0b, isBlastingFurnaceGuiOpen: 0b, isSmokerFilteringCraftable: 0b}, DeathTime: 0s, XpSeed: -1095153864, XpTotal: 0, UUID: [I; 1125708273, -443792095, -1381435671, 1372080845], playerGameType: 1, SelectedItem: {id: "minecraft:name_tag", Count: 1b, tag: {RepairCost: 0, display: {Name: \'{"text":"TransformerScorn"}\'}}}, seenCredits: 0b, Motion: [0.0d, -0.0784000015258789d, 0.0d], Health: 20.0f, foodSaturationLevel: 5.0f, Air: 300s, OnGround: 1b, Dimension: "minecraft:overworld", Rotation: [-27.149963f, 28.407377f], XpLevel: 0, warden_spawn_tracker: {warning_level: 0, ticks_since_last_warning: 8697, cooldown_ticks: 0}, Score: 0, Pos: [-49.63523762192861d, 64.0d, 3.3940989027178974d], previousPlayerGameType: 0, Fire: -20s, XpP: 0.0f, EnderItems: [], DataVersion: 3120, foodLevel: 20, foodExhaustionLevel: 0.0f, HurtTime: 0s, SelectedItemSlot: 0, Inventory: [{Slot: 0b, id: "minecraft:name_tag", Count: 1b, tag: {RepairCost: 0, display: {Name: \'{"text":"TransformerScorn"}\'}}}, {Slot: 1b, id: "minecraft:anvil", Count: 1b}], foodTickTimer: 0}'
>>> 
>>> with Client('srv.richard-neumann.de', 5000, passwd='ZXYRdwrXkLD38hGt') as client:
...     client.data.get(entity="coNQP", path='Health')
... 
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Size: 10
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:ID: 1286456965
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Type: 2
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Payload: b''
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Terminator: b'\x00\x00'
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Size: 52
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:ID: 1427674265
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Type: 0
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Payload: b'coNQP has the following entity data: 20.0f'
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Terminator: b'\x00\x00'
'coNQP has the following entity data: 20.0f'

Update I see that you are using the client without context manager. The RCON sessions have limited lifetime. So if sufficiently time passed between your commands in your Python session, you very well might be running into an RCON session timeout.

gilesknap commented 2 years ago

Right. Your entity data is only 2000 bytes. Try adding a bunch of stuff to your inventory and that should do it.

gilesknap commented 2 years ago

Also I note that all the learned recipies are listed and that is what has blown my 4096 bytes. A new player in the world would not have these.

conqp commented 2 years ago

Yep, that worked.

>>> with Client('srv.richard-neumann.de', 5000, passwd='ZXYRdwrXkLD38hGt') as client:
...     response = client.data.get(entity='coNQP')
... 
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Size: 10
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:ID: 2130398370
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Type: 2
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Payload: b''
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Terminator: b'\x00\x00'
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Size: 4106
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:ID: 2128086698
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Type: 0
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Payload: b'coNQP has the following entity data: {Brain: {memories: {}}, HurtByTimestamp: 0, SleepTimer: 0s, Attributes: [{Base: 0.10000000149011612d, Name: "minecraft:generic.movement_speed"}, {Base: 0.0d, Name: "minecraft:generic.armor"}, {Base: 0.0d, Name: "minecraft:generic.knockback_resistance"}, {Base: 0.0d, Name: "minecraft:generic.armor_toughness"}], Invulnerable: 0b, FallFlying: 0b, PortalCooldown: 0, AbsorptionAmount: 0.0f, abilities: {invulnerable: 1b, mayfly: 1b, instabuild: 1b, walkSpeed: 0.1f, mayBuild: 1b, flying: 0b, flySpeed: 0.05f}, FallDistance: 0.0f, recipeBook: {recipes: ["minecraft:mangrove_boat", "minecraft:piston", "minecraft:chest", "minecraft:charcoal", "minecraft:acacia_boat", "minecraft:oak_planks", "minecraft:jungle_boat", "minecraft:green_concrete_powder", "minecraft:jungle_chest_boat", "minecraft:copper_ingot_from_smelting_copper_ore", "minecraft:stripped_dark_oak_wood", "minecraft:dark_oak_boat", "minecraft:white_dye_from_lily_of_the_valley", "minecraft:copper_ingot_from_smelting_deepslate_copper_ore", "minecraft:sandstone", "minecraft:bowl", "minecraft:yellow_concrete_powder", "minecraft:dark_oak_chest_boat", "minecraft:red_concrete_powder", "minecraft:black_concrete_powder", "minecraft:purple_concrete_powder", "minecraft:spruce_chest_boat", "minecraft:copper_ingot_from_blasting_copper_ore", "minecraft:pink_concrete_powder", "minecraft:glass", "minecraft:redstone_torch", "minecraft:copper_ingot_from_blasting_deepslate_copper_ore", "minecraft:oak_chest_boat", "minecraft:blue_concrete_powder", "minecraft:acacia_chest_boat", "minecraft:dark_oak_planks", "minecraft:iron_ingot_from_smelting_deepslate_iron_ore", "minecraft:target", "minecraft:stripped_crimson_hyphae", "minecraft:spruce_boat", "minecraft:birch_boat", "minecraft:white_concrete_powder", "minecraft:brown_concrete_powder", "minecraft:orange_concrete_powder", "minecraft:magenta_concrete_powder", "minecraft:redstone_block", "minecraft:warped_fungus_on_a_stick", "minecraft:birch_chest_boat", "minecraft:dropper", "minecraft:gray_concrete_powder", "minecraft:iron_ingot_from_blasting_deepslate_iron_ore", "minecraft:light_blue_concrete_powder", "minecraft:light_gray_concrete_powder", "minecraft:crimson_planks", "minecraft:mangrove_chest_boat", "minecraft:note_block", "minecraft:cyan_concrete_powder", "minecraft:lime_concrete_powder", "minecraft:mushroom_stew", "minecraft:oak_boat", "minecraft:clock", "minecraft:red_dye_from_tulip", "minecraft:compass", "minecraft:muddy_mangrove_roots"], isBlastingFurnaceFilteringCraftable: 0b, isSmokerGuiOpen: 0b, isFilteringCraftable: 0b, toBeDisplayed: ["minecraft:mangrove_boat", "minecraft:piston", "minecraft:chest", "minecraft:charcoal", "minecraft:acacia_boat", "minecraft:oak_planks", "minecraft:jungle_boat", "minecraft:green_concrete_powder", "minecraft:jungle_chest_boat", "minecraft:copper_ingot_from_smelting_copper_ore", "minecraft:stripped_dark_oak_wood", "minecraft:dark_oak_boat", "minecraft:white_dye_from_lily_of_the_valley", "minecraft:copper_ingot_from_smelting_deepslate_copper_ore", "minecraft:sandstone", "minecraft:bowl", "minecraft:yellow_concrete_powder", "minecraft:dark_oak_chest_boat", "minecraft:red_concrete_powder", "minecraft:black_concrete_powder", "minecraft:purple_concrete_powder", "minecraft:spruce_chest_boat", "minecraft:copper_ingot_from_blasting_copper_ore", "minecraft:pink_concrete_powder", "minecraft:glass", "minecraft:redstone_torch", "minecraft:copper_ingot_from_blasting_deepslate_copper_ore", "minecraft:oak_chest_boat", "minecraft:blue_concrete_powder", "minecraft:acacia_chest_boat", "minecraft:dark_oak_planks", "minecraft:iron_ingot_from_smelting_deepslate_iron_ore", "minecraft:target", "minecraft:stripped_crimson_hyphae", "minecraft:spruce_boat", "minecraft:birch_boat", "minecraft:white_concrete_powder", "minecraft:brown_concrete_powder", "minecraft:orange_concrete_powder", "minecraft:magenta_concrete_powder", "minecraft:redstone_block", "minecraft:warped_fungus_on_a_stick", "minecraft:birch_chest_boat", "minecraft:dropper", "minecraft:gray_concrete_powder", "minecraft:iron_ingot_fr'
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Terminator: b'\x00\x00'
>>> len(response)
4096

I'll try to implement the double-command solution over the upcoming week.

conqp commented 2 years ago

@gilesknap Please test mcipc-2.4.0 along with rcon-2.3.0.

gilesknap commented 2 years ago

Thanks Richard.

Unfortunately I'm seeing the error below.

The log shows successful connection and then failure after upgrade to latest versions.

(.venv-mciwb) (item-frames) [giles@ws1 mciwb]$ ipython
Python 3.10.4 (main, Jun 29 2022, 12:14:53) [GCC 11.2.0]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.4.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: from mcipc.rcon import Client

In [2]: 
   ...: with Client("localhost", 20100, passwd="default_pass") as c:
   ...:     x = c.seed
   ...:     print(x)
   ...: 
0

In [3]:                                                                                                           
Do you really want to exit ([y]/n)? y
(.venv-mciwb) (item-frames) [giles@ws1 mciwb]$ pip install mcipc==2.4.0 rcon==2.3.0
Collecting mcipc==2.4.0
  Using cached mcipc-2.4.0-py3-none-any.whl (127 kB)
Collecting rcon==2.3.0
  Using cached rcon-2.3.0-py3-none-any.whl (30 kB)
Installing collected packages: rcon, mcipc
  Attempting uninstall: rcon
    Found existing installation: rcon 2.2.1
    Uninstalling rcon-2.2.1:
      Successfully uninstalled rcon-2.2.1
  Attempting uninstall: mcipc
    Found existing installation: mcipc 2.3.8
    Uninstalling mcipc-2.3.8:
      Successfully uninstalled mcipc-2.3.8
Successfully installed mcipc-2.4.0 rcon-2.3.0

[notice] A new release of pip available: 22.1.2 -> 22.2.2
[notice] To update, run: pip install --upgrade pip
(.venv-mciwb) (item-frames) [giles@ws1 mciwb]$ ipython
Python 3.10.4 (main, Jun 29 2022, 12:14:53) [GCC 11.2.0]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.4.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: from mcipc.rcon import Client

In [2]: 
   ...: with Client("localhost", 20100, passwd="default_pass") as c:
   ...:     x = c.seed
   ...:     print(x)
   ...: 
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Input In [2], in <cell line: 1>()
----> 1 with Client("localhost", 20100, passwd="default_pass") as c:
      2     x = c.seed
      3     print(x)

File /mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/client.py:31, in BaseClient.__enter__(self)
     29 """Attempt an auto-login if a password is set."""
     30 self._socket.__enter__()
---> 31 self.connect(login=True)
     32 return self

File /mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/client.py:55, in BaseClient.connect(self, login)
     52 self._socket.connect((self.host, self.port))
     54 if login and self.passwd is not None:
---> 55     self.login(self.passwd)

File /mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/client.py:62, in Client.login(self, passwd, encoding)
     60 """Perform a login."""
     61 request = Packet.make_login(passwd, encoding=encoding)
---> 62 response = self.communicate(request)
     64 # Wait for SERVERDATA_AUTH_RESPONSE according to:
     65 # https://developer.valvesoftware.com/wiki/Source_RCON_Protocol
     66 while response.type != Type.SERVERDATA_AUTH_RESPONSE:

File /mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/client.py:46, in Client.communicate(self, packet)
     43     with self._socket.makefile('wb') as file:
     44         file.write(bytes(Packet.make_command(self._frag_detect)))
---> 46 return self.read()

File /mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/client.py:51, in Client.read(self)
     49 """Read a packet."""
     50 with self._socket.makefile('rb') as file:
---> 51     packet = Packet.read(file)
     53     if self._frag_detect is not None:
     54         while (successor := Packet.read(file)).id == packet.id:

File /mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:125, in Packet.read(cls, file)
    123 id_ = LittleEndianSignedInt32.read(file)
    124 type_ = Type.read(file)
--> 125 payload = file.read(size - 10)
    126 terminator = file.read(2)
    128 if terminator != TERMINATOR:

ValueError: read length must be non-negative or -1

In [3]: 
conqp commented 2 years ago

That looks like the server returning garbage. The failure occurs before the newly implemented follow-up packets are even read. I cannot reproduce it on my machine:

$ ipython
Python 3.10.6 (main, Aug  3 2022, 17:39:45) [GCC 12.1.1 20220730]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.4.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: from mcipc.rcon import Client

In [2]: with Client('srv.richard-neumann.de', 5000, passwd='REDACTED') as client:
   ...:     print(client.seed)
   ...: 
0
$ pacman -Q python-mcipc python-rcon 
python-mcipc 2.4.0-1
python-rcon 2.3.0-1
conqp commented 2 years ago

Okay. It only happens, when I run the RCON client on the local server host. I think there is a race condition regarding the sent and read packets. I think I'm onto something there, standby.

conqp commented 2 years ago

Please try again with rcon-2.3.1.

gilesknap commented 2 years ago

Thanks. I may still be seeing an issue. Will do more investigation tomorrow morning (UK).

gilesknap commented 2 years ago

Intro

I seem to be getting the same behaviour on local and remote servers for all 3 versions of RCON. To help you diagnose I'm going to show the results for all 6 combinations using the test module below.

In the latest version of RCON I get a new error when trying to get the long data from my player.

import sys

from mcipc.rcon import Client

with Client(sys.argv[1], int(sys.argv[2]), passwd=sys.argv[3]) as c:
    s = c.seed
    print(f"seed is {s}")

    r = c.data.get(entity="TransformerScorn")
    print(len(r))

    c.seed

Remote Server

(.venv-mciwb) (dev) [giles@ws1 mciwb]$ pip freeze | grep 'mcipc\|rcon'
mcipc==2.3.8
rcon==2.2.1
(.venv-mciwb) (dev) [giles@ws1 mciwb]$ python rcon_test.py nuc1 30506 'CHANGEME!'
seed is -6846613196353056449
4096
Traceback (most recent call last):
  File "/mnt/bigdisk/work/mc/mciwb/rcon_test.py", line 12, in <module>
    c.seed
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/mcipc/rcon/functions.py", line 63, in inner
    return parser(function(*args, **kwargs))
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/mcipc/rcon/je/commands/seed.py", line 15, in seed
    return self.run('seed')
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/mcipc/rcon/je/client.py", line 76, in run
    return check_result(super().run(command, *arguments))
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/mcipc/rcon/client.py", line 16, in run
    return super().run(*str_until_none(command, *arguments))
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/client.py", line 49, in run
    raise SessionTimeout()
rcon.exceptions.SessionTimeout

(.venv-mciwb) (dev) [giles@ws1 mciwb]$ pip freeze | grep 'mcipc\|rcon'
mcipc==2.4.0
rcon==2.3.0
(.venv-mciwb) (dev) [giles@ws1 mciwb]$ python rcon_test.py nuc1 30506 'CHANGEME!'
Traceback (most recent call last):
  File "/mnt/bigdisk/work/mc/mciwb/rcon_test.py", line 5, in <module>
    with Client(sys.argv[1], int(sys.argv[2]), passwd=sys.argv[3]) as c:
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/client.py", line 31, in __enter__
    self.connect(login=True)
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/client.py", line 55, in connect
    self.login(self.passwd)
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/client.py", line 62, in login
    response = self.communicate(request)
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/client.py", line 46, in communicate
    return self.read()
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/client.py", line 51, in read
    packet = Packet.read(file)
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py", line 125, in read
    payload = file.read(size - 10)
ValueError: read length must be non-negative or -1

(.venv-mciwb) (dev) [giles@ws1 mciwb]$ pip freeze | grep 'mcipc\|rcon'
mcipc==2.4.0
rcon==2.3.1
(.venv-mciwb) (dev) [giles@ws1 mciwb]$ python rcon_test.py nuc1 30506 'CHANGEME!'
seed is -6846613196353056449
Traceback (most recent call last):
  File "/mnt/bigdisk/work/mc/mciwb/rcon_test.py", line 9, in <module>
    r = c.data.get(entity="TransformerScorn")
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/mcipc/rcon/je/commands/data.py", line 87, in get
    return self._run('get', key, value, path, scale)
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/mcipc/rcon/proxy.py", line 34, in _run
    return self._client.run(*self._args, *args)
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/mcipc/rcon/je/client.py", line 76, in run
    return check_result(super().run(command, *arguments))
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/mcipc/rcon/client.py", line 16, in run
    return super().run(*str_until_none(command, *arguments))
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/client.py", line 78, in run
    response = self.communicate(request)
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/client.py", line 50, in communicate
    while (successor := self.read()).id == response.id:
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/client.py", line 58, in read
    return Packet.read(file)
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py", line 124, in read
    type_ = Type.read(file)
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py", line 71, in read
    return cls(LittleEndianSignedInt32.read(file))
  File "/usr/lib/python3.10/enum.py", line 385, in __call__
    return cls.__new__(cls, value)
  File "/usr/lib/python3.10/enum.py", line 710, in __new__
    raise ve_exc
ValueError: 1634493023 is not a valid Type

Local Host

(.venv-mciwb) (dev) [giles@ws1 mciwb]$ pip freeze | grep 'mcipc\|rcon'
mcipc==2.3.8
rcon==2.2.1
(.venv-mciwb) (dev) [giles@ws1 mciwb]$ python rcon_test.py localhost 20100 default_pass
seed is 0
4096
Traceback (most recent call last):
  File "/mnt/bigdisk/work/mc/mciwb/rcon_test.py", line 12, in <module>
    c.seed
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/mcipc/rcon/functions.py", line 63, in inner
    return parser(function(*args, **kwargs))
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/mcipc/rcon/je/commands/seed.py", line 15, in seed
    return self.run('seed')
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/mcipc/rcon/je/client.py", line 76, in run
    return check_result(super().run(command, *arguments))
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/mcipc/rcon/client.py", line 16, in run
    return super().run(*str_until_none(command, *arguments))
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/client.py", line 49, in run
    raise SessionTimeout()
rcon.exceptions.SessionTimeout

(.venv-mciwb) (dev) [giles@ws1 mciwb]$ pip freeze | grep 'mcipc\|rcon'
mcipc==2.4.0
rcon==2.3.0
(.venv-mciwb) (dev) [giles@ws1 mciwb]$ python rcon_test.py localhost 20100 default_pass
Traceback (most recent call last):
  File "/mnt/bigdisk/work/mc/mciwb/rcon_test.py", line 5, in <module>
    with Client(sys.argv[1], int(sys.argv[2]), passwd=sys.argv[3]) as c:
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/client.py", line 31, in __enter__
    self.connect(login=True)
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/client.py", line 55, in connect
    self.login(self.passwd)
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/client.py", line 62, in login
    response = self.communicate(request)
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/client.py", line 46, in communicate
    return self.read()
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/client.py", line 51, in read
    packet = Packet.read(file)
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py", line 125, in read
    payload = file.read(size - 10)
ValueError: read length must be non-negative or -1

(.venv-mciwb) (dev) [giles@ws1 mciwb]$ pip freeze | grep 'mcipc\|rcon'
mcipc==2.4.0
rcon==2.3.1
(.venv-mciwb) (dev) [giles@ws1 mciwb]$ python rcon_test.py localhost 20100 default_pass
seed is 0
Traceback (most recent call last):
  File "/mnt/bigdisk/work/mc/mciwb/rcon_test.py", line 9, in <module>
    r = c.data.get(entity="TransformerScorn")
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/mcipc/rcon/je/commands/data.py", line 87, in get
    return self._run('get', key, value, path, scale)
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/mcipc/rcon/proxy.py", line 34, in _run
    return self._client.run(*self._args, *args)
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/mcipc/rcon/je/client.py", line 76, in run
    return check_result(super().run(command, *arguments))
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/mcipc/rcon/client.py", line 16, in run
    return super().run(*str_until_none(command, *arguments))
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/client.py", line 78, in run
    response = self.communicate(request)
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/client.py", line 50, in communicate
    while (successor := self.read()).id == response.id:
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/client.py", line 58, in read
    return Packet.read(file)
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py", line 124, in read
    type_ = Type.read(file)
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py", line 71, in read
    return cls(LittleEndianSignedInt32.read(file))
  File "/usr/lib/python3.10/enum.py", line 385, in __call__
    return cls.__new__(cls, value)
  File "/usr/lib/python3.10/enum.py", line 710, in __new__
    raise ve_exc
ValueError: 1717662307 is not a valid Type
(.venv-mciwb) (dev) [giles@ws1 mciwb]$ 
conqp commented 2 years ago

I added some debug code in rcon 2.3.2. Since I cannot reproduce the issue on my server, it might be helpful, if you could provide the debug output from yours: $ cat rcontest2.py

#! /usr/bin/env python

from logging import DEBUG, basicConfig
import sys

from mcipc.rcon import Client

basicConfig(level=DEBUG)

with Client(sys.argv[1], int(sys.argv[2]), passwd=sys.argv[3]) as c:
    s = c.seed
    print(f"seed is {s}")

    r = c.data.get(entity="coNQP")
    print(r, len(r))

    c.seed
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Reading packet.
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => size: 10
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => id: 660987157
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Reading type asynchronously.
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => value: 2
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => type: 2
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => payload: b''
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => terminator: b'\x00\x00'
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Reading packet.
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => size: 37
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => id: 1977503641
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Reading type asynchronously.
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => value: 0
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => type: 0
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => payload: b'Seed: [8549242805870670357]'
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => terminator: b'\x00\x00'
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Reading packet.
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => size: 37
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => id: 115915452
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Reading type asynchronously.
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => value: 0
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => type: 0
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => payload: b'Seed: [8549242805870670357]'
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => terminator: b'\x00\x00'
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Reading packet.
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => size: 37
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => id: 611159469
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Reading type asynchronously.
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => value: 0
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => type: 0
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => payload: b'Seed: [8549242805870670357]'
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => terminator: b'\x00\x00'
seed is 8549242805870670357
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Reading packet.
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => size: 4106
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => id: 65346729
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Reading type asynchronously.
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => value: 0
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => type: 0
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => payload: b'coNQP has the following entity data: {Brain: {memories: {}}, HurtByTimestamp: 0, SleepTimer: 0s, Attributes: [{Base: 0.0d, Name: "minecraft:generic.knockback_resistance"}, {Base: 0.0d, Name: "minecraft:generic.armor"}, {Base: 0.10000000149011612d, Name: "minecraft:generic.movement_speed"}, {Base: 0.0d, Name: "minecraft:generic.armor_toughness"}], Invulnerable: 0b, FallFlying: 0b, PortalCooldown: 0, AbsorptionAmount: 0.0f, abilities: {invulnerable: 1b, mayfly: 1b, instabuild: 1b, walkSpeed: 0.1f, mayBuild: 1b, flying: 0b, flySpeed: 0.05f}, FallDistance: 0.0f, recipeBook: {recipes: ["minecraft:chest", "minecraft:oak_chest_boat", "minecraft:acacia_chest_boat", "minecraft:bowl", "minecraft:gold_nugget_from_smelting", "minecraft:mangrove_chest_boat", "minecraft:dark_oak_chest_boat", "minecraft:iron_nugget_from_blasting", "minecraft:birch_chest_boat", "minecraft:jungle_chest_boat", "minecraft:mushroom_stew", "minecraft:gold_nugget_from_blasting", "minecraft:redstone", "minecraft:spruce_chest_boat", "minecraft:iron_nugget_from_smelting"], isBlastingFurnaceFilteringCraftable: 0b, isSmokerGuiOpen: 0b, isFilteringCraftable: 0b, toBeDisplayed: ["minecraft:chest", "minecraft:oak_chest_boat", "minecraft:acacia_chest_boat", "minecraft:bowl", "minecraft:gold_nugget_from_smelting", "minecraft:mangrove_chest_boat", "minecraft:dark_oak_chest_boat", "minecraft:iron_nugget_from_blasting", "minecraft:birch_chest_boat", "minecraft:jungle_chest_boat", "minecraft:mushroom_stew", "minecraft:gold_nugget_from_blasting", "minecraft:redstone", "minecraft:spruce_chest_boat", "minecraft:iron_nugget_from_smelting"], isFurnaceGuiOpen: 0b, isGuiOpen: 0b, isFurnaceFilteringCraftable: 0b, isBlastingFurnaceGuiOpen: 0b, isSmokerFilteringCraftable: 0b}, DeathTime: 0s, XpSeed: -2069349136, XpTotal: 0, UUID: [I; 1125708273, -443792095, -1381435671, 1372080845], playerGameType: 1, SelectedItem: {id: "minecraft:tropical_fish_bucket", Count: 1b}, seenCredits: 0b, Motion: [0.0d, -0.0784000015258789d, 0.0d], Health: 20.0f, foodSaturationLevel: 5.0f, Air: 300s, OnGround: 1b, Dimension: "minecraft:overworld", Rotation: [-7.6500134f, -28.022469f], XpLevel: 0, warden_spawn_tracker: {warning_level: 0, ticks_since_last_warning: 11655, cooldown_ticks: 0}, Score: 0, Pos: [99.5d, 67.0d, -50.5d], previousPlayerGameType: 0, Fire: -20s, XpP: 0.0f, EnderItems: [], DataVersion: 3120, foodLevel: 20, foodExhaustionLevel: 0.0f, HurtTime: 0s, SelectedItemSlot: 0, Inventory: [{Slot: 0b, id: "minecraft:tropical_fish_bucket", Count: 1b}, {Slot: 1b, id: "minecraft:acacia_leaves", Count: 1b}, {Slot: 2b, id: "minecraft:flowering_azalea", Count: 1b}, {Slot: 3b, id: "minecraft:red_mushroom", Count: 1b}, {Slot: 4b, id: "minecraft:crimson_roots", Count: 1b}, {Slot: 5b, id: "minecraft:warped_roots", Count: 1b}, {Slot: 6b, id: "minecraft:nether_sprouts", Count: 1b}, {Slot: 7b, id: "minecraft:bedrock", Count: 29b}, {Slot: 8b, id: "minecraft:flowering_azalea_leaves", Count: 1b}, {Slot: 9b, id: "minecraft:redstone_block", Count: 1b}, {Slot: 10b, id: "minecraft:calcite", Count: 1b}, {Slot: 11b, id: "minecraft:bedrock", Count: 1b}, {Slot: 12b, id: "minecraft:bedrock", Count: 1b}, {Slot: 13b, id: "minecraft:bedrock", Count: 1b}, {Slot: 14b, id: "minecraft:bedrock", Count: 1b}, {Slot: 15b, id: "minecraft:bedrock", Count: 1b}, {Slot: 16b, id: "minecraft:bedrock", Count: 2b}, {Slot: 17b, id: "minecraft:bedrock", Count: 1b}, {Slot: 18b, id: "minecraft:bedrock", Count: 1b}, {Slot: 19b, id: "minecraft:bedrock", Count: 1b}, {Slot: 20b, id: "minecraft:bedrock", Count: 1b}, {Slot: 21b, id: "minecraft:bedrock", Count: 1b}, {Slot: 22b, id: "minecraft:bedrock", Count: 1b}, {Slot: 23b, id: "minecraft:bedrock", Count: 1b}, {Slot: 24b, id: "minecraft:bedrock", Count: 1b}, {Slot: 25b, id: "minecraft:bedrock", Count: 1b}, {Slot: 26b, id: "minecraft:bedrock", Count: 1b}, {Slot: 27b, id: "minecraft:spruce_sapling", Count: 1b}, {Slot: 28b, id: "minecraft:lead", Count: 1b}, {Slot: 29b, id: "minecraft:potion", Count: 1b, tag: {Potion: "minecraft:strong_poison"}}, {Slot: 30b, id: "minecraft:bedrock", Count: 1b}, {Slot: 31b,'
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => terminator: b'\x00\x00'
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Reading packet.
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => size: 648
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => id: 65346729
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Reading type asynchronously.
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => value: 0
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => type: 0
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => payload: b' id: "minecraft:bedrock", Count: 1b}, {Slot: 32b, id: "minecraft:bedrock", Count: 1b}, {Slot: 33b, id: "minecraft:bedrock", Count: 1b}, {Slot: 34b, id: "minecraft:bedrock", Count: 1b}, {Slot: 35b, id: "minecraft:jungle_chest_boat", Count: 1b}, {Slot: 100b, id: "minecraft:netherite_boots", Count: 1b, tag: {Damage: 0}}, {Slot: 101b, id: "minecraft:leather_leggings", Count: 1b, tag: {Damage: 0}}, {Slot: 102b, id: "minecraft:golden_chestplate", Count: 1b, tag: {Damage: 0}}, {Slot: 103b, id: "minecraft:chainmail_helmet", Count: 1b, tag: {Damage: 0}}, {Slot: -106b, id: "minecraft:shield", Count: 1b, tag: {Damage: 0}}], foodTickTimer: 0}'
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => terminator: b'\x00\x00'
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Reading packet.
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => size: 37
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => id: 1156788291
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Reading type asynchronously.
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => value: 0
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => type: 0
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => payload: b'Seed: [8549242805870670357]'
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => terminator: b'\x00\x00'
coNQP has the following entity data: {Brain: {memories: {}}, HurtByTimestamp: 0, SleepTimer: 0s, Attributes: [{Base: 0.0d, Name: "minecraft:generic.knockback_resistance"}, {Base: 0.0d, Name: "minecraft:generic.armor"}, {Base: 0.10000000149011612d, Name: "minecraft:generic.movement_speed"}, {Base: 0.0d, Name: "minecraft:generic.armor_toughness"}], Invulnerable: 0b, FallFlying: 0b, PortalCooldown: 0, AbsorptionAmount: 0.0f, abilities: {invulnerable: 1b, mayfly: 1b, instabuild: 1b, walkSpeed: 0.1f, mayBuild: 1b, flying: 0b, flySpeed: 0.05f}, FallDistance: 0.0f, recipeBook: {recipes: ["minecraft:chest", "minecraft:oak_chest_boat", "minecraft:acacia_chest_boat", "minecraft:bowl", "minecraft:gold_nugget_from_smelting", "minecraft:mangrove_chest_boat", "minecraft:dark_oak_chest_boat", "minecraft:iron_nugget_from_blasting", "minecraft:birch_chest_boat", "minecraft:jungle_chest_boat", "minecraft:mushroom_stew", "minecraft:gold_nugget_from_blasting", "minecraft:redstone", "minecraft:spruce_chest_boat", "minecraft:iron_nugget_from_smelting"], isBlastingFurnaceFilteringCraftable: 0b, isSmokerGuiOpen: 0b, isFilteringCraftable: 0b, toBeDisplayed: ["minecraft:chest", "minecraft:oak_chest_boat", "minecraft:acacia_chest_boat", "minecraft:bowl", "minecraft:gold_nugget_from_smelting", "minecraft:mangrove_chest_boat", "minecraft:dark_oak_chest_boat", "minecraft:iron_nugget_from_blasting", "minecraft:birch_chest_boat", "minecraft:jungle_chest_boat", "minecraft:mushroom_stew", "minecraft:gold_nugget_from_blasting", "minecraft:redstone", "minecraft:spruce_chest_boat", "minecraft:iron_nugget_from_smelting"], isFurnaceGuiOpen: 0b, isGuiOpen: 0b, isFurnaceFilteringCraftable: 0b, isBlastingFurnaceGuiOpen: 0b, isSmokerFilteringCraftable: 0b}, DeathTime: 0s, XpSeed: -2069349136, XpTotal: 0, UUID: [I; 1125708273, -443792095, -1381435671, 1372080845], playerGameType: 1, SelectedItem: {id: "minecraft:tropical_fish_bucket", Count: 1b}, seenCredits: 0b, Motion: [0.0d, -0.0784000015258789d, 0.0d], Health: 20.0f, foodSaturationLevel: 5.0f, Air: 300s, OnGround: 1b, Dimension: "minecraft:overworld", Rotation: [-7.6500134f, -28.022469f], XpLevel: 0, warden_spawn_tracker: {warning_level: 0, ticks_since_last_warning: 11655, cooldown_ticks: 0}, Score: 0, Pos: [99.5d, 67.0d, -50.5d], previousPlayerGameType: 0, Fire: -20s, XpP: 0.0f, EnderItems: [], DataVersion: 3120, foodLevel: 20, foodExhaustionLevel: 0.0f, HurtTime: 0s, SelectedItemSlot: 0, Inventory: [{Slot: 0b, id: "minecraft:tropical_fish_bucket", Count: 1b}, {Slot: 1b, id: "minecraft:acacia_leaves", Count: 1b}, {Slot: 2b, id: "minecraft:flowering_azalea", Count: 1b}, {Slot: 3b, id: "minecraft:red_mushroom", Count: 1b}, {Slot: 4b, id: "minecraft:crimson_roots", Count: 1b}, {Slot: 5b, id: "minecraft:warped_roots", Count: 1b}, {Slot: 6b, id: "minecraft:nether_sprouts", Count: 1b}, {Slot: 7b, id: "minecraft:bedrock", Count: 29b}, {Slot: 8b, id: "minecraft:flowering_azalea_leaves", Count: 1b}, {Slot: 9b, id: "minecraft:redstone_block", Count: 1b}, {Slot: 10b, id: "minecraft:calcite", Count: 1b}, {Slot: 11b, id: "minecraft:bedrock", Count: 1b}, {Slot: 12b, id: "minecraft:bedrock", Count: 1b}, {Slot: 13b, id: "minecraft:bedrock", Count: 1b}, {Slot: 14b, id: "minecraft:bedrock", Count: 1b}, {Slot: 15b, id: "minecraft:bedrock", Count: 1b}, {Slot: 16b, id: "minecraft:bedrock", Count: 2b}, {Slot: 17b, id: "minecraft:bedrock", Count: 1b}, {Slot: 18b, id: "minecraft:bedrock", Count: 1b}, {Slot: 19b, id: "minecraft:bedrock", Count: 1b}, {Slot: 20b, id: "minecraft:bedrock", Count: 1b}, {Slot: 21b, id: "minecraft:bedrock", Count: 1b}, {Slot: 22b, id: "minecraft:bedrock", Count: 1b}, {Slot: 23b, id: "minecraft:bedrock", Count: 1b}, {Slot: 24b, id: "minecraft:bedrock", Count: 1b}, {Slot: 25b, id: "minecraft:bedrock", Count: 1b}, {Slot: 26b, id: "minecraft:bedrock", Count: 1b}, {Slot: 27b, id: "minecraft:spruce_sapling", Count: 1b}, {Slot: 28b, id: "minecraft:lead", Count: 1b}, {Slot: 29b, id: "minecraft:potion", Count: 1b, tag: {Potion: "minecraft:strong_poison"}}, {Slot: 30b, id: "minecraft:bedrock", Count: 1b}, {Slot: 31b, id: "minecraft:bedrock", Count: 1b}, {Slot: 32b, id: "minecraft:bedrock", Count: 1b}, {Slot: 33b, id: "minecraft:bedrock", Count: 1b}, {Slot: 34b, id: "minecraft:bedrock", Count: 1b}, {Slot: 35b, id: "minecraft:jungle_chest_boat", Count: 1b}, {Slot: 100b, id: "minecraft:netherite_boots", Count: 1b, tag: {Damage: 0}}, {Slot: 101b, id: "minecraft:leather_leggings", Count: 1b, tag: {Damage: 0}}, {Slot: 102b, id: "minecraft:golden_chestplate", Count: 1b, tag: {Damage: 0}}, {Slot: 103b, id: "minecraft:chainmail_helmet", Count: 1b, tag: {Damage: 0}}, {Slot: -106b, id: "minecraft:shield", Count: 1b, tag: {Damage: 0}}], foodTickTimer: 0} 4734
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Reading packet.
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => size: 37
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => id: 2144958653
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Reading type asynchronously.
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => value: 0
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => type: 0
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => payload: b'Seed: [8549242805870670357]'
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => terminator: b'\x00\x00'
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Reading packet.
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => size: 37
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => id: 1544019956
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Reading type asynchronously.
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => value: 0
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => type: 0
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => payload: b'Seed: [8549242805870670357]'
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => terminator: b'\x00\x00'

Btw: The "asynchronously" is a copy-paste error in the log message. You can ignore that. It'll be fixed in the upcoming versions. PS: Log messages fixed in rcon-2.3.3.

gilesknap commented 2 years ago

Here is my log.

(I'm going to be away from now until Weds evening so this will be my last response until then)

(.venv-mciwb) (item-frames) [giles@ws1 mciwb]$ python rcon_test2.py localhost 20100 default_pass
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:Reading packet.
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => size: 10
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => id: 840721519
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:Reading type asynchronously.
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => value: 2
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => type: 2
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => payload: b''
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => terminator: b'\x00\x00'
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:Reading packet.
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => size: 19
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => id: 27273344
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:Reading type asynchronously.
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => value: 0
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => type: 0
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => payload: b'Seed: [0]'
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => terminator: b'\x00\x00'
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:Reading packet.
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => size: 19
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => id: 923156039
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:Reading type asynchronously.
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => value: 0
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => type: 0
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => payload: b'Seed: [0]'
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => terminator: b'\x00\x00'
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:Reading packet.
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => size: 19
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => id: 1724199172
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:Reading type asynchronously.
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => value: 0
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => type: 0
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => payload: b'Seed: [0]'
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => terminator: b'\x00\x00'
seed is 0
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:Reading packet.
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => size: 4106
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => id: 1925453420
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:Reading type asynchronously.
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => value: 0
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => type: 0
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => payload: b'TransformerScorn has the following entity data: {Brain: {memories: {}}, HurtByTimestamp: 99239, SleepTimer: 0s, Attributes: [{Base: 0.0d, Name: "minecraft:generic.armor"}, {Base: 1.0d, Name: "minecraft:generic.attack_damage"}, {Base: 0.10000000149011612d, Name: "minecraft:generic.movement_speed"}, {Base: 0.0d, Name: "minecraft:generic.knockback_resistance"}, {Base: 4.0d, Name: "minecraft:generic.attack_speed"}, {Base: 0.0d, Name: "minecraft:generic.armor_toughness"}], Invulnerable: 0b, FallFlying: 0b, PortalCooldown: 0, AbsorptionAmount: 0.0f, abilities: {invulnerable: 1b, mayfly: 1b, instabuild: 1b, walkSpeed: 0.1f, mayBuild: 1b, flying: 0b, flySpeed: 0.05f}, FallDistance: 0.0f, recipeBook: {recipes: ["minecraft:mangrove_boat", "minecraft:chest", "minecraft:gray_stained_glass", "minecraft:wooden_pickaxe", "minecraft:charcoal", "minecraft:polished_granite_stairs", "minecraft:acacia_boat", "minecraft:stone_hoe", "minecraft:jungle_boat", "minecraft:green_concrete_powder", "minecraft:lever", "minecraft:smooth_sandstone", "minecraft:oak_stairs", "minecraft:polished_granite_stairs_from_polished_granite_stonecutting", "minecraft:stone_button", "minecraft:gold_ingot_from_gold_block", "minecraft:stonecutter", "minecraft:stone_pickaxe", "minecraft:glass_pane", "minecraft:cobbled_deepslate_slab", "minecraft:cobbled_deepslate_slab_from_cobbled_deepslate_stonecutting", "minecraft:brown_stained_glass", "minecraft:wooden_axe", "minecraft:dark_oak_boat", "minecraft:dispenser", "minecraft:glass_bottle", "minecraft:deepslate_bricks_from_cobbled_deepslate_stonecutting", "minecraft:oak_fence_gate", "minecraft:stripped_oak_wood", "minecraft:purple_stained_glass", "minecraft:red_stained_glass", "minecraft:birch_fence", "minecraft:sandstone", "minecraft:yellow_concrete_powder", "minecraft:deepslate_brick_stairs_from_cobbled_deepslate_stonecutting", "minecraft:soul_campfire", "minecraft:red_concrete_powder", "minecraft:cobblestone_stairs_from_cobblestone_stonecutting", "minecraft:ladder", "minecraft:cut_sandstone_from_sandstone_stonecutting", "minecraft:glass", "minecraft:stone_stairs_from_stone_stonecutting", "minecraft:crafting_table", "minecraft:stone_stairs", "minecraft:sandstone_stairs_from_sandstone_stonecutting", "minecraft:sandstone_wall", "minecraft:blue_concrete_powder", "minecraft:cobblestone_wall", "minecraft:dark_oak_wood", "minecraft:blue_stained_glass", "minecraft:oak_fence", "minecraft:white_concrete_powder", "minecraft:stone_slab_from_stone_stonecutting", "minecraft:magenta_stained_glass", "minecraft:chiseled_deepslate_from_cobbled_deepslate_stonecutting", "minecraft:cake", "minecraft:gray_concrete_powder", "minecraft:stone_brick_slab_from_stone_stonecutting", "minecraft:stick", "minecraft:iron_nugget_from_smelting", "minecraft:birch_door", "minecraft:light_blue_concrete_powder", "minecraft:oak_sign", "minecraft:light_gray_concrete_powder", "minecraft:furnace", "minecraft:birch_sign", "minecraft:stone_slab", "minecraft:polished_granite_slab_from_polished_granite_stonecutting", "minecraft:oak_trapdoor", "minecraft:lime_concrete_powder", "minecraft:sandstone_wall_from_sandstone_stonecutting", "minecraft:cobbled_deepslate_wall_from_cobbled_deepslate_stonecutting", "minecraft:birch_pressure_plate", "minecraft:polished_deepslate_from_cobbled_deepslate_stonecutting", "minecraft:oak_door", "minecraft:stone_axe", "minecraft:glow_item_frame", "minecraft:deepslate", "minecraft:barrel", "minecraft:birch_button", "minecraft:stone", "minecraft:wooden_sword", "minecraft:oak_planks", "minecraft:birch_fence_gate", "minecraft:stone_brick_stairs_from_stone_stonecutting", "minecraft:iron_nugget_from_blasting", "minecraft:yellow_stained_glass", "minecraft:crossbow", "minecraft:green_stained_glass", "minecraft:light_blue_stained_glass", "minecraft:chiseled_stone_bricks_stone_from_stonecutting", "minecraft:stone_bricks", "minecraft:sandstone_slab_from_sandstone_stonecutting", "minecraft:deepslate_tile_wall_from_cobbled_deepslate_stonecutting", "minecraft:wooden_shovel", "minecraft:cobbled_deepslate_wall", "minecraft:cut_sandstone", "minecraft:cobbl'
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => terminator: b'\x00\x00'
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:Reading packet.
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => size: 4106
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => id: 1925453420
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:Reading type asynchronously.
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => value: 0
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => type: 0
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => payload: b'ed_deepslate_stairs", "minecraft:birch_stairs", "minecraft:chiseled_sandstone_from_sandstone_stonecutting", "minecraft:black_concrete_powder", "minecraft:light_gray_stained_glass", "minecraft:orange_stained_glass", "minecraft:purple_concrete_powder", "minecraft:smooth_stone", "minecraft:pink_concrete_powder", "minecraft:polished_deepslate_slab_from_cobbled_deepslate_stonecutting", "minecraft:birch_planks", "minecraft:stone_shovel", "minecraft:pink_stained_glass", "minecraft:cobblestone_stairs", "minecraft:cobblestone_wall_from_cobblestone_stonecutting", "minecraft:dark_oak_planks", "minecraft:deepslate_tiles_from_cobbled_deepslate_stonecutting", "minecraft:white_stained_glass", "minecraft:oak_button", "minecraft:spruce_boat", "minecraft:birch_boat", "minecraft:acacia_planks", "minecraft:brown_concrete_powder", "minecraft:wooden_hoe", "minecraft:cobbled_deepslate_stairs_from_cobbled_deepslate_stonecutting", "minecraft:orange_concrete_powder", "minecraft:magenta_concrete_powder", "minecraft:birch_trapdoor", "minecraft:cyan_stained_glass", "minecraft:stone_pressure_plate", "minecraft:polished_deepslate_stairs_from_cobbled_deepslate_stonecutting", "minecraft:oak_pressure_plate", "minecraft:campfire", "minecraft:sandstone_slab", "minecraft:stone_sword", "minecraft:polished_deepslate_wall_from_cobbled_deepslate_stonecutting", "minecraft:deepslate_brick_wall_from_cobbled_deepslate_stonecutting", "minecraft:packed_mud", "minecraft:cobblestone_slab", "minecraft:deepslate_tile_slab_from_cobbled_deepslate_stonecutting", "minecraft:sandstone_stairs", "minecraft:deepslate_brick_slab_from_cobbled_deepslate_stonecutting", "minecraft:oak_slab", "minecraft:lime_stained_glass", "minecraft:cut_sandstone_slab_from_sandstone_stonecutting", "minecraft:acacia_wood", "minecraft:birch_slab", "minecraft:cyan_concrete_powder", "minecraft:polished_granite_slab", "minecraft:deepslate_tile_stairs_from_cobbled_deepslate_stonecutting", "minecraft:stone_brick_walls_from_stone_stonecutting", "minecraft:stone_bricks_from_stone_stonecutting", "minecraft:oak_boat", "minecraft:cobblestone_slab_from_cobblestone_stonecutting", "minecraft:polished_deepslate", "minecraft:black_stained_glass"], isBlastingFurnaceFilteringCraftable: 0b, isSmokerGuiOpen: 0b, isFilteringCraftable: 0b, toBeDisplayed: ["minecraft:mangrove_boat", "minecraft:chest", "minecraft:gray_stained_glass", "minecraft:wooden_pickaxe", "minecraft:charcoal", "minecraft:polished_granite_stairs", "minecraft:acacia_boat", "minecraft:stone_hoe", "minecraft:jungle_boat", "minecraft:green_concrete_powder", "minecraft:lever", "minecraft:smooth_sandstone", "minecraft:oak_stairs", "minecraft:polished_granite_stairs_from_polished_granite_stonecutting", "minecraft:stone_button", "minecraft:gold_ingot_from_gold_block", "minecraft:stonecutter", "minecraft:stone_pickaxe", "minecraft:glass_pane", "minecraft:cobbled_deepslate_slab", "minecraft:cobbled_deepslate_slab_from_cobbled_deepslate_stonecutting", "minecraft:brown_stained_glass", "minecraft:wooden_axe", "minecraft:dark_oak_boat", "minecraft:dispenser", "minecraft:glass_bottle", "minecraft:deepslate_bricks_from_cobbled_deepslate_stonecutting", "minecraft:oak_fence_gate", "minecraft:stripped_oak_wood", "minecraft:purple_stained_glass", "minecraft:red_stained_glass", "minecraft:birch_fence", "minecraft:sandstone", "minecraft:yellow_concrete_powder", "minecraft:deepslate_brick_stairs_from_cobbled_deepslate_stonecutting", "minecraft:soul_campfire", "minecraft:red_concrete_powder", "minecraft:cobblestone_stairs_from_cobblestone_stonecutting", "minecraft:ladder", "minecraft:cut_sandstone_from_sandstone_stonecutting", "minecraft:glass", "minecraft:stone_stairs_from_stone_stonecutting", "minecraft:crafting_table", "minecraft:stone_stairs", "minecraft:sandstone_stairs_from_sandstone_stonecutting", "minecraft:sandstone_wall", "minecraft:blue_concrete_powder", "minecraft:cobblestone_wall", "minecraft:dark_oak_wood", "minecraft:blue_stained_glass", "minecraft:oak_fence", "minecraft:white_concrete_powder", "minecraft:stone_slab_from_stone_stonecutting", "minecraft:magenta_'
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => terminator: b'\x00\x00'
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:Reading packet.
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => size: 1701667186
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => id: 1126181922
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:Reading type asynchronously.
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => value: 1953396079
Traceback (most recent call last):
  File "/mnt/bigdisk/work/mc/mciwb/rcon_test2.py", line 14, in <module>
    r = c.data.get(entity="TransformerScorn")
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/mcipc/rcon/je/commands/data.py", line 87, in get
    return self._run('get', key, value, path, scale)
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/mcipc/rcon/proxy.py", line 34, in _run
    return self._client.run(*self._args, *args)
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/mcipc/rcon/je/client.py", line 76, in run
    return check_result(super().run(command, *arguments))
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/mcipc/rcon/client.py", line 16, in run
    return super().run(*str_until_none(command, *arguments))
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/client.py", line 78, in run
    response = self.communicate(request)
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/client.py", line 50, in communicate
    while (successor := self.read()).id == response.id:
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/client.py", line 58, in read
    return Packet.read(file)
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py", line 139, in read
    type_ = Type.read(file)
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py", line 77, in read
    return cls(value)
  File "/usr/lib/python3.10/enum.py", line 385, in __call__
    return cls.__new__(cls, value)
  File "/usr/lib/python3.10/enum.py", line 710, in __new__
    raise ve_exc
ValueError: 1953396079 is not a valid Type
gilesknap commented 2 years ago

repeated with rcon 2.3.3

(.venv-mciwb) (item-frames) [giles@ws1 mciwb]$ python rcon_test2.py localhost 20100 default_pass
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:Reading packet.
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => size: 10
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => id: 800445896
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  Reading type.
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:    => value: 2
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => type: 2
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => payload: b''
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => terminator: b'\x00\x00'
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:Reading packet.
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => size: 19
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => id: 902276790
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  Reading type.
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:    => value: 0
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => type: 0
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => payload: b'Seed: [0]'
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => terminator: b'\x00\x00'
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:Reading packet.
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => size: 19
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => id: 1671365376
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  Reading type.
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:    => value: 0
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => type: 0
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => payload: b'Seed: [0]'
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => terminator: b'\x00\x00'
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:Reading packet.
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => size: 19
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => id: 1572290848
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  Reading type.
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:    => value: 0
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => type: 0
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => payload: b'Seed: [0]'
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => terminator: b'\x00\x00'
seed is 0
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:Reading packet.
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => size: 4106
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => id: 271238385
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  Reading type.
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:    => value: 0
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => type: 0
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => payload: b'TransformerScorn has the following entity data: {Brain: {memories: {}}, HurtByTimestamp: 99239, SleepTimer: 0s, Attributes: [{Base: 0.0d, Name: "minecraft:generic.armor"}, {Base: 1.0d, Name: "minecraft:generic.attack_damage"}, {Base: 0.10000000149011612d, Name: "minecraft:generic.movement_speed"}, {Base: 0.0d, Name: "minecraft:generic.knockback_resistance"}, {Base: 4.0d, Name: "minecraft:generic.attack_speed"}, {Base: 0.0d, Name: "minecraft:generic.armor_toughness"}], Invulnerable: 0b, FallFlying: 0b, PortalCooldown: 0, AbsorptionAmount: 0.0f, abilities: {invulnerable: 1b, mayfly: 1b, instabuild: 1b, walkSpeed: 0.1f, mayBuild: 1b, flying: 0b, flySpeed: 0.05f}, FallDistance: 0.0f, recipeBook: {recipes: ["minecraft:mangrove_boat", "minecraft:chest", "minecraft:gray_stained_glass", "minecraft:wooden_pickaxe", "minecraft:charcoal", "minecraft:polished_granite_stairs", "minecraft:acacia_boat", "minecraft:stone_hoe", "minecraft:jungle_boat", "minecraft:green_concrete_powder", "minecraft:lever", "minecraft:smooth_sandstone", "minecraft:oak_stairs", "minecraft:polished_granite_stairs_from_polished_granite_stonecutting", "minecraft:stone_button", "minecraft:gold_ingot_from_gold_block", "minecraft:stonecutter", "minecraft:stone_pickaxe", "minecraft:glass_pane", "minecraft:cobbled_deepslate_slab", "minecraft:cobbled_deepslate_slab_from_cobbled_deepslate_stonecutting", "minecraft:brown_stained_glass", "minecraft:wooden_axe", "minecraft:dark_oak_boat", "minecraft:dispenser", "minecraft:glass_bottle", "minecraft:deepslate_bricks_from_cobbled_deepslate_stonecutting", "minecraft:oak_fence_gate", "minecraft:stripped_oak_wood", "minecraft:purple_stained_glass", "minecraft:red_stained_glass", "minecraft:birch_fence", "minecraft:sandstone", "minecraft:yellow_concrete_powder", "minecraft:deepslate_brick_stairs_from_cobbled_deepslate_stonecutting", "minecraft:soul_campfire", "minecraft:red_concrete_powder", "minecraft:cobblestone_stairs_from_cobblestone_stonecutting", "minecraft:ladder", "minecraft:cut_sandstone_from_sandstone_stonecutting", "minecraft:glass", "minecraft:stone_stairs_from_stone_stonecutting", "minecraft:crafting_table", "minecraft:stone_stairs", "minecraft:sandstone_stairs_from_sandstone_stonecutting", "minecraft:sandstone_wall", "minecraft:blue_concrete_powder", "minecraft:cobblestone_wall", "minecraft:dark_oak_wood", "minecraft:blue_stained_glass", "minecraft:oak_fence", "minecraft:white_concrete_powder", "minecraft:stone_slab_from_stone_stonecutting", "minecraft:magenta_stained_glass", "minecraft:chiseled_deepslate_from_cobbled_deepslate_stonecutting", "minecraft:cake", "minecraft:gray_concrete_powder", "minecraft:stone_brick_slab_from_stone_stonecutting", "minecraft:stick", "minecraft:iron_nugget_from_smelting", "minecraft:birch_door", "minecraft:light_blue_concrete_powder", "minecraft:oak_sign", "minecraft:light_gray_concrete_powder", "minecraft:furnace", "minecraft:birch_sign", "minecraft:stone_slab", "minecraft:polished_granite_slab_from_polished_granite_stonecutting", "minecraft:oak_trapdoor", "minecraft:lime_concrete_powder", "minecraft:sandstone_wall_from_sandstone_stonecutting", "minecraft:cobbled_deepslate_wall_from_cobbled_deepslate_stonecutting", "minecraft:birch_pressure_plate", "minecraft:polished_deepslate_from_cobbled_deepslate_stonecutting", "minecraft:oak_door", "minecraft:stone_axe", "minecraft:glow_item_frame", "minecraft:deepslate", "minecraft:barrel", "minecraft:birch_button", "minecraft:stone", "minecraft:wooden_sword", "minecraft:oak_planks", "minecraft:birch_fence_gate", "minecraft:stone_brick_stairs_from_stone_stonecutting", "minecraft:iron_nugget_from_blasting", "minecraft:yellow_stained_glass", "minecraft:crossbow", "minecraft:green_stained_glass", "minecraft:light_blue_stained_glass", "minecraft:chiseled_stone_bricks_stone_from_stonecutting", "minecraft:stone_bricks", "minecraft:sandstone_slab_from_sandstone_stonecutting", "minecraft:deepslate_tile_wall_from_cobbled_deepslate_stonecutting", "minecraft:wooden_shovel", "minecraft:cobbled_deepslate_wall", "minecraft:cut_sandstone", "minecraft:cobbl'
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => terminator: b'\x00\x00'
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:Reading packet.
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => size: 4106
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => id: 271238385
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  Reading type.
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:    => value: 0
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => type: 0
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => payload: b'ed_deepslate_stairs", "minecraft:birch_stairs", "minecraft:chiseled_sandstone_from_sandstone_stonecutting", "minecraft:black_concrete_powder", "minecraft:light_gray_stained_glass", "minecraft:orange_stained_glass", "minecraft:purple_concrete_powder", "minecraft:smooth_stone", "minecraft:pink_concrete_powder", "minecraft:polished_deepslate_slab_from_cobbled_deepslate_stonecutting", "minecraft:birch_planks", "minecraft:stone_shovel", "minecraft:pink_stained_glass", "minecraft:cobblestone_stairs", "minecraft:cobblestone_wall_from_cobblestone_stonecutting", "minecraft:dark_oak_planks", "minecraft:deepslate_tiles_from_cobbled_deepslate_stonecutting", "minecraft:white_stained_glass", "minecraft:oak_button", "minecraft:spruce_boat", "minecraft:birch_boat", "minecraft:acacia_planks", "minecraft:brown_concrete_powder", "minecraft:wooden_hoe", "minecraft:cobbled_deepslate_stairs_from_cobbled_deepslate_stonecutting", "minecraft:orange_concrete_powder", "minecraft:magenta_concrete_powder", "minecraft:birch_trapdoor", "minecraft:cyan_stained_glass", "minecraft:stone_pressure_plate", "minecraft:polished_deepslate_stairs_from_cobbled_deepslate_stonecutting", "minecraft:oak_pressure_plate", "minecraft:campfire", "minecraft:sandstone_slab", "minecraft:stone_sword", "minecraft:polished_deepslate_wall_from_cobbled_deepslate_stonecutting", "minecraft:deepslate_brick_wall_from_cobbled_deepslate_stonecutting", "minecraft:packed_mud", "minecraft:cobblestone_slab", "minecraft:deepslate_tile_slab_from_cobbled_deepslate_stonecutting", "minecraft:sandstone_stairs", "minecraft:deepslate_brick_slab_from_cobbled_deepslate_stonecutting", "minecraft:oak_slab", "minecraft:lime_stained_glass", "minecraft:cut_sandstone_slab_from_sandstone_stonecutting", "minecraft:acacia_wood", "minecraft:birch_slab", "minecraft:cyan_concrete_powder", "minecraft:polished_granite_slab", "minecraft:deepslate_tile_stairs_from_cobbled_deepslate_stonecutting", "minecraft:stone_brick_walls_from_stone_stonecutting", "minecraft:stone_bricks_from_stone_stonecutting", "minecraft:oak_boat", "minecraft:cobblestone_slab_from_cobblestone_stonecutting", "minecraft:polished_deepslate", "minecraft:black_stained_glass"], isBlastingFurnaceFilteringCraftable: 0b, isSmokerGuiOpen: 0b, isFilteringCraftable: 0b, toBeDisplayed: ["minecraft:mangrove_boat", "minecraft:chest", "minecraft:gray_stained_glass", "minecraft:wooden_pickaxe", "minecraft:charcoal", "minecraft:polished_granite_stairs", "minecraft:acacia_boat", "minecraft:stone_hoe", "minecraft:jungle_boat", "minecraft:green_concrete_powder", "minecraft:lever", "minecraft:smooth_sandstone", "minecraft:oak_stairs", "minecraft:polished_granite_stairs_from_polished_granite_stonecutting", "minecraft:stone_button", "minecraft:gold_ingot_from_gold_block", "minecraft:stonecutter", "minecraft:stone_pickaxe", "minecraft:glass_pane", "minecraft:cobbled_deepslate_slab", "minecraft:cobbled_deepslate_slab_from_cobbled_deepslate_stonecutting", "minecraft:brown_stained_glass", "minecraft:wooden_axe", "minecraft:dark_oak_boat", "minecraft:dispenser", "minecraft:glass_bottle", "minecraft:deepslate_bricks_from_cobbled_deepslate_stonecutting", "minecraft:oak_fence_gate", "minecraft:stripped_oak_wood", "minecraft:purple_stained_glass", "minecraft:red_stained_glass", "minecraft:birch_fence", "minecraft:sandstone", "minecraft:yellow_concrete_powder", "minecraft:deepslate_brick_stairs_from_cobbled_deepslate_stonecutting", "minecraft:soul_campfire", "minecraft:red_concrete_powder", "minecraft:cobblestone_stairs_from_cobblestone_stonecutting", "minecraft:ladder", "minecraft:cut_sandstone_from_sandstone_stonecutting", "minecraft:glass", "minecraft:stone_stairs_from_stone_stonecutting", "minecraft:crafting_table", "minecraft:stone_stairs", "minecraft:sandstone_stairs_from_sandstone_stonecutting", "minecraft:sandstone_wall", "minecraft:blue_concrete_powder", "minecraft:cobblestone_wall", "minecraft:dark_oak_wood", "minecraft:blue_stained_glass", "minecraft:oak_fence", "minecraft:white_concrete_powder", "minecraft:stone_slab_from_stone_stonecutting", "minecraft:magenta_'
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => terminator: b'\x00\x00'
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:Reading packet.
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => size: 1701667186
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  => id: 1126181922
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:  Reading type.
DEBUG:/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py:    => value: 1953396079
Traceback (most recent call last):
  File "/mnt/bigdisk/work/mc/mciwb/rcon_test2.py", line 14, in <module>
    r = c.data.get(entity="TransformerScorn")
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/mcipc/rcon/je/commands/data.py", line 87, in get
    return self._run('get', key, value, path, scale)
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/mcipc/rcon/proxy.py", line 34, in _run
    return self._client.run(*self._args, *args)
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/mcipc/rcon/je/client.py", line 76, in run
    return check_result(super().run(command, *arguments))
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/mcipc/rcon/client.py", line 16, in run
    return super().run(*str_until_none(command, *arguments))
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/client.py", line 78, in run
    response = self.communicate(request)
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/client.py", line 50, in communicate
    while (successor := self.read()).id == response.id:
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/client.py", line 58, in read
    return Packet.read(file)
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py", line 139, in read
    type_ = Type.read(file, prefix='  ')
  File "/mnt/bigdisk/work/mc/mciwb/.venv-mciwb/lib/python3.10/site-packages/rcon/source/proto.py", line 77, in read
    return cls(value)
  File "/usr/lib/python3.10/enum.py", line 385, in __call__
    return cls.__new__(cls, value)
  File "/usr/lib/python3.10/enum.py", line 710, in __new__
    raise ve_exc
ValueError: 1953396079 is not a valid Type
gilesknap commented 2 years ago

I'm wondering if this is a 1.19.1 server issue - is there an item type mentioned in my player recipes that is not know to Item?

I'm not clear on which version of MC that mcipc supports up to?

conqp commented 2 years ago

Well, the rcon protocol should™ not have changed over the recent versions. You can find its specs at wiki.vg which I referred to when implementing the client. It looks like the server returns garbage after the last successfully read packet: size: 1701667186 is clearly bogus.

conqp commented 2 years ago

Aha, it seems like the server returns raw payload instead of a full packet with a header after the first succession packet:

>>> (1701667186).to_bytes(4, 'little') + (1126181922).to_bytes(4, 'little')
b'rame", C'

But there seems to be something cut off. If I extrapolate the end of the last payload correctly, it should say minecraft:magenta_frame, so there is at least an f missing, if not also the whole packet header. The question is why. RCON runs over TCP, so the transport layer should not be a problem.

conqp commented 2 years ago

Reading of fragmented server responses fixed in: https://github.com/conqp/rcon/commit/36a0f245e497e35d2c5a2c340a6e65b80c96210b / rcon-2.3.5

$ cat rcontest2.py

#! /usr/bin/env python

from logging import DEBUG, basicConfig
import sys

from mcipc.rcon import Client

basicConfig(level=DEBUG)

with Client(sys.argv[1], int(sys.argv[2]), passwd=sys.argv[3]) as c:
    s = c.seed
    print(f"seed is {s}")

    r = c.data.get(entity="coNQP")
    print(r, len(r))

    c.seed

Result:

DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Reading packet.
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => size: 10
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => id: 232134964
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  Reading type.
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:    => value: 2
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => type: 2
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => payload: b''
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => terminator: b'\x00\x00'
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Reading packet.
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => size: 37
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => id: 1586319964
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  Reading type.
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:    => value: 0
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => type: 0
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => payload: b'Seed: [8549242805870670357]'
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => terminator: b'\x00\x00'
seed is 8549242805870670357
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Reading packet.
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => size: 4106
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => id: 916112615
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  Reading type.
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:    => value: 0
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => type: 0
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => payload: b'coNQP has the following entity data: {Brain: {memories: {}}, HurtByTimestamp: 0, SleepTimer: 0s, Attributes: [{Base: 0.10000000149011612d, Name: "minecraft:generic.movement_speed"}, {Base: 1.0d, Name: "minecraft:generic.attack_damage"}, {Base: 0.0d, Name: "minecraft:generic.armor"}, {Base: 4.0d, Name: "minecraft:generic.attack_speed"}, {Base: 0.0d, Name: "minecraft:generic.knockback_resistance"}, {Base: 0.0d, Name: "minecraft:generic.armor_toughness"}], Invulnerable: 0b, FallFlying: 0b, PortalCooldown: 0, AbsorptionAmount: 0.0f, abilities: {invulnerable: 1b, mayfly: 1b, instabuild: 1b, walkSpeed: 0.1f, mayBuild: 1b, flying: 0b, flySpeed: 0.05f}, FallDistance: 0.0f, recipeBook: {recipes: ["minecraft:mangrove_boat", "minecraft:chest", "minecraft:gold_ingot_from_smelting_gold_ore", "minecraft:oak_chest_boat", "minecraft:acacia_chest_boat", "minecraft:acacia_boat", "minecraft:bowl", "minecraft:gold_nugget_from_smelting", "minecraft:mangrove_chest_boat", "minecraft:spruce_boat", "minecraft:jungle_boat", "minecraft:birch_boat", "minecraft:dark_oak_chest_boat", "minecraft:iron_nugget_from_blasting", "minecraft:birch_chest_boat", "minecraft:jungle_chest_boat", "minecraft:mushroom_stew", "minecraft:gold_nugget_from_blasting", "minecraft:oak_boat", "minecraft:gold_ingot_from_blasting_gold_ore", "minecraft:redstone", "minecraft:spruce_chest_boat", "minecraft:dark_oak_boat", "minecraft:iron_nugget_from_smelting"], isBlastingFurnaceFilteringCraftable: 0b, isSmokerGuiOpen: 0b, isFilteringCraftable: 0b, toBeDisplayed: ["minecraft:mangrove_boat", "minecraft:chest", "minecraft:gold_ingot_from_smelting_gold_ore", "minecraft:oak_chest_boat", "minecraft:acacia_chest_boat", "minecraft:acacia_boat", "minecraft:bowl", "minecraft:gold_nugget_from_smelting", "minecraft:mangrove_chest_boat", "minecraft:spruce_boat", "minecraft:jungle_boat", "minecraft:birch_boat", "minecraft:dark_oak_chest_boat", "minecraft:iron_nugget_from_blasting", "minecraft:birch_chest_boat", "minecraft:jungle_chest_boat", "minecraft:mushroom_stew", "minecraft:gold_nugget_from_blasting", "minecraft:oak_boat", "minecraft:gold_ingot_from_blasting_gold_ore", "minecraft:redstone", "minecraft:spruce_chest_boat", "minecraft:dark_oak_boat", "minecraft:iron_nugget_from_smelting"], isFurnaceGuiOpen: 0b, isGuiOpen: 0b, isFurnaceFilteringCraftable: 0b, isBlastingFurnaceGuiOpen: 0b, isSmokerFilteringCraftable: 0b}, DeathTime: 0s, XpSeed: -2069349136, XpTotal: 0, UUID: [I; 1125708273, -443792095, -1381435671, 1372080845], playerGameType: 1, SelectedItem: {id: "minecraft:diamond_pickaxe", Count: 1b, tag: {Damage: 0}}, seenCredits: 0b, Motion: [0.0d, -0.0784000015258789d, 0.0d], Health: 20.0f, foodSaturationLevel: 5.0f, Air: 300s, OnGround: 1b, Dimension: "minecraft:overworld", Rotation: [60.89956f, 39.33692f], XpLevel: 0, warden_spawn_tracker: {warning_level: 0, ticks_since_last_warning: 2318, cooldown_ticks: 0}, Score: 0, Pos: [96.77003327109823d, 63.0d, -45.97884389145681d], previousPlayerGameType: 0, Fire: -20s, XpP: 0.0f, EnderItems: [], DataVersion: 3120, foodLevel: 20, foodExhaustionLevel: 0.0f, HurtTime: 0s, SelectedItemSlot: 0, Inventory: [{Slot: 0b, id: "minecraft:diamond_pickaxe", Count: 1b, tag: {Damage: 0}}, {Slot: 1b, id: "minecraft:pink_shulker_box", Count: 1b}, {Slot: 2b, id: "minecraft:tropical_fish_bucket", Count: 1b}, {Slot: 3b, id: "minecraft:dropper", Count: 37b}, {Slot: 4b, id: "minecraft:trapped_chest", Count: 37b}, {Slot: 5b, id: "minecraft:redstone_lamp", Count: 10b}, {Slot: 6b, id: "minecraft:pink_shulker_box", Count: 1b, tag: {BlockEntityTag: {Items: [{Slot: 0b, id: "minecraft:bedrock", Count: 1b}, {Slot: 3b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 4b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 5b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 6b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 8b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 12b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 17b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 18b, id: "minecraft:bedrock", Count: 1b}, {Slot: 24b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 25b, id: "minecraft:go'
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => terminator: b'\x00\x00'
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Reading packet.
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => size: 4106
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => id: 916112615
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  Reading type.
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:    => value: 0
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => type: 0
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => payload: b'ld_ore", Count: 1b}, {Slot: 26b, id: "minecraft:gold_ore", Count: 1b}], id: "minecraft:shulker_box"}}}, {Slot: 7b, id: "minecraft:bedrock", Count: 2b}, {Slot: 8b, id: "minecraft:flowering_azalea_leaves", Count: 1b}, {Slot: 9b, id: "minecraft:redstone_block", Count: 1b}, {Slot: 10b, id: "minecraft:calcite", Count: 1b}, {Slot: 11b, id: "minecraft:bedrock", Count: 1b}, {Slot: 12b, id: "minecraft:bedrock", Count: 1b}, {Slot: 13b, id: "minecraft:bedrock", Count: 1b}, {Slot: 14b, id: "minecraft:bedrock", Count: 1b}, {Slot: 15b, id: "minecraft:bedrock", Count: 1b}, {Slot: 16b, id: "minecraft:bedrock", Count: 6b}, {Slot: 17b, id: "minecraft:bedrock", Count: 1b}, {Slot: 18b, id: "minecraft:bedrock", Count: 1b}, {Slot: 19b, id: "minecraft:pink_shulker_box", Count: 1b, tag: {BlockEntityTag: {Items: [{Slot: 0b, id: "minecraft:dropper", Count: 1b}, {Slot: 1b, id: "minecraft:dropper", Count: 1b}, {Slot: 2b, id: "minecraft:dropper", Count: 1b}, {Slot: 3b, id: "minecraft:dropper", Count: 1b}, {Slot: 4b, id: "minecraft:dropper", Count: 1b}, {Slot: 5b, id: "minecraft:dropper", Count: 1b}, {Slot: 6b, id: "minecraft:dropper", Count: 1b}, {Slot: 7b, id: "minecraft:dropper", Count: 1b}, {Slot: 8b, id: "minecraft:dropper", Count: 1b}, {Slot: 9b, id: "minecraft:dropper", Count: 1b}, {Slot: 10b, id: "minecraft:dropper", Count: 1b}, {Slot: 11b, id: "minecraft:dropper", Count: 1b}, {Slot: 12b, id: "minecraft:dropper", Count: 1b}, {Slot: 13b, id: "minecraft:dropper", Count: 1b}, {Slot: 14b, id: "minecraft:dropper", Count: 1b}, {Slot: 15b, id: "minecraft:dropper", Count: 1b}, {Slot: 16b, id: "minecraft:dropper", Count: 1b}, {Slot: 17b, id: "minecraft:dropper", Count: 1b}, {Slot: 18b, id: "minecraft:dropper", Count: 1b}, {Slot: 19b, id: "minecraft:dropper", Count: 1b}, {Slot: 20b, id: "minecraft:dropper", Count: 1b}, {Slot: 21b, id: "minecraft:dropper", Count: 1b}, {Slot: 22b, id: "minecraft:dropper", Count: 1b}, {Slot: 23b, id: "minecraft:dropper", Count: 1b}, {Slot: 24b, id: "minecraft:dropper", Count: 1b}, {Slot: 25b, id: "minecraft:dropper", Count: 1b}, {Slot: 26b, id: "minecraft:dropper", Count: 1b}], id: "minecraft:shulker_box"}}}, {Slot: 20b, id: "minecraft:bedrock", Count: 1b}, {Slot: 21b, id: "minecraft:bedrock", Count: 1b}, {Slot: 22b, id: "minecraft:bedrock", Count: 1b}, {Slot: 23b, id: "minecraft:pink_shulker_box", Count: 1b, tag: {BlockEntityTag: {Items: [{Slot: 0b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 1b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 2b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 3b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 4b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 5b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 6b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 7b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 8b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 9b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 10b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 11b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 12b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 13b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 14b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 15b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 16b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 17b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 18b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 19b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 20b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 21b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 22b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 23b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 24b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 25b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 26b, id: "minecraft:trapped_chest", Count: 1b}], id: "minecraft:shulker_box"}}}, {Slot: 24b, id: "minecraft:bedrock", Count: 1b}, {Slot: 25b, id: "minecraft:pink_shulker_box", Count: 1b, tag: {BlockEntityTag: {Items: [{Slot: 0b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 1b, id: "minec'
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => terminator: b'\x00\x00'
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Reading packet.
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => size: 4106
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => id: 916112615
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  Reading type.
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:    => value: 0
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => type: 0
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => payload: b'raft:gold_ore", Count: 1b}, {Slot: 2b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 3b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 4b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 5b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 6b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 7b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 8b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 9b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 10b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 11b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 12b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 13b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 14b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 15b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 16b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 17b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 18b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 19b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 20b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 21b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 22b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 23b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 24b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 25b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 26b, id: "minecraft:gold_ore", Count: 1b}], id: "minecraft:shulker_box"}}}, {Slot: 26b, id: "minecraft:flowering_azalea", Count: 1b}, {Slot: 27b, id: "minecraft:spruce_sapling", Count: 1b}, {Slot: 28b, id: "minecraft:lead", Count: 1b}, {Slot: 29b, id: "minecraft:potion", Count: 1b, tag: {Potion: "minecraft:strong_poison"}}, {Slot: 30b, id: "minecraft:bedrock", Count: 1b}, {Slot: 31b, id: "minecraft:bedrock", Count: 1b}, {Slot: 32b, id: "minecraft:bedrock", Count: 1b}, {Slot: 33b, id: "minecraft:pink_shulker_box", Count: 1b, tag: {BlockEntityTag: {Items: [{Slot: 0b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 1b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 2b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 3b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 4b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 5b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 6b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 7b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 8b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 9b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 10b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 11b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 12b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 13b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 14b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 15b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 16b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 17b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 18b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 19b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 20b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 21b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 22b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 23b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 24b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 25b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 26b, id: "minecraft:redstone_lamp", Count: 1b}], id: "minecraft:shulker_box"}}}, {Slot: 34b, id: "minecraft:pink_shulker_box", Count: 1b, tag: {BlockEntityTag: {Items: [{Slot: 0b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 1b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 2b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 3b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 4b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 5b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 6b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 7b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 8b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 9b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 10b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 11b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 12b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: '
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => terminator: b'\x00\x00'
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Reading packet.
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => size: 1259
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => id: 916112615
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  Reading type.
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:    => value: 0
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => type: 0
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => payload: b'13b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 14b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 15b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 16b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 17b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 18b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 19b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 20b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 21b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 22b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 23b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 24b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 25b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 26b, id: "minecraft:redstone_lamp", Count: 1b}], id: "minecraft:shulker_box"}}}, {Slot: 35b, id: "minecraft:jungle_chest_boat", Count: 1b}, {Slot: 100b, id: "minecraft:netherite_boots", Count: 1b, tag: {Damage: 0}}, {Slot: 101b, id: "minecraft:leather_leggings", Count: 1b, tag: {Damage: 0}}, {Slot: 102b, id: "minecraft:golden_chestplate", Count: 1b, tag: {Damage: 0}}, {Slot: 103b, id: "minecraft:chainmail_helmet", Count: 1b, tag: {Damage: 0}}, {Slot: -106b, id: "minecraft:shield", Count: 1b, tag: {Damage: 0}}], foodTickTimer: 0}'
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => terminator: b'\x00\x00'
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Reading packet.
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => size: 69
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => id: 1508862093
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  Reading type.
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:    => value: 0
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => type: 0
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => payload: b'Unknown or incomplete command, see below for error<--[HERE]'
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => terminator: b'\x00\x00'
coNQP has the following entity data: {Brain: {memories: {}}, HurtByTimestamp: 0, SleepTimer: 0s, Attributes: [{Base: 0.10000000149011612d, Name: "minecraft:generic.movement_speed"}, {Base: 1.0d, Name: "minecraft:generic.attack_damage"}, {Base: 0.0d, Name: "minecraft:generic.armor"}, {Base: 4.0d, Name: "minecraft:generic.attack_speed"}, {Base: 0.0d, Name: "minecraft:generic.knockback_resistance"}, {Base: 0.0d, Name: "minecraft:generic.armor_toughness"}], Invulnerable: 0b, FallFlying: 0b, PortalCooldown: 0, AbsorptionAmount: 0.0f, abilities: {invulnerable: 1b, mayfly: 1b, instabuild: 1b, walkSpeed: 0.1f, mayBuild: 1b, flying: 0b, flySpeed: 0.05f}, FallDistance: 0.0f, recipeBook: {recipes: ["minecraft:mangrove_boat", "minecraft:chest", "minecraft:gold_ingot_from_smelting_gold_ore", "minecraft:oak_chest_boat", "minecraft:acacia_chest_boat", "minecraft:acacia_boat", "minecraft:bowl", "minecraft:gold_nugget_from_smelting", "minecraft:mangrove_chest_boat", "minecraft:spruce_boat", "minecraft:jungle_boat", "minecraft:birch_boat", "minecraft:dark_oak_chest_boat", "minecraft:iron_nugget_from_blasting", "minecraft:birch_chest_boat", "minecraft:jungle_chest_boat", "minecraft:mushroom_stew", "minecraft:gold_nugget_from_blasting", "minecraft:oak_boat", "minecraft:gold_ingot_from_blasting_gold_ore", "minecraft:redstone", "minecraft:spruce_chest_boat", "minecraft:dark_oak_boat", "minecraft:iron_nugget_from_smelting"], isBlastingFurnaceFilteringCraftable: 0b, isSmokerGuiOpen: 0b, isFilteringCraftable: 0b, toBeDisplayed: ["minecraft:mangrove_boat", "minecraft:chest", "minecraft:gold_ingot_from_smelting_gold_ore", "minecraft:oak_chest_boat", "minecraft:acacia_chest_boat", "minecraft:acacia_boat", "minecraft:bowl", "minecraft:gold_nugget_from_smelting", "minecraft:mangrove_chest_boat", "minecraft:spruce_boat", "minecraft:jungle_boat", "minecraft:birch_boat", "minecraft:dark_oak_chest_boat", "minecraft:iron_nugget_from_blasting", "minecraft:birch_chest_boat", "minecraft:jungle_chest_boat", "minecraft:mushroom_stew", "minecraft:gold_nugget_from_blasting", "minecraft:oak_boat", "minecraft:gold_ingot_from_blasting_gold_ore", "minecraft:redstone", "minecraft:spruce_chest_boat", "minecraft:dark_oak_boat", "minecraft:iron_nugget_from_smelting"], isFurnaceGuiOpen: 0b, isGuiOpen: 0b, isFurnaceFilteringCraftable: 0b, isBlastingFurnaceGuiOpen: 0b, isSmokerFilteringCraftable: 0b}, DeathTime: 0s, XpSeed: -2069349136, XpTotal: 0, UUID: [I; 1125708273, -443792095, -1381435671, 1372080845], playerGameType: 1, SelectedItem: {id: "minecraft:diamond_pickaxe", Count: 1b, tag: {Damage: 0}}, seenCredits: 0b, Motion: [0.0d, -0.0784000015258789d, 0.0d], Health: 20.0f, foodSaturationLevel: 5.0f, Air: 300s, OnGround: 1b, Dimension: "minecraft:overworld", Rotation: [60.89956f, 39.33692f], XpLevel: 0, warden_spawn_tracker: {warning_level: 0, ticks_since_last_warning: 2318, cooldown_ticks: 0}, Score: 0, Pos: [96.77003327109823d, 63.0d, -45.97884389145681d], previousPlayerGameType: 0, Fire: -20s, XpP: 0.0f, EnderItems: [], DataVersion: 3120, foodLevel: 20, foodExhaustionLevel: 0.0f, HurtTime: 0s, SelectedItemSlot: 0, Inventory: [{Slot: 0b, id: "minecraft:diamond_pickaxe", Count: 1b, tag: {Damage: 0}}, {Slot: 1b, id: "minecraft:pink_shulker_box", Count: 1b}, {Slot: 2b, id: "minecraft:tropical_fish_bucket", Count: 1b}, {Slot: 3b, id: "minecraft:dropper", Count: 37b}, {Slot: 4b, id: "minecraft:trapped_chest", Count: 37b}, {Slot: 5b, id: "minecraft:redstone_lamp", Count: 10b}, {Slot: 6b, id: "minecraft:pink_shulker_box", Count: 1b, tag: {BlockEntityTag: {Items: [{Slot: 0b, id: "minecraft:bedrock", Count: 1b}, {Slot: 3b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 4b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 5b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 6b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 8b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 12b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 17b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 18b, id: "minecraft:bedrock", Count: 1b}, {Slot: 24b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 25b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 26b, id: "minecraft:gold_ore", Count: 1b}], id: "minecraft:shulker_box"}}}, {Slot: 7b, id: "minecraft:bedrock", Count: 2b}, {Slot: 8b, id: "minecraft:flowering_azalea_leaves", Count: 1b}, {Slot: 9b, id: "minecraft:redstone_block", Count: 1b}, {Slot: 10b, id: "minecraft:calcite", Count: 1b}, {Slot: 11b, id: "minecraft:bedrock", Count: 1b}, {Slot: 12b, id: "minecraft:bedrock", Count: 1b}, {Slot: 13b, id: "minecraft:bedrock", Count: 1b}, {Slot: 14b, id: "minecraft:bedrock", Count: 1b}, {Slot: 15b, id: "minecraft:bedrock", Count: 1b}, {Slot: 16b, id: "minecraft:bedrock", Count: 6b}, {Slot: 17b, id: "minecraft:bedrock", Count: 1b}, {Slot: 18b, id: "minecraft:bedrock", Count: 1b}, {Slot: 19b, id: "minecraft:pink_shulker_box", Count: 1b, tag: {BlockEntityTag: {Items: [{Slot: 0b, id: "minecraft:dropper", Count: 1b}, {Slot: 1b, id: "minecraft:dropper", Count: 1b}, {Slot: 2b, id: "minecraft:dropper", Count: 1b}, {Slot: 3b, id: "minecraft:dropper", Count: 1b}, {Slot: 4b, id: "minecraft:dropper", Count: 1b}, {Slot: 5b, id: "minecraft:dropper", Count: 1b}, {Slot: 6b, id: "minecraft:dropper", Count: 1b}, {Slot: 7b, id: "minecraft:dropper", Count: 1b}, {Slot: 8b, id: "minecraft:dropper", Count: 1b}, {Slot: 9b, id: "minecraft:dropper", Count: 1b}, {Slot: 10b, id: "minecraft:dropper", Count: 1b}, {Slot: 11b, id: "minecraft:dropper", Count: 1b}, {Slot: 12b, id: "minecraft:dropper", Count: 1b}, {Slot: 13b, id: "minecraft:dropper", Count: 1b}, {Slot: 14b, id: "minecraft:dropper", Count: 1b}, {Slot: 15b, id: "minecraft:dropper", Count: 1b}, {Slot: 16b, id: "minecraft:dropper", Count: 1b}, {Slot: 17b, id: "minecraft:dropper", Count: 1b}, {Slot: 18b, id: "minecraft:dropper", Count: 1b}, {Slot: 19b, id: "minecraft:dropper", Count: 1b}, {Slot: 20b, id: "minecraft:dropper", Count: 1b}, {Slot: 21b, id: "minecraft:dropper", Count: 1b}, {Slot: 22b, id: "minecraft:dropper", Count: 1b}, {Slot: 23b, id: "minecraft:dropper", Count: 1b}, {Slot: 24b, id: "minecraft:dropper", Count: 1b}, {Slot: 25b, id: "minecraft:dropper", Count: 1b}, {Slot: 26b, id: "minecraft:dropper", Count: 1b}], id: "minecraft:shulker_box"}}}, {Slot: 20b, id: "minecraft:bedrock", Count: 1b}, {Slot: 21b, id: "minecraft:bedrock", Count: 1b}, {Slot: 22b, id: "minecraft:bedrock", Count: 1b}, {Slot: 23b, id: "minecraft:pink_shulker_box", Count: 1b, tag: {BlockEntityTag: {Items: [{Slot: 0b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 1b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 2b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 3b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 4b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 5b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 6b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 7b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 8b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 9b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 10b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 11b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 12b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 13b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 14b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 15b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 16b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 17b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 18b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 19b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 20b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 21b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 22b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 23b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 24b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 25b, id: "minecraft:trapped_chest", Count: 1b}, {Slot: 26b, id: "minecraft:trapped_chest", Count: 1b}], id: "minecraft:shulker_box"}}}, {Slot: 24b, id: "minecraft:bedrock", Count: 1b}, {Slot: 25b, id: "minecraft:pink_shulker_box", Count: 1b, tag: {BlockEntityTag: {Items: [{Slot: 0b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 1b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 2b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 3b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 4b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 5b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 6b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 7b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 8b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 9b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 10b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 11b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 12b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 13b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 14b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 15b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 16b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 17b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 18b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 19b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 20b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 21b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 22b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 23b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 24b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 25b, id: "minecraft:gold_ore", Count: 1b}, {Slot: 26b, id: "minecraft:gold_ore", Count: 1b}], id: "minecraft:shulker_box"}}}, {Slot: 26b, id: "minecraft:flowering_azalea", Count: 1b}, {Slot: 27b, id: "minecraft:spruce_sapling", Count: 1b}, {Slot: 28b, id: "minecraft:lead", Count: 1b}, {Slot: 29b, id: "minecraft:potion", Count: 1b, tag: {Potion: "minecraft:strong_poison"}}, {Slot: 30b, id: "minecraft:bedrock", Count: 1b}, {Slot: 31b, id: "minecraft:bedrock", Count: 1b}, {Slot: 32b, id: "minecraft:bedrock", Count: 1b}, {Slot: 33b, id: "minecraft:pink_shulker_box", Count: 1b, tag: {BlockEntityTag: {Items: [{Slot: 0b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 1b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 2b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 3b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 4b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 5b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 6b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 7b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 8b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 9b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 10b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 11b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 12b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 13b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 14b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 15b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 16b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 17b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 18b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 19b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 20b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 21b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 22b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 23b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 24b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 25b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 26b, id: "minecraft:redstone_lamp", Count: 1b}], id: "minecraft:shulker_box"}}}, {Slot: 34b, id: "minecraft:pink_shulker_box", Count: 1b, tag: {BlockEntityTag: {Items: [{Slot: 0b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 1b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 2b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 3b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 4b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 5b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 6b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 7b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 8b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 9b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 10b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 11b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 12b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 13b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 14b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 15b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 16b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 17b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 18b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 19b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 20b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 21b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 22b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 23b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 24b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 25b, id: "minecraft:redstone_lamp", Count: 1b}, {Slot: 26b, id: "minecraft:redstone_lamp", Count: 1b}], id: "minecraft:shulker_box"}}}, {Slot: 35b, id: "minecraft:jungle_chest_boat", Count: 1b}, {Slot: 100b, id: "minecraft:netherite_boots", Count: 1b, tag: {Damage: 0}}, {Slot: 101b, id: "minecraft:leather_leggings", Count: 1b, tag: {Damage: 0}}, {Slot: 102b, id: "minecraft:golden_chestplate", Count: 1b, tag: {Damage: 0}}, {Slot: 103b, id: "minecraft:chainmail_helmet", Count: 1b, tag: {Damage: 0}}, {Slot: -106b, id: "minecraft:shield", Count: 1b, tag: {Damage: 0}}], foodTickTimer: 0} 13537
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:Reading packet.
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => size: 37
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => id: 2079204735
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  Reading type.
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:    => value: 0
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => type: 0
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => payload: b'Seed: [8549242805870670357]'
DEBUG:/usr/lib/python3.10/site-packages/rcon/source/proto.py:  => terminator: b'\x00\x00'
gilesknap commented 2 years ago

@conqp awesome, thanks. That works for me.