IRCBotに新しく入ってきた人になると(オペレータ権限)を配布させることはよくやると思います。 それをHubot+hubot-ircにやらせてみたのでメモ。
以下のスクリプトで実現できます。
module.exports = (robot) -> robot.enter (msg) -> robot.adapter.bot.send 'MODE', msg.envelope.room, '+o', msg.envelope.user.name
以下要点箇条書き。
- robot.enterで人が入ってきた時のイベントをとれる。
- hubot-ircはnode-ircをhubotにマップさせる程度の機能しか提供してくれない。
- adapter.botがnode-ircのクライアントインスタンスなので、こいつ経由で色々メソッドを呼び出せる。
- sendは直接コマンドを発行するメソッドなので、なると配布の場合上記のようにすればOK。
他にadapter.botを使う例として、以下のようにしてユーザーのrealnameを取得出来ます。
module.exports = (robot) -> robot.hear /whoami/, (bot)-> robot.adapter.bot.whois bot.envelope.user.name, (res)-> realname = res.realname.replace /@.*$/, '' robot.adapter.notice bot.envelope, realname