MinecraftサーバのログをSlackに流す

技術ネタ
この記事は約2分で読めます。

## はじめに

自前でマイクラ鯖を建ててマルチプレイをしていると、24 時間出入りできて楽しい。

鯖内のログイン履歴やチャット履歴は自分がログインしてないときでも残る。
これを共有できれば、自分がいない間にあった出来事や鯖にログインしているメンバーの確認などがマイクラを起動しなくても可能になる。
また、ゲーム中にメモした座標などがログアウトしたあとにも残るので大変便利なのだ。

ログを共有するにはチャットサービスの bot にしてしまうのがよい。
ある程度のセキュリティに期待できるし、お気に入り機能や通知機能などが最初からそろっている。
ちょうど鯖メンバー用の Slack チームを作っていたので、今回はそれを利用することにした。

## 実装

Ruby の slack-ruby-client を用いて書いてみた。
まずは gem のインストール。

“`
gem install slack-ruby-client
“`

minecraft_server.jar を設置しているディレクトリと同じ階層に以下のプログラムを設置。

slack のアクセストークンを取得してきて書き換える。アクセストークンの取得方法は例えば以下の記事を参考にするとよい。

joesbar.blog.jp

チャンネル名を書き換えよう。結構な量のログが流れるので、専用のチャンネルを新しく作るのがおススメ。
通知したいチャンネルに bot がいるか確認することを忘れずに。

あとは実行すれば鯖内の入退出や会話、死因や称号の情報が Slack に流れてくる。エラーが疑われる場合は 4 行目をコメントアウトしてデバッグしよう。

## おわりに

そのままの状態だとサーバの警告なども拾ってしまうので、運用する際にはある程度フィルタリングするのがよい。

うちの鯖のメンバーには今のところ好評である。メモ機能としても活躍している。
他の人がプレイしている情報を見るとついつい自分もやりたくなってしまうので、時間を溶かしすぎないようにしなければ。

f:id:salmon2073:20160805235700p:plain

コメント

タイトルとURLをコピーしました