class Plugins::Attack
Public Class Methods
new(*args)
click to toggle source
Calls superclass method
# File lib/Zeta/plugins/attack.rb, line 17 def initialize(*args) @attackdict = [] super end
Public Instance Methods
execute(m, target=nil)
click to toggle source
Methods
# File lib/Zeta/plugins/attack.rb, line 26 def execute(m, target=nil) target = target.rstrip target = m.user.nick if !target.nil? && target.match(/(\bmy\b|\b#{@bot.nick}\S*\b|\b\S*self\b)/i) target.gsub(/(\bmy\b|\b#{@bot.nick}\S*\b|\b\S*self\b)/i,m.user.nick+"'s") if !target.nil?; populate_attacks! output = if target attack!(target.gsub(/\x03([0-9]{2}(,[0-9]{2})?)?/,''), m.user.nick) else random_attack!(m.channel.users, m.user.nick) end m.channel.action output end
Private Instance Methods
attack!(target, assailant)
click to toggle source
# File lib/Zeta/plugins/attack.rb, line 48 def attack!(target, assailant) return nil if target.nil?; @attackdict.sample % {:target => target, :assailant => assailant, :bot => @bot.nick}; end
grab_random_nick(users)
click to toggle source
# File lib/Zeta/plugins/attack.rb, line 44 def grab_random_nick(users) users.to_a.sample[0].nick; end
populate_attacks!()
click to toggle source
# File lib/Zeta/plugins/attack.rb, line 40 def populate_attacks! @attackdict.replace load_locale('attack').map {|e| e.gsub(/<(\w+)>/, "%<#{'\1'.downcase}>s") } end
random_attack!(targets, assailant)
click to toggle source
# File lib/Zeta/plugins/attack.rb, line 53 def random_attack!(targets, assailant) @attackdict.sample % {:target => grab_random_nick(targets), :assailant => assailant, :bot => @bot.nick}; end