+ def seed(m, params)
+ chan = params[:channel]
+ if chan == nil
+ if m.public?
+ chan = m.channel
+ else
+ m.reply _("Either specify a channel to seed, or ask in public")
+ end
+ end
+
+ current_ops = @bot.server.channel(chan).users.select { |u|
+ u.is_op?(chan) and u.nick != @bot.nick
+ }
+
+ netmasks = current_ops.map { |u|
+ @bot.config['autoop.seed_format'] % {
+ :user => u.user,
+ :nick => u.nick,
+ :host => u.host
+ }
+ }.uniq
+
+ to_add = netmasks.select { |mask|
+ @registry.key?(mask) == false or @registry[mask].empty? == false
+ }
+
+ if to_add.empty?
+ m.reply _("Nobody to add")
+ return
+ end
+
+ results = []
+ to_add.each { |mask|
+ if @registry.key? mask
+ if @registry[mask].include? chan
+ next
+ else
+ current_channels = @registry[mask].dup
+ @registry[mask] = ([chan] | current_channels).uniq
+ results << _("Added #{mask} in #{chan}")
+ end
+ else
+ @registry[mask] = [chan]
+ results << _("Created autoop entry for #{mask} and added #{chan}")
+ end
+ }
+ m.reply results.join ". "
+ end
+