From b4c1722bbee9fa822a6063cbb0540c0a7fb2e430 Mon Sep 17 00:00:00 2001 From: Jokler Date: Fri, 15 Dec 2017 19:27:43 +0100 Subject: Add option for disabled plugins in the toml files --- src/lib.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/lib.rs') diff --git a/src/lib.rs b/src/lib.rs index 4a511c3..d34a728 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -90,6 +90,22 @@ impl Bot { self.plugins.add(plugin); } + /// Removes a plugin based on its name. + /// The binary currently uses this to disable plugins + /// based on user configuration. + /// + /// # Examples + /// ``` + /// use frippy::{plugins, Bot}; + /// + /// let mut bot = frippy::Bot::new(); + /// bot.add_plugin(plugins::Help::new()); + /// bot.remove_plugin("Help"); + /// ``` + pub fn remove_plugin(&mut self, name: &str) -> Option<()> { + self.plugins.remove(name) + } + /// This connects the `Bot` to IRC and adds a task /// to the Core that was supplied. /// @@ -189,6 +205,10 @@ impl ThreadedPlugins { self.plugins.insert(name, safe_plugin); } + pub fn remove(&mut self, name: &str) -> Option<()> { + self.plugins.remove(&name.to_lowercase()).map(|_| ()) + } + pub fn execute_plugins(&mut self, server: &IrcServer, message: Message) { let message = Arc::new(message); -- cgit v1.2.3-70-g09d2