Kind request · Area Game.Chat
A COMPLETE STATE ASSERTION, NOT A DELTA. The client enumerates every channel it can map and puts each one into exactly one of the two lists. A channel you leave out of both is not "unchanged" as far as the real client's traffic shape is concerned - it simply never happens.
So: build both lists from your full channel model, every time. Sending a one-element subscribe list is a shape the real client does not produce.
subscribe is what you want on, unsubscribe what you want off, and together they partition the mappable channels. The roles are read from the writer's own branch polarity, not from field order.
The reference build had a singular subscribe-one-channel request instead; the batch form replaced it before the earliest dumped 3.x build, so there is no unobfuscated declaration for this one.
When you may send it
Requires character_loaded observed Raised by: the channel set changing; the writer always walks every mappable channel, so there is no incremental form proven Related messages
Reply not yet recovered: the server re-states the resulting subscriptions through ChannelUpdateEvent and ChatChannelsEnabledEvent; whether both arrive depends on what actually changed, so react to what comes rather than waiting. Fields
#FieldTypeMeaningYou set it 1subscriberepeated ChannelThe channels the character wants to be on.
Element type Channel.
Name ours: beta has no such message and GameMapping names types only.required 2unsubscriberepeated ChannelThe channels the character wants off.
Element type Channel. Together with subscribe this is a complete partition.
Name ours: beta has no such message and GameMapping names types only.required
- summary: Asserts the complete set of chat channels the character is on, as a subscribe list and an unsubscribe list.
- area: Game.Chat
- 71 vues