syntax = "proto2"; 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; ACCOUNT_EDIT = 1018; ACCOUNT_IMAGE = 1019; ACCOUNT_PASSWORD = 1020; FORGOT_PASSWORD_REQUEST = 1021; FORGOT_PASSWORD_RESET = 1022; FORGOT_PASSWORD_CHALLENGE = 1023; REQUEST_PASSWORD_SALT = 1024; 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; optional string clientid = 3; optional string clientver = 4; repeated string clientfeatures = 5; optional string hashed_password = 6; } 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 optional string password = 2; // Email address of the client for user validation optional string email = 3; // gender = 4; // obsolete // Country code of the user. 2 letter ISO format optional string country = 5; optional string real_name = 6; optional string clientid = 7; optional string hashed_password = 8; } // 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; optional string clientid = 3; } message Command_AccountEdit { extend SessionCommand { optional Command_AccountEdit ext = 1018; } optional string real_name = 1; optional string email = 2; // gender = 3; // obsolete optional string country = 4; optional string password_check = 100; // password is required to change sensitive information } message Command_AccountImage { extend SessionCommand { optional Command_AccountImage ext = 1019; } optional bytes image = 1; } message Command_AccountPassword { extend SessionCommand { optional Command_AccountPassword ext = 1020; } optional string old_password = 1; optional string new_password = 2; // optional string hashed_old_password = 3; // we don't want users to steal hashed passwords and change them optional string hashed_new_password = 4; } message Command_ForgotPasswordRequest { extend SessionCommand { optional Command_ForgotPasswordRequest ext = 1021; } required string user_name = 1; optional string clientid = 2; } message Command_ForgotPasswordReset { extend SessionCommand { optional Command_ForgotPasswordReset ext = 1022; } required string user_name = 1; optional string clientid = 2; optional string token = 3; optional string new_password = 4; optional string hashed_new_password = 5; } message Command_ForgotPasswordChallenge { extend SessionCommand { optional Command_ForgotPasswordChallenge ext = 1023; } required string user_name = 1; optional string clientid = 2; optional string email = 3; } message Command_RequestPasswordSalt { extend SessionCommand { optional Command_RequestPasswordSalt ext = 1024; } required string user_name = 1; }