MintChatBotの使い方

チャットBOT ミントちゃん

概要

特定のチャット発言に反応して、自動応答を行うBOTプラグインです。チャットを使った簡単なお遊びにお使いください。

使い方

BukkitChatBot.jar を plugins フォルダに入れて、CraftBukkitを起動してください。IRC連携を使わない場合は、そのまま利用できます。

IRC連携をセットアップするには、CraftBukkit起動後に生成される「plugins\MintChatBot\config.yml」を開いて、下記の設定を行ってください。

設定が完了したらconfig.ymlを保存し、
/bot reload コマンドを実行して config.yml を読み直して、
/irc connect コマンドを実行してチャンネルへ接続してください。

コマンド

Bot用コマンドは /chatbot です。パーミッションノードは「chatbot.command」です。デフォルトで全てのプレイヤーが実行権限を持っています。
省略形として /bot と /cb が利用できます。


IRC用コマンドは /ircbot です。パーミッションノードは「chatbot.irc.command」です。OPは最初から実行権限を持っています。
省略形として /irc と /ib が利用できます。
各サブコマンドの個別パーミッションは、「chatbot.irc.(サブコマンド名)」です。
例)/irc connect コマンド → chatbot.irc.connect

コンフィグ

設定変更は、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