PROTOCOL_VERSION 3:
Base for writing changes here
PROTOCOL_VERSION 4:
- Add TOCLIENT_TOOLDEF
Add TOCLIENT_TEXTURES
+ Add TOCLIENT_TOOLDEF
Add TOCLIENT_NODEDEF
+ Add TOCLIENT_CRAFTITEMDEF
+ Add TOSERVER_INTERACT
+ Obsolete TOSERVER_CLICK_ACTIVEOBJECT
+ Obsolete TOSERVER_GROUND_ACTION
+ PROTOCOL_VERSION 5:
+ Make players to be handled mostly as ActiveObjects
+ PROTOCOL_VERSION 6:
+ Only non-cached textures are sent
+ PROTOCOL_VERSION 7:
+ Add TOCLIENT_ITEMDEF
+ Obsolete TOCLIENT_TOOLDEF
+ Obsolete TOCLIENT_CRAFTITEMDEF
+ Compress the contents of TOCLIENT_ITEMDEF and TOCLIENT_NODEDEF
*/
-#define PROTOCOL_VERSION 4
+#define PROTOCOL_VERSION 7
#define PROTOCOL_ID 0x4f457403
#define PASSWORD_SIZE 28 // Maximum password length. Allows for
// base64-encoded SHA-1 (27+\0).
+#define TEXTURENAME_ALLOWED_CHARS "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_."
+
enum ToClientCommand
{
TOCLIENT_INIT = 0x10,
[N+2+12+12+4] s32 yaw*100
*/
- TOCLIENT_PLAYERINFO = 0x24,
+ TOCLIENT_PLAYERINFO = 0x24, // Obsolete
/*
[0] u16 command
// Followed by an arbitary number of these:
[2] serialized inventory
*/
- TOCLIENT_OBJECTDATA = 0x28,
+ TOCLIENT_OBJECTDATA = 0x28, // Obsolete
/*
Sent as unreliable.
v3f1000 camera point target (to point the death cause or whatever)
*/
- TOCLIENT_TOOLDEF = 0x38,
+ TOCLIENT_TEXTURES = 0x38,
/*
u16 command
- u32 length of the next item
- serialized ToolDefManager
- */
-
- TOCLIENT_TEXTURES = 0x39,
- /*
- u16 command
- u32 number of textures
+ u16 total number of texture bunches
+ u16 index of this bunch
+ u32 number of textures in this bunch
for each texture {
u16 length of name
string name
}
*/
+ TOCLIENT_TOOLDEF = 0x39,
+ /*
+ u16 command
+ u32 length of the next item
+ serialized ToolDefManager
+ */
+
TOCLIENT_NODEDEF = 0x3a,
/*
u16 command
serialized NodeDefManager
*/
- //TOCLIENT_CONTENT_SENDING_MODE = 0x38,
+ TOCLIENT_CRAFTITEMDEF = 0x3b,
/*
u16 command
- u8 mode (0 = off, 1 = on)
+ u32 length of the next item
+ serialized CraftiItemDefManager
*/
+
+ TOCLIENT_ANNOUNCE_TEXTURES = 0x3c,
+
+ /*
+ u16 command
+ u32 number of textures
+ for each texture {
+ u16 length of name
+ string name
+ u16 length of sha1_digest
+ string sha1_digest
+ }
+ */
+
+ TOCLIENT_ITEMDEF = 0x3d,
+ /*
+ u16 command
+ u32 length of next item
+ serialized ItemDefManager
+ */
+
};
enum ToServerCommand
[8] u16 i
*/
- TOSERVER_CLICK_OBJECT = 0x27,
+ TOSERVER_CLICK_OBJECT = 0x27, // Obsolete
/*
length: 13
[0] u16 command
[11] u16 item
*/
- TOSERVER_GROUND_ACTION = 0x28,
+ TOSERVER_GROUND_ACTION = 0x28, // Obsolete
/*
length: 17
[0] u16 command
// (oops, there is some gap here)
- TOSERVER_SIGNTEXT = 0x30, // Old signs
+ TOSERVER_SIGNTEXT = 0x30, // Old signs, obsolete
/*
u16 command
v3s16 blockpos
textdata
*/
- TOSERVER_CLICK_ACTIVEOBJECT = 0x34,
+ TOSERVER_CLICK_ACTIVEOBJECT = 0x34, // Obsolete
/*
length: 7
[0] u16 command
/*
u16 TOSERVER_RESPAWN
*/
+
+ TOSERVER_INTERACT = 0x39,
+ /*
+ [0] u16 command
+ [2] u8 action
+ [3] u16 item
+ [5] u32 length of the next item
+ [9] serialized PointedThing
+ actions:
+ 0: start digging (from undersurface) or use
+ 1: stop digging (all parameters ignored)
+ 2: digging completed
+ 3: place block or item (to abovesurface)
+ 4: use item
+
+ (Obsoletes TOSERVER_GROUND_ACTION and TOSERVER_CLICK_ACTIVEOBJECT.)
+ */
+
+ TOSERVER_REQUEST_TEXTURES = 0x40,
+
+ /*
+ u16 command
+ u16 number of textures requested
+ for each texture {
+ u16 length of name
+ string name
+ }
+ */
+
};
inline SharedBuffer<u8> makePacket_TOCLIENT_TIME_OF_DAY(u16 time)