MintChatBotの使い方
チャットBOT ミントちゃん概要
特定のチャット発言に反応して、自動応答を行うBOTプラグインです。チャットを使った簡単なお遊びにお使いください。
- ウェルカムメッセージ
誰かがサーバーに参加したときに、BOTからようこそメッセージを送信します。
- 簡易応答
あらかじめ指定しておいたキーワードに対して、返信を行います。
キーワードは正規表現で、柔軟に指定することが可能です。
返信は、複数パターン用意して、ランダムに返答することが可能です。
キーワードと返信のセットは、プラグイン導入後に生成される「plugins\MintChatBot\responces.txt」で設定可能です。
- URL調査
誰かがチャットにURLを貼った時に、自動的に接続して、接続可能かどうかと、接続先のページタイトルを取得して返信します。
返信のメッセージフォーマットは、プラグイン導入後に生成される「plugins\MintChatBot\messages.txt」で指定可能です。
- 時報・アラーム・繰り返し通知
あらかじめ指定しておいた時刻に、毎日時報を流すことが可能です。
また、日時+時刻を指定して、アラームメッセージを流すことも可能です。
さらに、○分ごとに繰り返してメッセージ通知を流すことも可能です。
時刻とメッセージのセットは、プラグイン導入後に生成される「plugins\MintChatBot\timesignals.txt」で設定可能です。
- LunaChat連携
LunaChatのグローバルチャットまたはブロードキャストチャットを設定したチャンネル全てに、Botが反応します。
Botの返信は、各チャンネルに直接送信されます。
- IRC接続
IRCサーバーの特定のチャンネルに対して、Botとして接続します。
接続後は、Minecraft側の全てのチャット発言と、LunaChatの全てのブロードキャストチャンネルのチャット発言を、IRCにも表示することができます。
また逆に、IRC側の発言を、Minecraftサーバーにも表示します。
IRC接続設定はデフォルトではオフなので、利用する場合は、セットアップを行ってオンにしてください。
使い方
BukkitChatBot.jar を plugins フォルダに入れて、CraftBukkitを起動してください。IRC連携を使わない場合は、そのまま利用できます。
IRC連携をセットアップするには、CraftBukkit起動後に生成される「plugins\MintChatBot\config.yml」を開いて、下記の設定を行ってください。
- enabled: false
→ false を true に変更 - serverHostname: 'irc.friend-chat.jp'
→ 接続したいIRCサーバーのホスト名を設定 - serverPort: 6665
→ 接続したいIRCサーバーのポート番号を設定 - channel: ''
→ 接続したいチャンネル名を設定 - nickname: 'MintChan'
→ 使用したいBotのニックネームを設定
/bot reload コマンドを実行して config.yml を読み直して、
/irc connect コマンドを実行してチャンネルへ接続してください。
コマンド
Bot用コマンドは /chatbot です。パーミッションノードは「chatbot.command」です。デフォルトで全てのプレイヤーが実行権限を持っています。
省略形として /bot と /cb が利用できます。
- /bot ask (メッセージ) - BOTに個別に質問を投げかけます。BOTからの返信は、個別に届きます。動作確認などにご利用ください。
- /bot reload - 設定ファイル(config.yml、responces.txt、timesignals.txt、messages.txt)を再読み込みします。
実行には chatbot.command.reload パーミッションが必要です。OPは最初から実行権限を持っています。
IRC用コマンドは /ircbot です。パーミッションノードは「chatbot.irc.command」です。OPは最初から実行権限を持っています。
省略形として /irc と /ib が利用できます。
各サブコマンドの個別パーミッションは、「chatbot.irc.(サブコマンド名)」です。
例)/irc connect コマンド → chatbot.irc.connect
- /irc connect - チャンネルに接続します。
- /irc disconnect - チャンネルから切断します。
- /irc reconnect - チャンネルに再接続します。
- /irc message (message) - チャンネルに発言します。
- /irc op (target) - 指定したニックネームのユーザーに、チャンネル管理者を与えます。IRCBotがチャンネル管理者である必要があります。
- /irc kick (target) [reason] - 指定したニックネームのユーザーを、チャンネルからキックします。IRCBotがチャンネル管理者である必要があります。
コンフィグ
設定変更は、config.yml を編集して保存した後、/chatbot reload コマンドを実行して再読み込みしてください。
また、ファイル中に日本語で説明が書いてあるので、参考にしてください。
config.yml
# MintChatBot v2.5.0 # @author ucchy # @license LGPLv3 # @copyright Copyright ucchy 2014 # -------------------- 一般設定 -------------------- # Botの名前。 botName: 'ミントちゃん' # レスポンスのフォーマット。 responceFormat: '<&e%botName&f> %responce' # チャットに対する自動応答をするかどうか。自動応答の内容は、responces.txt で設定できます。 responceChat: true # サーバー参加に対する自動応答をするかどうか。応答メッセージは、messages.txt で設定できます。 responceJoinServer: true # URLを含んだチャット発言がされたときに、URL先のタイトルを取得するかどうか。 # 応答メッセージは、messages.txt で設定できます。 getURLTitle: true # 時報を使用するかどうか。時報の内容は timesignals.txt で設定できます。 timeSignals: true # アラームを使用するかどうか。アラームの内容は timesignals.txt で設定できます。 alermSignals: true # 繰り返し通知を使用するかどうか。通知の内容は timesignals.txt で設定できます。 repeatSignals: true # 発言に対して応答するまでの遅延時間(tick)。10~15ticksくらいを指定するとちょうどいいみたいです。 responceDelayTicks: 15 # -------------------- IRC連携設定 -------------------- irc: # IRC連携を利用するかどうか。 enabled: false # IRCのチャットに対する自動応答をするかどうか。 responceChat: true # IRCのチャンネル参加に対する自動応答をするかどうか。 responceJoinServer: true # IRCにURLを含んだチャット発言がされたときに、URL先のタイトルを取得するかどうか。 getURLTitle: true # 接続先のIRCサーバー。 serverHostname: 'irc.friend-chat.jp' # 接続先のIRCサーバーのパスワード。不要なら空にしてください。 serverPassword: '' # 接続先のIRCサーバーのポート番号。 serverPort: 6665 # 接続先のチャンネル名。設定例→ channel: '#MintChanServer' channel: '' # BOTのニックネーム。 nickname: 'MintChan' # BOTのニックネームのパスワード。不要なら空にしてください。 nickservPassword: '' # 接続先のIRCサーバーの文字コード。 # 日本のIRCサーバーは、'ISO-2022-JP'(JIS) がよく使われています。 encoding: 'ISO-2022-JP' # IRCサーバーから切断するときのメッセージ quitMessage: 'さよなら!またね!'
messages.txt
# MintChatBot v2.5.0 # @author ucchy # @license LGPLv3 # @copyright Copyright ucchy 2014 # ========== サーバー参加に対するメッセージ ========== # プレイヤーがサーバーに参加したときの応答内容。 # 空文字列を設定すると(joinResponce: '')、応答を無効化できます。 joinResponce: %playerさんいらっしゃいませ! # プレイヤーがサーバーに初参加したときの応答内容。 # 空文字列を設定すると(firstJoinResponce: '')、応答を無効化できます。 firstJoinResponce: %playerさんが&cサーバーに初参加&fです!\nようこそいらっしゃいませ!! # ========== URL応答メッセージ ========== # URLのタイトルを取得したときの応答内容。空文字列を設定すると、応答を無効化できます。 getURLTitleSuccess: %playerさんの貼ったURLは、"%title"というタイトルです。 # URLのタイトルが取得できなかったときの応答内容。空文字列を設定すると、応答を無効化できます。 getURLTitleFail: %playerさんの貼ったURLは、タイトルが取得できませんでした… # URLが接続できなかったときの応答内容。空文字列を設定すると、応答を無効化できます。 getURLTitleNotFound: %playerさんの貼ったURLは、接続できませんでした… # ========== IRC連携メッセージ ========== # IRC連携に関するメッセージ設定ファイルです。 # IRC連携をしていないなら、使用されません。 # IRC側に流れるメッセージです。 minecraft_server: &4* %message minecraft_chat: %prefix<%name>%suffix %message minecraft_join: &6* %name さんがサーバーに参加しました。 minecraft_quit: &6* %name さんがサーバーから退出しました。 minecraft_kick: &4* %name さんがサーバーからキックされました。&r(%reason&r) # Minecraft側に流れるメッセージです。 irc_connect: &eIRCサーバーに接続しました。 irc_disconnect: &eIRCサーバーから切断しました。 irc_chat: &7(%name@irc) &f%message irc_join: &b* %name さんがIRCチャンネルに参加しました。 irc_part: &b* %name さんがIRCチャンネルから退出しました。&r(%reason&r) irc_quit: &b* %name さんがIRCから退出しました。&r(%reason&r) irc_kick: &c* %name さんがIRCチャンネルからキックされました。&r(%reason&r)
responces.txt
# MintChatBot v2.5.0 # @author ucchy # @license LGPLv3 # @copyright Copyright ucchy 2014 # 自動応答に関する設定ファイルです。 # # : の左側が正規表現キーワード、右側がレスポンス内容です。 # キーワード側の行頭に @ をつけると、そのレスポンスは連続して送信されなくなります。 # キーワード側の行頭に > をつけると、そのレスポンスは発言者のみに送信されます。 # レスポンス側にはキーワードが使用可能です。 # %player -> プレイヤー名 # %random_player -> ログインしているプレイヤーから、ランダムに選ばれた1人のプレイヤー名 # %time -> 現在の時間 # %date -> 今日の日付 # %1 ~ %9 -> キーワードマッチング時の正規表現グループ指定 # @learn 応答=レスポンス -> 新しい応答を覚えます # @forget 応答 -> 指定された応答を忘れます # @command[ ... ] -> 発言したプレイヤーの実行権限で、コマンドを実行する # @command_bypass[ ... ] -> コンソールの実行権限で、コマンドを実行する # 挨拶に関連するレスポンス。 @[hH]i[.! ]?.* : いらっしゃいませ! @おはよう : %playerさん、おはようございます! @こんにち(は|わ)(!|!|。)? : %playerさん、こんにちは! @こんばん(は|わ)(!|!|。)? : %playerさん、こんばんは! @さよう?なら(!|!|。)? : %playerさん、さようなら! また来てくださいね! (初見|所見) : %playerさんいらっしゃいませ! お茶をどうぞ # ランダムな返答を行うレスポンス。ちょっとしたゲームに使えるかも。 占い : 今日のあなたの運勢は、[(大吉|中吉|小吉|末吉|凶|大凶)]です! (さいころ|サイコロ) : (´・ω・)つ[(&c01|&a02|&b03|&d04|&e05|&f06)&r] (じゃんけん|ジャンケン).* : じゃんけん![(&cパー|&aグー|&bチョキ)&r]! プラン : (明日|今日|昨日)から(Aプラン|Bプラン|Cプラン)をしてください! 次の鬼 : 次の鬼は %random_player さんです! >こっそり教えて : 実は私は、(ナイスバディ|忍者|ふなっしーの中の人)です! # 雑多なレスポンス。いろいろおもしろい設定を追加していきましょう。 (.*)を?ください(!|。)? : %1ですどうぞ! (いま|今)(なんじ|何時|の時間|のじかん)??.* : %timeです。 (きょう|今日)は?(なんにち|何日)??.* : %dateです。 ⑨ : (チルノのことか~!|あたいったらサイキョーね!) マスター、?いつもの : %playerさんどうぞ。(´・ω・)つ[(ジントニック|モスコミュール|カシスグレープ|梅酒|日本酒|焼酎お湯割り|芋焼酎ロック|麦茶|青汁|カレーライス|水|ガソリン|白乾児|ハイオク満タン)] マスター、?おかわり : %playerさん、しかたないですね、どうぞ。(´・ω・)つ[カレーライス] \(\*?´ω`\*?\) : 流行らないし流行らせない .*パンツの?色.* : おまわりさん、こいつです! .*パンツを?見.* : おまわりさん、こいつです! # ミントちゃんに関連するレスポンス。BOT名を変えるならこの辺りは要らないかも。 (ミント|みんと)(ちゃん)?(かわいい|物知り).* : 当然です! ミントティー : (ミントミント~♪|爽やか~) # 学習機能に関連するレスポンス。 教育[ ](.+)[==](.+) : @learn %1=%2 忘却[ ](.+) : @forget %1 # コマンド実行を伴うレスポンスの例。 # リスポーン地点にテレポートして : リスポーン地点にテレポートしますね! @command_bypass[tp %playerName 100 65 100] # バージョン情報 : バージョン情報を表示いたします!@command[ver] @command[ver MintChatBot]
timesignals.txt
# MintChatBot v2.5.0 # @author ucchy # @license LGPLv3 # @copyright Copyright ucchy 2014 # 時報とアラームと繰り返し通知に関する設定ファイルです。 # 不要なものはコメントアウト(行の最初に # )してください。 # ========== 時報の設定 ========== # : の左側が時刻、右側が時報の内容です。 # 時刻は1分単位で設定が可能です。hhmm の形式で、4桁数字で指定してください。 # 例)9時32分 → 0932 0000 : 深夜0時です。\n皆さん、おやすみなさい!! # 0100 : 深夜1時です。\nそろそろお布団に入りましょうね…zzz # 0200 : 深夜2時です。\nお~ば~け~が~で~る~よ~~ # 0300 : 深夜3時です。\nこんなに夜更かししてだいじょうぶですか? # 0400 : 朝4時です。\n朝早いですね!…あっ、もしかして夜更かしですか? # 0500 : 朝5時です。\nおはようございます!もうすっかり朝ですね! # 0600 : 朝6時です。\nおはようございます……zzz\nハッ、2度寝するところでした…っ! 0700 : 朝7時です。\nおはようございます!今日もいい一日になるといいですね! # 0800 : 朝8時です。\n今日も1日、元気にいきますよっ!! # 0900 : 朝9時です。\n木を切って原木を集めましょう!マインクラフトの基本ですよ! # 1000 : 朝10時です。\n調子はどうですか?コーヒーを淹れますねっ! # 1100 : お昼11時です。\n建築の進み具合はいかがですか?? 1200 : お昼12時です。\nお昼ごはんは何にしようかな♪ # 1300 : お昼1時です。\nお昼ごはん食べた後は眠くなります……zzz # 1400 : お昼2時です。\nダイアモンドを探しに、洞窟に行ってきますね! 1500 : お昼3時です。\nおやつのケーキと紅茶を用意しますね! # 1600 : お昼4時です。\nあうぅぅ…レッドストーン回路はわからないですぅ\n考えすぎて目が回ってきちゃいました…@_@; # 1700 : 夕方5時です。\nそろそろ皆さん、サーバーに集まる頃ですね! # 1800 : 夕方6時です。\n今日の晩御飯のために、豚さんを狩ってきますね!\n…待ってー、そこの豚さん!! 1900 : 夕方7時です。\n晩御飯は何を食べたいですか? # 2000 : 夜8時です。\nまだやり残した事があるなら、一気に終わらせちゃいましょうね! # 2100 : 夜9時です。\n今日はどんな一日でしたか? # 2200 : 夜10時です。\nそろそろ寝る仕度をしましょうね!\nちゃんと歯磨きをしましたか? # 2300 : 夜11時です。\n眠くなってきたけれど、もうちょっとだけ遊んでいたいですっ # ========== アラームの設定 ========== # : の左側が時刻、右側がアラーム通知の内容です。 # 時刻は日付込みで、1分単位で設定が可能です。 # mmddhhmm の形式で、8桁数字で指定してください。 # 例)9月23日15時05分 → 09231505 # 年は指定できません。 # 09220001 : 今日は私の誕生日です!皆さん祝ってくださいね!! # 09220201 : 今日は私の誕生日です!皆さん祝ってくださいね!! # 09220401 : 今日は私の誕生日です!皆さん祝ってくださいね!! # 09220601 : 今日は私の誕生日です!皆さん祝ってくださいね!! # 09220801 : 今日は私の誕生日です!皆さん祝ってくださいね!! # 09221001 : 今日は私の誕生日です!皆さん祝ってくださいね!! # 09221201 : 今日は私の誕生日です!皆さん祝ってくださいね!! # 09221401 : 今日は私の誕生日です!皆さん祝ってくださいね!! # 09221601 : 今日は私の誕生日です!皆さん祝ってくださいね!! # 09221801 : 今日は私の誕生日です!皆さん祝ってくださいね!! # 09222001 : 今日は私の誕生日です!皆さん祝ってくださいね!! # 09222201 : 今日は私の誕生日です!皆さん祝ってくださいね!! # ========== 繰り返し通知の設定 ========== # : の左側が繰り返し間隔(分)、右側が通知の内容です。 # 繰り返し間隔は、頭に R を付けて、その後ろに間隔を分で指定してください。 # 例1)5分ごとに通知する # R5 : ミントちゃんは元気です!! # 例2)30分ごとに通知する # R30 : &cどなたか、私の粘土をダイアモンドに交換してください!! # 例3)3時間(180分)ごとに通知する # R180 : &eお店エリアは&a絶賛稼働中&eです!ぜひ遊びにきてくださいね!! # R60 : ミントちゃんサーバーは&a絶賛稼働中&fです!
ソースコード
ソースコードはGithubで管理しています。ライセンスは LGPLv3 を適用します。
https://github.com/ucchyocean/MintChatBot