ContentFeatures: change number of special tiles to 6 (CF_SPECIAL_COUNT)
PROTOCOL_VERSION 25:
Rename TOCLIENT_ACCESS_DENIED to TOCLIENT_ACCESS_DENIED_LEGAGY
- Rename TOCLIENT_DELETE_PARTICLESPAWNER to TOCLIENT_DELETE_PARTICLESPAWNER_LEGACY
+ Rename TOCLIENT_DELETE_PARTICLESPAWNER to
+ TOCLIENT_DELETE_PARTICLESPAWNER_LEGACY
Rename TOSERVER_PASSWORD to TOSERVER_PASSWORD_LEGACY
Rename TOSERVER_INIT to TOSERVER_INIT_LEGACY
+ Rename TOCLIENT_INIT to TOCLIENT_INIT_LEGACY
Add TOCLIENT_ACCESS_DENIED new opcode (0x0A), using error codes
for standard error, keeping customisation possible. This
permit translation
Add TOCLIENT_DELETE_PARTICLESPAWNER (0x53), fixing the u16 read and
reading u32
+ Add TOSERVER_INIT new opcode (0x02) for client presentation to server
+ Add TOSERVER_AUTH new opcode (0x03) for client authentication
+ Add TOCLIENT_HELLO for presenting server to client after client
+ presentation
+ Add TOCLIENT_AUTH_ACCEPT to accept connexion from client
*/
#define LATEST_PROTOCOL_VERSION 24
enum ToClientCommand
{
+ TOCLIENT_HELLO = 0x02,
+ TOCLIENT_AUTH_ACCEPT = 0x03,
TOCLIENT_ACCESS_DENIED = 0x0A,
/*
u16 command
wstring reason
*/
- TOCLIENT_INIT = 0x10,
+ TOCLIENT_INIT_LEGACY = 0x10,
/*
Server's reply to TOSERVER_INIT.
Sent second after connected.
enum ToServerCommand
{
- TOSERVER_INIT = 0x0F,
+ TOSERVER_INIT = 0x02,
/*
Sent first after connected.
[0] u16 TOSERVER_INIT
[2] u8 SER_FMT_VER_HIGHEST_READ
[3] u8 compression_modes
- [4] std::string player_name
- [4+*] std::string password (new in some version)
- [4+*+*] u16 minimum supported network protocol version (added sometime)
- [4+*+*+2] u16 maximum supported network protocol version (added later than the previous one)
+ */
+
+ TOSERVER_AUTH = 0x03,
+ /*
+ Sent first after presentation (INIT).
+ [0] std::string player_name
+ [0+*] std::string password (new in some version)
+ [0+*+*] u16 minimum supported network protocol version (added sometime)
+ [0+*+*+2] u16 maximum supported network protocol version (added later than the previous one)
*/
TOSERVER_INIT_LEGACY = 0x10,
/*
Sent first after connected.
- [0] u16 TOSERVER_INIT
+ [0] u16 TOSERVER_INIT_LEGACY
[2] u8 SER_FMT_VER_HIGHEST_READ
[3] u8[20] player_name
[23] u8[28] password (new in some version)
};
enum AccessDeniedCode {
- SERVER_ACCESSDENIED_WRONG_PASSWORD = 0,
- SERVER_ACCESSDENIED_UNEXPECTED_DATA = 1,
- SERVER_ACCESSDENIED_SINGLEPLAYER = 2,
- SERVER_ACCESSDENIED_WRONG_VERSION = 3,
- SERVER_ACCESSDENIED_WRONG_CHARS_IN_NAME = 4,
- SERVER_ACCESSDENIED_WRONG_NAME = 5,
- SERVER_ACCESSDENIED_TOO_MANY_USERS = 6,
- SERVER_ACCESSDENIED_EMPTY_PASSWORD = 7,
- SERVER_ACCESSDENIED_ALREADY_CONNECTED = 8,
- SERVER_ACCESSDENIED_CUSTOM_STRING = 9,
- SERVER_ACCESSDENIED_MAX = 10,
+ SERVER_ACCESSDENIED_WRONG_PASSWORD,
+ SERVER_ACCESSDENIED_UNEXPECTED_DATA,
+ SERVER_ACCESSDENIED_SINGLEPLAYER,
+ SERVER_ACCESSDENIED_WRONG_VERSION,
+ SERVER_ACCESSDENIED_WRONG_CHARS_IN_NAME,
+ SERVER_ACCESSDENIED_WRONG_NAME,
+ SERVER_ACCESSDENIED_TOO_MANY_USERS,
+ SERVER_ACCESSDENIED_EMPTY_PASSWORD,
+ SERVER_ACCESSDENIED_ALREADY_CONNECTED,
+ SERVER_ACCESSDENIED_SERVER_FAIL,
+ SERVER_ACCESSDENIED_CUSTOM_STRING,
+ SERVER_ACCESSDENIED_MAX,
};
enum NetProtoCompressionMode {
NETPROTO_COMPRESSION_ZLIB = 0,
};
-const static std::wstring accessDeniedStrings[SERVER_ACCESSDENIED_MAX] = {
- L"Invalid password",
- L"Your client sent something server didn't expect. Try reconnecting or updating your client",
- L"The server is running in simple singleplayer mode. You cannot connect.",
- L"Your client's version is not supported.\nPlease contact server administrator.",
- L"Name contains unallowed characters",
- L"Name is not allowed",
- L"Too many users.",
- L"Empty passwords are disallowed. Set a password and try again.",
- L"Another client is connected with this name. If your client closed unexpectedly, try again in a minute.",
- L"",
+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",
+ "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.",
+ "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 authention failed. This is likely a server error."
+ "",
};
#endif