diff options
author | David Vazgenovich Shakaryan <dvshakaryan@gmail.com> | 2014-04-21 05:16:29 -0700 |
---|---|---|
committer | David Vazgenovich Shakaryan <dvshakaryan@gmail.com> | 2014-04-21 05:16:29 -0700 |
commit | 349371e4c13e619b787fb4ab5a3dfcde95fd355e (patch) | |
tree | 49a45f6f0f672745dfdce19f4003f5f3c54870cf /module/admin.rb | |
parent | 39dfb870d9a54d63f24a150e995b6da44f81ba43 (diff) | |
download | dinobot-349371e4c13e619b787fb4ab5a3dfcde95fd355e.tar.gz dinobot-349371e4c13e619b787fb4ab5a3dfcde95fd355e.tar.xz |
Persistent storing of admin list (allows reload).
Diffstat (limited to 'module/admin.rb')
-rw-r--r-- | module/admin.rb | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/module/admin.rb b/module/admin.rb index f700a74..768d4f6 100644 --- a/module/admin.rb +++ b/module/admin.rb @@ -1,4 +1,5 @@ require_relative 'base' +require_relative '../core/store' module Dinobot module Module @@ -6,18 +7,27 @@ module Dinobot def initialize(bot) super + @store = Dinobot::Core::Store.new('data/admin') + @commands << :join << :part << :quit << :load << :unload @commands << :listadmins << :listmodules << :listchannels - @admins = Array.new + @admins = @store.data[:admins] + @admins ||= Array.new end def add(user) @admins << user unless @admins.include?(user) + + @store.data[:admins] = @admins + @store.save end def remove(user) @admins.delete(user) + + @store.data[:admins] = @admins + @store.save end def is_admin?(user) @@ -43,12 +53,6 @@ module Dinobot [[:quit, argument ? argument.strip : 'Quitting.']] end - def listadmins(user, channel, argument) - return unless is_admin?(user) - - [[:say, channel, @admins.join(' ')]] - end - def load(user, channel, argument) return unless is_admin?(user) @@ -69,6 +73,12 @@ module Dinobot nil end + def listadmins(user, channel, argument) + return unless is_admin?(user) + + [[:say, channel, @admins.join(' ')]] + end + def listmodules(user, channel, argument) return unless is_admin?(user) |