summaryrefslogtreecommitdiffstats
path: root/plugins/eval.rb
blob: 0099ab8f3dff2213ac5f1c3d75f7e1e41d9e6d07 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
include EventMachine::IRC::Commands

Client.register_trigger("PRIVMSG") { |msg|
    message = msg[:params][1]
    destination = msg[:params][0]

    if message[0..5] == ":eval " then
        if Config[:eval][:owners].include?(msg[:prefix]) then
            code = message[6..-1]
            begin
                retval = proc {
                    eval(code)
                }.call

                Client.privmsg(destination, String.try_convert(retval.to_s) + " => " + retval.class.to_s)
            rescue Exception => e
                Client.privmsg(destination, e.inspect)
                puts e.inspect
                puts e.backtrace
            end
        else
            Client.privmsg(destination, Config[:eval][:denied])
        end
    end
}