X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=data%2Frbot%2Fplugins%2Finsult.rb;h=993450a554e9204ec4877fbd450d9eac5662b9a1;hb=052217de30c59206d7025b582d4604557a747470;hp=5f0384e8379c14dd101c3829e712ced0c729a985;hpb=21949774b91eaec6ecde4eaa8ad121e2c0a36b87;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git diff --git a/data/rbot/plugins/insult.rb b/data/rbot/plugins/insult.rb index 5f0384e8..993450a5 100644 --- a/data/rbot/plugins/insult.rb +++ b/data/rbot/plugins/insult.rb @@ -134,7 +134,7 @@ class InsultPlugin < Plugin ] ## -# Amounts +# Amounts ## @@amt = [ "accumulation", @@ -206,53 +206,55 @@ class InsultPlugin < Plugin "cold sores", "anal warts", ] - + def help(plugin, topic="") - if(plugin == "insult") - return "insult me| => insult you or " - elsif(plugin == "msginsult") - return "msginsult => insult via /msg" - else - return "insult module topics: msginsult, insult" - end + return "[msg]insult me| => insult you or . msginsult insults in private" end - def privmsg(m) - suffix="" - unless(m.params) - m.reply "incorrect usage: " + help(m.plugin) - return - end - msgto = m.channel - if(m.plugin =~ /^msginsult$/) - prefix = "you are " - if (m.params =~ /^#/) - prefix += "all " - end - msgto = m.params - suffix = " (from #{m.sourcenick})" - elsif(m.params =~ /^me$/) + + def insult(m, params) + who = params[:who] + who = m.sourcenick if ["me", @bot.nick].include?(who) + + priv = params[:priv] || m.plugin == "msginsult" + + case who + when /^#/ + prefix = "you are all " + when m.sourcenick prefix = "you are " else - prefix = "#{m.params} is " + prefix = priv ? "you are " : "#{who} is " end + + suffix = "" + + if priv + msgto = who + suffix = " (from #{m.sourcenick})" unless who == m.sourcenick + else + msgto = m.channel + end + insult = generate_insult @bot.say msgto, prefix + insult + suffix end + def generate_insult - adj = @@adj[rand(@@adj.length)] + adj = @@adj.pick_one adj2 = "" loop do - adj2 = @@adj[rand(@@adj.length)] + adj2 = @@adj.pick_one break if adj2 != adj end - amt = @@amt[rand(@@amt.length)] - noun = @@noun[rand(@@noun.length)] + amt = @@amt.pick_one + noun = @@noun.pick_one start = "a " - start = "an " if ['a','e','i','o','u'].include?(adj[0].chr) + start = "an " if ['a','e','i','o','u'].include?(adj[0,1]) "#{start}#{adj} #{amt} of #{adj2} #{noun}" end end + plugin = InsultPlugin.new -plugin.register("insult") -plugin.register("msginsult") +plugin.map "insult :who [:priv]", :action => :insult, :requirements => { :priv => /in private/ } +plugin.map "msginsult :who", :action => :insult