Fixed bug that caused user modes to be sent incorrectly when an
alternate nickname was in use.
This commit is contained in:
parent
597badda0c
commit
33123f4695
1 changed files with 11 additions and 1 deletions
|
@ -268,6 +268,16 @@ impl IrcServer {
|
||||||
res
|
res
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Gets the current nickname in use.
|
||||||
|
pub fn current_nickname(&self) -> &str {
|
||||||
|
let alt_nicks = self.config().alternate_nicknames();
|
||||||
|
let index = self.state.alt_nick_index.read().unwrap();
|
||||||
|
match *index {
|
||||||
|
0 => self.config().nickname(),
|
||||||
|
i => alt_nicks[i - 1]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[cfg(feature = "encode")]
|
#[cfg(feature = "encode")]
|
||||||
fn write<M: Into<Message>>(state: &Arc<ServerState>, msg: M) -> Result<()> {
|
fn write<M: Into<Message>>(state: &Arc<ServerState>, msg: M) -> Result<()> {
|
||||||
state.conn.send(&msg.into().into_string(), state.config.encoding())
|
state.conn.send(&msg.into().into_string(), state.config.encoding())
|
||||||
|
@ -357,7 +367,7 @@ impl IrcServer {
|
||||||
)))
|
)))
|
||||||
}
|
}
|
||||||
if self.config().umodes() != "" {
|
if self.config().umodes() != "" {
|
||||||
try!(self.send_mode(self.config().nickname(), self.config().umodes(), ""))
|
try!(self.send_mode(self.current_nickname(), self.config().umodes(), ""))
|
||||||
}
|
}
|
||||||
for chan in self.config().channels().into_iter() {
|
for chan in self.config().channels().into_iter() {
|
||||||
try!(self.send_join(chan))
|
try!(self.send_join(chan))
|
||||||
|
|
Loading…
Reference in a new issue