diff options
| author | Jokler <jokler.contact@gmail.com> | 2017-12-07 14:25:39 +0100 |
|---|---|---|
| committer | Jokler <jokler.contact@gmail.com> | 2017-12-07 14:25:39 +0100 |
| commit | 6ba6651cdda7528e39a94c596b5137ec4f8d32e6 (patch) | |
| tree | cfec30de4de0c16b0696b438df63e506eac11588 /src/plugins/keepnick.rs | |
| parent | f716ecd319977aea7773dc689592fc8193c609f1 (diff) | |
| download | frippy-6ba6651cdda7528e39a94c596b5137ec4f8d32e6.tar.gz frippy-6ba6651cdda7528e39a94c596b5137ec4f8d32e6.zip | |
Check who left before trying to get the nick
Diffstat (limited to 'src/plugins/keepnick.rs')
| -rw-r--r-- | src/plugins/keepnick.rs | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/plugins/keepnick.rs b/src/plugins/keepnick.rs index 5f5d92c..afe12f8 100644 --- a/src/plugins/keepnick.rs +++ b/src/plugins/keepnick.rs @@ -11,12 +11,16 @@ impl KeepNick { KeepNick {} } - fn check_nick(&self, server: &IrcServer) -> Result<(), IrcError> { + fn check_nick(&self, server: &IrcServer, leaver: &str) -> Result<(), IrcError> { let cfg_nick = match server.config().nickname { Some(ref nick) => nick.clone(), None => return Ok(()), }; + if leaver != cfg_nick { + return Ok(()); + } + let server_nick = server.current_nickname(); if server_nick != cfg_nick { @@ -37,8 +41,13 @@ impl Plugin for KeepNick { } } - fn execute(&self, server: &IrcServer, _: &Message) -> Result<(), IrcError> { - self.check_nick(server) + fn execute(&self, server: &IrcServer, message: &Message) -> Result<(), IrcError> { + match message.command { + Command::QUIT(ref nick) => { + self.check_nick(server, &nick.clone().unwrap_or(String::from(""))) + } + _ => Ok(()), + } } fn command(&self, server: &IrcServer, command: PluginCommand) -> Result<(), IrcError> { |
