BNETDocs
C>S 0x0C SID_JOINCHANNEL
Message Id:0x0C
Message Name:SID_JOINCHANNEL
Direction:Client to Server
Used By:Diablo II, Diablo II Lord of Destruction
Diablo Retail, Diablo Shareware
Starcraft Japanese, Starcraft Broodwar
Starcraft Shareware, Starcraft Original
Warcraft II BNE, Warcraft III The Frozen Throne
Warcraft III Reign of Chaos
Format:

(UINT32) Flags
(STRING) Channel 

Remarks

Joins a channel after entering chat.

The Channel name must be no greater than 31 characters, otherwise it becomes trimmed by Battle.net.

The flags field may contain the following values:

  • 0x00: NoCreate join
  • 0x01: First join
  • 0x02: Forced join
  • 0x05: D2 first join

NoCreate Join:

This will only join the channel specified if it is not empty, and is used by clients when selecting a channel from the channels menu. If the channel is empty, Battle.net sends a SID_CHATEVENT of type EID_CHANNELDOESNOTEXIST, upon which official clients prompt for confirmation that the user wishes to create the channel, in which case, it resends this packet with Flags set to Forced Join (0x02).

First Join:

Places user in a channel starting with their product and country, followed by a number, ie 'Brood War GBR-1'. Also automatically sends MOTD after entering the channel. When using this type, the Channel variable has no effect, but must be present anyway to avoid an IP ban. This is sent when first logging onto Battle.net

Forced Join:

This is sent when leaving a game, and joins the specified channel without an supplying an MOTD.

D2 First Join:

The same as First join, but is used for D2DV/D2XP clients.
| Edited: LordVader
Comments
Caaaaarrrrlll

If you send any flags except those above, you will not get any chat events back for it (meaning you did not join the channel).

If you send first join or forced join with the channel being the one you are in currently, Battle.net will make you join the channel you were in last. If you were not in a channel last, you will join The Void.

joe[x86]

As of March 2018, WarCraft III sends flags 1 and "W3" as the channel name.

0000024A ff 0c 0b 00 01 00 00 00 57 33 00 ........ W3.

Typing /join in chat sends 0x0E SID_CHATCOMMAND rather than using SID_JOINCHANNEL.

00000269 ff 0e 13 00 2f 6a 6f 69 6e 20 63 6c 61 6e 20 62 ..../joi n clan b 00000279 6f 74 00 ot.

D2DV was seen using flags 1 for first join, while D2XP was seen using flags 5, both with the string "Diablo II".

000008F1 ff 0c 12 00 01 00 00 00 44 69 61 62 6c 6f 20 49 ........ Diablo I 00000901 49 00 000008DD ff 0c 12 00 05 00 00 00 44 69 61 62 6c 6f 20 49 ........ Diablo I 000008ED 49 00 I.