diff --git a/source/module.rb b/source/module.rb index d683988..bfc084a 100644 --- a/source/module.rb +++ b/source/module.rb @@ -89,8 +89,12 @@ module Vrobot4::Module @@module_types = {} - def self.add_module_type t, name, server: nil - @@module_types[name] = {:type => t, :server => server} + def self.add_module_type type, name, server: nil, servflags: nil + @@module_types[name] = { + :type => type, + :server => server, + :servflags => servflags ? /[#{servflags}]/ : nil + } Vrobot4.log :INFO, "added module type:", name end diff --git a/source/server.rb b/source/server.rb index 4fa01ec..824ca29 100644 --- a/source/server.rb +++ b/source/server.rb @@ -46,7 +46,8 @@ module Vrobot4::Server def load_mod mod mt = Vrobot4::Module.get_module_type(mod) - if mt[:server] and mt[:server] != type + if mt[:server] and mt[:server] != type or + mt[:servflags] and mt[:servflags] !~ flags raise ArgumentError, "Module " + mod + " not valid for this server" end @modules << mt[:type].new @@ -75,6 +76,10 @@ module Vrobot4::Server "Unknown" end + def flags + "" + end + private def load_permissions pinf @mprm = {:chan => {}, :role => {}, :glob => {}} diff --git a/source/sv_discord.rb b/source/sv_discord.rb index 32a9ac6..d7fa00c 100644 --- a/source/sv_discord.rb +++ b/source/sv_discord.rb @@ -64,6 +64,10 @@ class Sv_Discord < Vrobot4::Server::Server def type "Discord" end + + def flags + "AD" + end end ## EOF