message ModeratorCommand { enum ModeratorCommandType { BAN_FROM_SERVER = 1000; BAN_HISTORY = 1001; WARN_USER = 1002; WARN_HISTORY = 1003; WARN_LIST = 1004; VIEWLOG_HISTORY = 1005; } extensions 100 to max; } message Command_BanFromServer { extend ModeratorCommand { optional Command_BanFromServer ext = 1000; } optional string user_name = 1; optional string address = 2; optional uint32 minutes = 3; optional string reason = 4; optional string visible_reason = 5; optional string clientid = 6; } message Command_GetBanHistory { extend ModeratorCommand { optional Command_GetBanHistory ext = 1001; } optional string user_name = 1; } message Command_WarnUser { extend ModeratorCommand { optional Command_WarnUser ext = 1002; } optional string user_name = 1; optional string reason = 2; optional string clientid = 3; } message Command_GetWarnHistory { extend ModeratorCommand { optional Command_GetWarnHistory ext = 1003; } optional string user_name = 1; } message Command_GetWarnList { extend ModeratorCommand { optional Command_GetWarnList ext = 1004; } optional string mod_name = 1; optional string user_name = 2; optional string user_clientid = 3; } message Command_ViewLogHistory { extend ModeratorCommand { optional Command_ViewLogHistory ext = 1005; } optional string user_name = 1; // user that created message optional string ip_address = 2; // ip address of user that created message optional string game_name = 3; // client id of user that created the message optional string game_id = 4; // game number the message was sent to optional string message = 5; // raw message that was sent repeated string log_location = 6; // destination of message (ex: main room, game room, private chat) required uint32 date_range = 7; // the length of time (in minutes) to look back for optional uint32 maximum_results = 8; // the maximum number of query results }