105 #[inline] |
105 #[inline] |
106 pub fn remove_flags(flags: &[ProtocolFlags]) -> String { |
106 pub fn remove_flags(flags: &[ProtocolFlags]) -> String { |
107 ProtocolFlags::format('-', flags) |
107 ProtocolFlags::format('-', flags) |
108 } |
108 } |
109 |
109 |
110 #[derive(Debug)] |
110 #[derive(PartialEq, Eq, Clone, Debug)] |
111 pub enum HwServerMessage { |
111 pub enum HwServerMessage { |
112 Connected(u32), |
112 Connected(String, u32), |
113 Redirect(u16), |
113 Redirect(u16), |
114 |
114 |
115 Ping, |
115 Ping, |
116 Pong, |
116 Pong, |
117 Bye(String), |
117 Bye(String), |
149 ServerMessage(String), |
149 ServerMessage(String), |
150 ServerVars(Vec<String>), |
150 ServerVars(Vec<String>), |
151 Notice(String), |
151 Notice(String), |
152 Warning(String), |
152 Warning(String), |
153 Error(String), |
153 Error(String), |
154 Unreachable, |
|
155 |
154 |
156 //Deprecated messages |
155 //Deprecated messages |
157 LegacyReady(bool, Vec<String>), |
156 LegacyReady(bool, Vec<String>), |
158 } |
157 } |
159 |
158 |
368 pub fn to_raw_protocol(&self) -> String { |
367 pub fn to_raw_protocol(&self) -> String { |
369 use self::HwServerMessage::*; |
368 use self::HwServerMessage::*; |
370 match self { |
369 match self { |
371 Ping => msg!["PING"], |
370 Ping => msg!["PING"], |
372 Pong => msg!["PONG"], |
371 Pong => msg!["PONG"], |
373 Connected(protocol_version) => msg![ |
372 Connected(message, protocol_version) => msg!["CONNECTED", message, protocol_version], |
374 "CONNECTED", |
|
375 "Hedgewars server https://www.hedgewars.org/", |
|
376 protocol_version |
|
377 ], |
|
378 Redirect(port) => msg!["REDIRECT", port], |
373 Redirect(port) => msg!["REDIRECT", port], |
379 Bye(msg) => msg!["BYE", msg], |
374 Bye(msg) => msg!["BYE", msg], |
380 Nick(nick) => msg!["NICK", nick], |
375 Nick(nick) => msg!["NICK", nick], |
381 Proto(proto) => msg!["PROTO", proto], |
376 Proto(proto) => msg!["PROTO", proto], |
382 AskPassword(salt) => msg!["ASKPASSWORD", salt], |
377 AskPassword(salt) => msg!["ASKPASSWORD", salt], |
412 ReplayStart => msg!["REPLAY_START"], |
407 ReplayStart => msg!["REPLAY_START"], |
413 |
408 |
414 LegacyReady(is_ready, nicks) => { |
409 LegacyReady(is_ready, nicks) => { |
415 construct_message(&[if *is_ready { "READY" } else { "NOT_READY" }], &nicks) |
410 construct_message(&[if *is_ready { "READY" } else { "NOT_READY" }], &nicks) |
416 } |
411 } |
417 |
412 } |
418 _ => msg!["ERROR", "UNIMPLEMENTED"], |
413 } |
419 } |
414 } |
420 } |
|
421 } |
|