class AutoOP < Plugin
- BotConfig.register BotConfigBooleanValue.new('autoop.on_nick',
+ Config.register Config::BooleanValue.new('autoop.on_nick',
:default => true,
:desc => "Determines if the bot should auto-op when someone changes nick and the new nick matches a listed netmask")
end
def add(m, params)
- @registry[params[:mask]] = params[:channels].dup
- m.okay
+ if params[:channels].empty? || !@registry.has_key?(params[:mask])
+ # if the channels parameter is omitted (meaning all channels), or the
+ # hostmask isn't present in the registry, we just (over)write the channels
+ # in the registry
+ @registry[params[:mask]] = params[:channels].dup
+ m.okay
+ else
+ # otherwise, merge the channels with the ones existing in the registry
+ current_channels = @registry[params[:mask]]
+ if current_channels.empty?
+ m.reply "#{params[:mask]} is already being auto-opped on all channels"
+ else
+ # merge the already set channels
+ @registry[params[:mask]] = (params[:channels] | current_channels).uniq
+ m.okay
+ end
+ end
end
def rm(m, params)
plugin.map 'autoop list', :action => 'list'
plugin.map 'autoop add :mask [*channels]', :action => 'add'
plugin.map 'autoop rm :mask [*channels]', :action => 'rm'
+
+plugin.default_auth('*',false)