import "serverinfo_user.proto"; message SessionCommand { enum SessionCommandType { PING = 1000; LOGIN = 1001; MESSAGE = 1002; LIST_USERS = 1003; GET_GAMES_OF_USER = 1004; GET_USER_INFO = 1005; ADD_TO_LIST = 1006; REMOVE_FROM_LIST = 1007; DECK_LIST = 1008; DECK_NEW_DIR = 1009; DECK_DEL_DIR = 1010; DECK_DEL = 1011; DECK_DOWNLOAD = 1012; DECK_UPLOAD = 1013; LIST_ROOMS = 1014; JOIN_ROOM = 1015; REGISTER = 1016; ACTIVATE = 1017; REPLAY_LIST = 1100; REPLAY_DOWNLOAD = 1101; REPLAY_MODIFY_MATCH = 1102; REPLAY_DELETE_MATCH = 1103; } extensions 100 to max; } message Command_Ping { extend SessionCommand { optional Command_Ping ext = 1000; } } message Command_Login { extend SessionCommand { optional Command_Login ext = 1001; } optional string user_name = 1; optional string password = 2; } message Command_Message { extend SessionCommand { optional Command_Message ext = 1002; } optional string user_name = 1; optional string message = 2; } message Command_ListUsers { extend SessionCommand { optional Command_ListUsers ext = 1003; } } message Command_GetGamesOfUser { extend SessionCommand { optional Command_GetGamesOfUser ext = 1004; } optional string user_name = 1; } message Command_GetUserInfo { extend SessionCommand { optional Command_GetUserInfo ext = 1005; } optional string user_name = 1; } message Command_AddToList { extend SessionCommand { optional Command_AddToList ext = 1006; } optional string list = 1; optional string user_name = 2; } message Command_RemoveFromList { extend SessionCommand { optional Command_RemoveFromList ext = 1007; } optional string list = 1; optional string user_name = 2; } message Command_ListRooms { extend SessionCommand { optional Command_ListRooms ext = 1014; } } message Command_JoinRoom { extend SessionCommand { optional Command_JoinRoom ext = 1015; } optional uint32 room_id = 1; } // User wants to register a new account message Command_Register { extend SessionCommand { optional Command_Register ext = 1016; } // User name client wants to register required string user_name = 1; // Hashed password to be inserted into database required string password = 2; // Email address of the client for user validation optional string email = 3; // Gender of the user optional ServerInfo_User.Gender gender = 4; // Country code of the user. 2 letter ISO format optional string country = 5; optional string real_name = 6; } // User wants to activate an account message Command_Activate { extend SessionCommand { optional Command_Activate ext = 1017; } // User name client wants to activate required string user_name = 1; // Activation token required string token = 2; }