vrobot4/source/modules/rolechooser.rb

44 lines
1.2 KiB
Ruby
Raw Normal View History

2017-08-15 13:49:20 -07:00
class Mod_RoleChooser < Vrobot4::Module::Module
def self.type() "RoleChooser" end
Vrobot4::Module.add_module_type self, server: "Discord"
def initialize info
super
2019-07-17 16:01:03 -07:00
2019-07-15 10:31:54 -07:00
register :c_addvrole, "addvroles", "Adds another vanity role to you."
register :c_delvrole, "delvroles", "Removes a vanity role from you."
register :c_listvroles, "listvroles", "Lists available vanity roles."
2019-07-17 16:01:03 -07:00
2019-07-15 10:31:54 -07:00
@info.map! do |id| id.resolve_id end
2017-08-15 13:49:20 -07:00
end
2019-07-15 10:31:54 -07:00
def get_role m, argv
2017-08-15 13:49:20 -07:00
roles = m.chan.real.server.roles
2019-07-15 10:31:54 -07:00
role = roles.find do |r| r.name.casecmp(argv) == 0 end
unless role and @info.any? do |id| role.id == id end
raise ArgumentError, "Invalid role, use .listvroles for a list."
2017-08-15 13:49:20 -07:00
end
2019-07-15 10:31:54 -07:00
role
end
def c_addvrole m, argv
m.user.real.add_role get_role(m, argv)
m.reply "Successfully added you to the vanity role."
end
def c_delvrole m, argv
m.user.real.remove_role get_role(m, argv)
m.reply "Successfully removed you from the vanity role."
2017-08-15 13:49:20 -07:00
end
2019-07-15 10:35:11 -07:00
def c_listvroles m, argv
2017-08-15 13:49:20 -07:00
text = ""
for role in @info do
2019-07-17 16:01:03 -07:00
text << m.chan.real.server.role(role).name + ?\n
2017-08-15 13:49:20 -07:00
end
m.reply text
end
end
## EOF