diff --git a/MultiServer.py b/MultiServer.py index 50d250f1..d966d9ab 100644 --- a/MultiServer.py +++ b/MultiServer.py @@ -1292,7 +1292,12 @@ async def process_client_cmd(ctx: Context, client: Client, args: dict): return if "tags" in args: + old_tags = client.tags client.tags = args["tags"] + if set(old_tags) != set(client.tags): + ctx.notify_all( + f"{ctx.get_aliased_name(client.team, client.slot)} (Team #{client.team + 1}) has changed tags " + f"from {old_tags} to {client.tags}.") elif cmd == 'Sync': items = get_received_items(ctx, client.team, client.slot) diff --git a/docs/network protocol.md b/docs/network protocol.md index 985f9808..61fa6e9c 100644 --- a/docs/network protocol.md +++ b/docs/network protocol.md @@ -213,6 +213,14 @@ Sent by the client to initiate a connection to an Archipelago game session. #### Authentication Many, if not all, other packets require a successfully authenticated client. This is described in more detail in [Archipelago Connection Handshake](#Archipelago-Connection-Handshake). +### ConnectUpdate +Update arguments from the Connect package, currently only updating tags is supported. + +#### Arguments +| Name | Type | Notes | +| ---- | ---- | ----- | +| tags | list\[str\] | Denotes special features or capabilities that the sender is capable of. [Tags](#Tags) | + ### Sync Sent to server to request a [ReceivedItems](#ReceivedItems) packet to synchronize items. #### Arguments