Plugin channels
Plugin channels are implemented using packet 0xFA, allowing client mods and server plugins to communicate without cluttering up chat. This post by Dinnerbone is a good introduction and basic documentation.
Contents
Reserved channels
REGISTER
Two-way
Allows the client to register for one or more custom channels, indicating that the server should send data on those channels if the appropriate plugin is installed. Payload is a null (\00) separated list of strings.
UNREGISTER
Two-way
Allows the client to unregister from one or more custom channels, indicating that the server should stop sending data on those channels. Payload is a null-separated list of strings.
Channels internal to Minecraft
As of 1.3, Minecraft itself started using plugin channels to implement new features. These internal channel names are prefixed by MC|
. They are not formally registered using the REGISTER channel. The vanilla Minecraft server will send these packets regardless, and the vanilla client will accept them.
MC|BEdit
Client to server
When a player edits an unsigned book.
This payload is simply a set of bytes corresponding to an ItemStack. It is serialized / deserialized exactly the same as itemstacks in packets.
MC|BSign
Client to server
When a player signs a book. This payload is simply a set of bytes corresponding to an ItemStack. It is serialized / deserialized exactly the same as itemstacks in packets.
MC|TPack
Server to client
Remote texture packs. This contains a string representing the url to get the texture pack from, followed by null (\00) and then '16', all in ASCII.
MC|TrList
Server to client
The list of trades a villager NPC is offering.
MC|Beacon
Client to server
To integers corresponding to the 2 effects a user wishes to have active
MC|TrSel
Client to server
Notable community plugin channels
Channels listed in this section are not Mojang-sanctioned. This is just a likely-incomplete list of channels used by mods/plugins popular within the Minecraft community.
ML|OpenTE
Server to client
Used by ModLoader to support custom GUI windows. Does not use the REGISTER channel.
WECUI
Two-way
Used by the server-side WorldEdit and the client-side WorldEditCUI to coordinate selections.