class AutoOP < Plugin
def help(plugin, topic="")
- "perform autoop based on hostmask - usage: addop <hostmask> [channel channel ...], rmop <hostmask> [channel], list - list current ops. If you don't specify which channels, all channels are assumed"
+ "perform autoop based on hostmask - usage: add <hostmask> [channel channel ...], rm <hostmask> [channel], list - list current ops. If you don't specify which channels, all channels are assumed"
end
def join(m)
return if m.address?
@registry.each { |mask,channels|
- if(Irc.netmaskmatch(mask, m.source) &&
- (channels.empty? || channels.include?(m.channel)))
- @bot.mode(m.channel, "+o", m.sourcenick)
+ if m.source.matches?(mask.to_irc_netmask(:server => m.server)) &&
+ (channels.empty? || channels.include?(m.channel.to_s))
+ @bot.mode(m.channel, "+o", m.source.nick)
return
end
}
end
+ def nick(m)
+ return if m.address?
+ is_on = m.server.channels.inject(ChannelList.new) { |list, ch|
+ list << ch if ch.users.include?(m.source)
+ list
+ }
+ is_on.each { |channel|
+ ch = channel.to_s
+ @registry.each { |mask,channels|
+ if m.source.matches?(mask.to_irc_netmask(:server => m.server)) &&
+ (channels.empty? || channels.include?(ch))
+ @bot.mode(ch, "+o", m.source.nick)
+ return
+ end
+ }
+ }
+ end
+
def add(m, params)
@registry[params[:mask]] = params[:channels].dup
m.okay