PROTOCOL_VERSION 14:
Added transfer of player pressed keys to the server
Added new messages for mesh and bone animation, as well as attachments
- GENERIC_CMD_SET_ANIMATION
- GENERIC_CMD_SET_BONE_POSITION
+ AO_CMD_SET_ANIMATION
+ AO_CMD_SET_BONE_POSITION
GENERIC_CMD_SET_ATTACHMENT
PROTOCOL_VERSION 15:
Serialization format changes
damageGroups added to ToolCapabilities
sound_place added to ItemDefinition
PROTOCOL_VERSION 19:
- GENERIC_CMD_SET_PHYSICS_OVERRIDE
+ AO_CMD_SET_PHYSICS_OVERRIDE
PROTOCOL_VERSION 20:
TOCLIENT_HUDADD
TOCLIENT_HUDRM
Add TOCLIENT_HELLO for presenting server to client after client
presentation
Add TOCLIENT_AUTH_ACCEPT to accept connection from client
- Rename GENERIC_CMD_SET_ATTACHMENT to GENERIC_CMD_ATTACH_TO
+ Rename GENERIC_CMD_SET_ATTACHMENT to AO_CMD_ATTACH_TO
PROTOCOL_VERSION 26:
Add TileDef tileable_horizontal, tileable_vertical flags
PROTOCOL_VERSION 27:
Incremental inventory sending mode
Unknown inventory serialization fields no longer throw an error
Mod-specific formspec version
+ Player FOV override API
+ "ephemeral" added to TOCLIENT_PLAY_SOUND
+ PROTOCOL VERSION 39:
+ Updated set_sky packet
+ Adds new sun, moon and stars packets
+ Minimap modes
+ PROTOCOL VERSION 40:
+ TOCLIENT_MEDIA_PUSH changed, TOSERVER_HAVE_MEDIA added
*/
-#define LATEST_PROTOCOL_VERSION 38
+#define LATEST_PROTOCOL_VERSION 40
#define LATEST_PROTOCOL_VERSION_STRING TOSTRING(LATEST_PROTOCOL_VERSION)
// Server's supported network protocol range
#define PASSWORD_SIZE 28 // Maximum password length. Allows for
// base64-encoded SHA-1 (27+\0).
-/*
- Changes by FORMSPEC_API_VERSION:
-
- FORMSPEC VERSION 1:
- (too much)
- FORMSPEC VERSION 2:
- Forced real coordinates
- background[]: 9-slice scaling parameters
-*/
-#define FORMSPEC_API_VERSION 2
-#define FORMSPEC_VERSION_STRING "formspec_version[" TOSTRING(FORMSPEC_API_VERSION) "]"
+// See also: Formspec Version History in doc/lua_api.txt
+#define FORMSPEC_API_VERSION 5
#define TEXTURENAME_ALLOWED_CHARS "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_.-"
v3f added_vel
*/
+ TOCLIENT_MEDIA_PUSH = 0x2C,
+ /*
+ std::string raw_hash
+ std::string filename
+ u32 callback_token
+ bool should_be_cached
+ */
+
// (oops, there is some gap here)
TOCLIENT_CHAT_MESSAGE = 0x2F,
wstring reason
*/
- TOCLIENT_PLAYERITEM = 0x36, // Obsolete
+ TOCLIENT_FOV = 0x36,
+ /*
+ Sends an FOV override/multiplier to client.
+
+ f32 fov
+ bool is_multiplier
+ f32 transition_time
+ */
TOCLIENT_DEATHSCREEN = 0x37,
/*
s32[3] pos_nodes*10000
u16 object_id
u8 loop (bool)
+ u8 ephemeral (bool)
*/
TOCLIENT_STOP_SOUND = 0x40,
u32 id
u8 type
v2f1000 pos
- u32 len
+ u16 len
u8[len] name
v2f1000 scale
- u32 len2
+ u16 len2
u8[len2] text
u32 number
u32 item
v2f1000 offset
v3f1000 world_pos
v2s32 size
+ s16 z_index
+ u16 len3
+ u8[len3] text2
*/
TOCLIENT_HUDRM = 0x4a,
TOCLIENT_SET_SKY = 0x4f,
/*
- u8[4] color (ARGB)
+ Protocol 38:
+ u8[4] base_color (ARGB)
u8 len
u8[len] type
u16 count
u8 len
u8[len] param
u8 clouds (boolean)
+
+ Protocol 39:
+ u8[4] bgcolor (ARGB)
+ std::string type
+ int texture_count
+ std::string[6] param
+ bool clouds
+ bool bgcolor_fog
+ u8[4] day_sky (ARGB)
+ u8[4] day_horizon (ARGB)
+ u8[4] dawn_sky (ARGB)
+ u8[4] dawn_horizon (ARGB)
+ u8[4] night_sky (ARGB)
+ u8[4] night_horizon (ARGB)
+ u8[4] indoors (ARGB)
+ u8[4] fog_sun_tint (ARGB)
+ u8[4] fog_moon_tint (ARGB)
+ std::string fog_tint_type
*/
TOCLIENT_OVERRIDE_DAY_NIGHT_RATIO = 0x50,
serialized and compressed node metadata
*/
+ TOCLIENT_SET_SUN = 0x5a,
+ /*
+ bool visible
+ std::string texture
+ std::string tonemap
+ std::string sunrise
+ f32 scale
+ */
+
+ TOCLIENT_SET_MOON = 0x5b,
+ /*
+ bool visible
+ std::string texture
+ std::string tonemap
+ f32 scale
+ */
+
+ TOCLIENT_SET_STARS = 0x5c,
+ /*
+ bool visible
+ u32 count
+ u8[4] starcolor (ARGB)
+ f32 scale
+ */
+
TOCLIENT_SRP_BYTES_S_B = 0x60,
/*
Belonging to AUTH_MECHANISM_SRP.
u8[len] formspec
*/
- TOCLIENT_NUM_MSG_TYPES = 0x62,
+ TOCLIENT_MINIMAP_MODES = 0x62,
+ /*
+ u16 count // modes
+ u16 mode // wanted current mode index after change
+ for each mode
+ u16 type
+ std::string label
+ u16 size
+ std::string extra
+ */
+
+ TOCLIENT_SET_LIGHTING = 0x63,
+ /*
+ f32 shadow_intensity
+ */
+
+ TOCLIENT_NUM_MSG_TYPES = 0x64,
};
enum ToServerCommand
}
*/
- TOSERVER_RECEIVED_MEDIA = 0x41, // Obsolete
+ TOSERVER_HAVE_MEDIA = 0x41,
+ /*
+ u8 number of callback tokens
+ for each:
+ u32 token
+ */
+
TOSERVER_BREATH = 0x42, // Obsolete
TOSERVER_CLIENT_READY = 0x43,
AUTH_MECHANISM_FIRST_SRP = 1 << 2,
};
-enum AccessDeniedCode {
+enum AccessDeniedCode : u8 {
SERVER_ACCESSDENIED_WRONG_PASSWORD,
SERVER_ACCESSDENIED_UNEXPECTED_DATA,
SERVER_ACCESSDENIED_SINGLEPLAYER,
const static std::string accessDeniedStrings[SERVER_ACCESSDENIED_MAX] = {
"Invalid password",
- "Your client sent something the server didn't expect. Try reconnecting or updating your client",
+ "Your client sent something the server didn't expect. Try reconnecting or updating your client.",
"The server is running in simple singleplayer mode. You cannot connect.",
- "Your client's version is not supported.\nPlease contact server administrator.",
- "Player name contains disallowed characters.",
- "Player name not allowed.",
- "Too many users.",
+ "Your client's version is not supported.\nPlease contact the server administrator.",
+ "Player name contains disallowed characters",
+ "Player name not allowed",
+ "Too many users",
"Empty passwords are disallowed. Set a password and try again.",
"Another client is connected with this name. If your client closed unexpectedly, try again in a minute.",
- "Server authentication failed. This is likely a server error.",
+ "Internal server error",
"",
- "Server shutting down.",
- "This server has experienced an internal error. You will now be disconnected."
+ "Server shutting down",
+ "The server has experienced an internal error. You will now be disconnected."
};
-enum PlayerListModifer: u8
+enum PlayerListModifer : u8
{
PLAYER_LIST_INIT,
PLAYER_LIST_ADD,