aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/keepnick.rs
diff options
context:
space:
mode:
authorJokler <jokler.contact@gmail.com>2017-12-07 14:25:39 +0100
committerJokler <jokler.contact@gmail.com>2017-12-07 14:25:39 +0100
commit6ba6651cdda7528e39a94c596b5137ec4f8d32e6 (patch)
treecfec30de4de0c16b0696b438df63e506eac11588 /src/plugins/keepnick.rs
parentf716ecd319977aea7773dc689592fc8193c609f1 (diff)
downloadfrippy-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.rs15
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> {