Classic Protocol Extension/History

19 November 2017

 * Clarified when whitespace should be trimmed or preserved when handling LongerMessages:

13 November 2017

 * Added three missing models to the ChangeModel table.

21 June 2017‎

 * Added finalized version of EnvMapAspect extension, deprecated EnvMapAppearance version 2.
 * Added finalized version of EntityProperty extension.
 * Added finalized version of ExtEntityPositions extension.

9 May 2016‎

 * Added finalized version 2 of EnvMapAppearance extension, deprecated version 1.
 * Added finalized version 2 of BlockDefinitionsExt extension, deprecated version 1.

19 March 2016‎

 * Added finalized version of BulkBlockUpdate extension.

8 February 2016

 * Added finalized version of TextColors extension.

10 January 2016

 * Added finalized version of BlockDefinitions and BlockDefinitionsExt extension.

11 December 2015

 * Added finalized version of LongerMessages and FullCP437 extension.

31 October 2014

 * Clarified interaction between ExtPlayerList and ChangeModel.

28 October 2014

 * Added finalized version of PlayerClick extension.

6 October 2014

 * Finalized version 2 of ExtPlayerList extension and moved obsoleted version 1 to a separate subpage.

28 August 2014

 * Added a draft of version 2 of ExtPlayerList extension.

18 July 2014

 * SetBlockPermissions packet: Values for AllowPlacement and AllowDeletion that are our-of-range (neither 0 nor 1) now mean "allow." Previously the meaning was undefined.

6 April 2014

 * Removed the TopLeft MessageType and updated the screenshot.

5 April 2014

 * Corrected hexadecimal packet IDs for MakeSelection, RemoveSelection, and SetBlockPermission. Decimal IDs (26-28) were correct all along, bug hex IDs were incorrect.

28 February 2014

 * Small addition stating the use of the EntityID byte of ChangeModel having to do with the players own model.

19 December 2013

 * Added several more MessageType codes, and added a screenshot to show them in action.

16 December 2013

 * Added HackControl and MessageType extension proposals.

8 December 2013

 * Clarified extension names vs packet names.

6 November 2013

 * Corrected listed size of MakeSelection and HoldThis packets.

5 November 2013

 * Restricted SideBlock and EdgeBlock fields of EnvMapAppearance packet to solid blocks.

31 October 2013

 * Restricted the timeframe when EnvMapAppearance packet may be sent. It is now only allowed at the end of a level transition (between the last LevelDataChunk packet and the LevelFinalize packet).
 * Added EnvWeatherType packet and extension.
 * Clarified Negotiation section.

27 October 2013

 * Clarified introduction text.

9 October 2013

 * Added a note to CustomBlocks about future block ID assignment.

30 September 2013

 * Added a note to Negotiation about making assumptions based on AppName

29 September 2013

 * Added ability to reset ALL block type permissions using SetBlockPermission packet with BlockType set to.
 * Finished detailed EnvMapAppearance specification.
 * Finished detailed SelectionCuboid specification.
 * Formatting fixes.

25 September 2013

 * Added details about value ranges for EnvSetColor packet's fields. Added ability to reset colors to defaults by specifying an out-of-range value.

11 September 2013

 * Added a picture of CustomBlocks level 1.

3 September 2013

 * Corrected packet sizes for EnvSetColor and ChangeModel packets.
 * Changed EnvSetColor and MakeSelection packets to use  instead of   data types.

2 September 2013

 * Filled in details for ChangeModel extension.
 * Added EnvMapAppearance extension.

1 September 2013

 * Changed SpiderWeb block type to Rope in CustomBlocks level 1.

30 August 2013

 * Rewrote ExtPlayerList spec, for clarity.
 * Changed TextHotKey to use LWJGL keycodes instead of SDL keycodes.

29 August 2013

 * Added BlockPermissions extension.