aboutsummaryrefslogtreecommitdiff
path: root/admin.rb
diff options
context:
space:
mode:
Diffstat (limited to 'admin.rb')
-rw-r--r--admin.rb34
1 files changed, 34 insertions, 0 deletions
diff --git a/admin.rb b/admin.rb
new file mode 100644
index 0000000..3fc0338
--- /dev/null
+++ b/admin.rb
@@ -0,0 +1,34 @@
+require_relative 'module'
+
+module Dinobot
+ class Admin < Module
+ def initialize
+ super
+
+ @commands << :join << :part
+
+ @admins = Array.new
+ end
+
+ def add(user)
+ @admins << user unless @admins.include?(user)
+ end
+
+ def remove(user)
+ @admins.delete(user)
+ end
+
+ def is_admin?(user)
+ # FIXME: Using hostname for testing purposes. Need better solution.
+ @admins.include?(user.sub(/.+@/, ''))
+ end
+
+ def join(user, channel, argument)
+ [[:join, argument]] if is_admin?(user)
+ end
+
+ def part(user, channel, argument)
+ [[:part, argument]] if is_admin?(user)
+ end
+ end
+end