Groovyでお手軽IRCBot

たまたま ircのbotのお話 - プログラミングお勉強きろく を目にして、そういえばずっと前にPircBotを要チェックや!とはてブしつつずっと放置していたなーというのを思い出しました。


というわけで、早速GroovyのGrapeを使って簡単IRCBotを書いてみました。


準備するものは、Groovyがインストールされていて、インターネッツに接続できるPCだけ。

他は一切いりません。

@Grab("pircbot:pircbot:1.4.2") // Groovy1.7系用
//@Grab(group = "pircbot", module="pircbot", version="1.4.2") // Groovy1.6系用
import org.jibble.pircbot.*

// ref. http://www.jibble.org/pircbot.php
class MyBot extends PircBot {
    void onMessage(String channel, String sender, String login, String hostname, String message) {
        if (message =~ name) {
            sendNotice  channel, "You said: $message"
            sendMessage channel, "May I help you?"
        }
    }
    void onOp(String channel, String sourceNick, String sourceLogin, String sourceHostname, String recipient) {
        sendMessage channel, "Thank you so much!"
    }
}

def bot = new MyBot()
bot.name = "groovy_bot"
bot.setVerbose true // if true, verbose messages output to console.
bot.connect "YOUR_IRC_SERVER_ADDRESS"
bot.joinChannel "#YOUR_CHANNNEL"

上記のコードをircbot.groovyとかのファイル名で保存します。

最後の2行を自分の接続したいIRCサーバ&チャンネルに書き換えてから、

$ groovy ircbot.groovy

と実行するだけ。


PircBotのライブラリはGrapeが自動的に取得して、自動的にクラスパスに入れてくれます。

いやー便利便利。


PircBotの詳しい使い方や他のAPIなどは、以下のサイトのドキュメントをご参照ください。