From fb3822583d4b823cbfbaca81f823376fbc92db5d Mon Sep 17 00:00:00 2001 From: Marrub Date: Tue, 15 Aug 2017 16:49:20 -0400 Subject: [PATCH] Add role chooser module --- source/modules/mod_rolechooser.rb | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 source/modules/mod_rolechooser.rb diff --git a/source/modules/mod_rolechooser.rb b/source/modules/mod_rolechooser.rb new file mode 100644 index 0000000..1481b93 --- /dev/null +++ b/source/modules/mod_rolechooser.rb @@ -0,0 +1,31 @@ +class Mod_RoleChooser < Vrobot4::Module::Module + def self.type() "RoleChooser" end + Vrobot4::Module.add_module_type self, server: "Discord" + + def initialize info + super + register :c_setcolor, "setcolor", "Sets your color." + register :c_listcolors, "listcolors", "Lists available color roles." + @info.map! {|id| id.resolve_id} + end + + def c_setcolor m, argv + roles = m.chan.real.server.roles + role = roles.find {|r| r.name == argv} + unless role and @info.any? {|id| role.id == id} + raise ArgumentError, "Invalid color, use .listcolors for a list." + end + to_remove = roles.select {|r| @info.include? r.id and r != role} + m.user.real.modify_roles role, to_remove + end + + def c_listcolors m, argv + text = "" + for role in @info do + text << m.chan.real.server.role(role).name + "\n" + end + m.reply text + end +end + +## EOF