- args = reply.apply(subs)
- if args[0] == :cmd
- new_m = PrivMessage.new(@bot, m.server, m.source, m.target, @bot.nick+": "+args[1])
- @bot.plugins.delegate "listen", new_m
- @bot.plugins.privmsg(new_m) if new_m.address?
+ act, arg = reply.apply(subs)
+ case act
+ when :ruby
+ begin
+ # no substitutions for ruby code
+ eval(reply.reply)
+ rescue Exception => e
+ error e
+ end
+ when :cmd
+ begin
+ # Pass the new message back to the bot.
+ # FIXME Maybe we should do it the alias way, only calling
+ # @bot.plugins.privmsg() ?
+ fake_message(@bot.nick+": "+arg, :from => m)
+ rescue RecurseTooDeep => e
+ error e
+ end
+ when :reply
+ m.plainreply arg