diff --git a/LttPClient.py b/LttPClient.py index 73227e58..d499afc3 100644 --- a/LttPClient.py +++ b/LttPClient.py @@ -830,8 +830,7 @@ async def game_watcher(ctx: Context): else: ctx.tags -= {"DeathLink"} if old_tags != ctx.tags and ctx.server and not ctx.server.socket.closed: - snes_logger.info("Forcing reconnect to set DeathLink state.") - await ctx.disconnect() # set correct tags + await ctx.send_msgs([{"cmd": "ConnectUpdate", "tags": ctx.tags}]) if not ctx.prev_rom or ctx.prev_rom != ctx.rom: ctx.locations_checked = set() ctx.locations_scouted = set() diff --git a/MultiServer.py b/MultiServer.py index 94c2d829..8f2c3936 100644 --- a/MultiServer.py +++ b/MultiServer.py @@ -1258,7 +1258,15 @@ async def process_client_cmd(ctx: Context, client: Client, args: dict): await ctx.send_msgs(client, [{"cmd": "DataPackage", "data": network_data_package}]) elif client.auth: - if cmd == 'Sync': + if cmd == "ConnectUpdate": + if not args: + await ctx.send_msgs(client, [{'cmd': 'InvalidPacket', "type": "arguments", 'text': cmd}]) + return + + if "tags" in args: + client.tags = args["tags"] + + elif cmd == 'Sync': items = get_received_items(ctx, client.team, client.slot) if items: client.send_index = len(items)