summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/rbot/ircsocket.rb10
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/rbot/ircsocket.rb b/lib/rbot/ircsocket.rb
index 36a223f9..7c0253a5 100644
--- a/lib/rbot/ircsocket.rb
+++ b/lib/rbot/ircsocket.rb
@@ -48,8 +48,14 @@ class ::String
dests = pars.split($;,2).first
penalty += dests.split(',').size
when :WHO
- # I'm too lazy to implement this one correctly
- penalty += 5
+ args = parts.split
+ if args.length > 0
+ penalty += args.inject(0){ |sum,x| sum += ((x.length > 4) ? 3 : 5) }
+ else
+ penalty += 10
+ end
+ when :PART
+ penalty += 4
when :AWAY, :JOIN, :VERSION, :TIME, :TRACE, :WHOIS, :DNS
penalty += 2
when :INVITE, :NICK