Minecraft から SIM を操作できたらおもしろそうだった
この記事は、SORACOMのSoftware Design誌巻頭特集記念リレーブログ 5/12分の記事です。
今回は、Go と Scratch と仙台がとても大好きな砂金(いさご)が書かせていただきます。
記事の内容は、ソラコム小熊さんが仙台にいらっしゃるということで思いつきで作ったので、SIMの情報を表示する機能しか実装されておりません。
そもそもどんなものかというと、Minecraft から SIM を有効にしたり、無効にしたり、破棄したりできたらおもしろそうだなぁと思い、作り始めたものでした。
このアイディアのベースになっているのは、MinecraftからDocker コンテナを操作するツールの dockercraft です。
詳しくは紹介記事やREADMEがあるので、参考にしていただければと思います。
なお、前提条件として、ご使用になるOSでコンソール(コマンドラインなど)を使って、コマンドを実行してファイルを操作したり、情報を得たりする程度のスキルはあるものとします。
概要
使い方の前に作成したツールの概要から、名前をSlackraft(当初、SlackとDockerを組み合わせるツールとして作成していたため)といいます。
Docker上でCuberiteのサーバーが動作しており、CuberiteのプラグインからSORACOM APIプロキシ経由でSoracomプラットフォームの情報と連携しています。
Cuberite プラグインは、Mincraftが起動したときやステータスが変更されたときにSORACOM APIプロキシにステータス変更の情報を送り、SORACOM API を使ってSIMを操作します。
SORACOM API プロキシは、Dockerコンテナ内でローカルサーバーとして動作しており、データが送られるたびにSoracom API を使って、Soracomプラットフォームをやり取りします。
使い方
- Minecraftをインストールします
- Dockerをインストールします
- GitHubからslackraftのリポジトリを取得します
- Dockerコンテナを起動します
- MinecraftにMultiplayer用のサーバーを追加します
Minecraftのインストール
公式サイト からMinecraftを購入し、インストールしてください。
Dockerのインストール
公式サイトから使用するOSのDockerをダウンロードし、インストールしてください。 詳細なインストール手順は、Get Started with Docker for MacやGet Started with Docker for WIndowsなどを参考におねがいします。
Slackraftリポジトリの取得
Git インストール済みの場合
Git をインストール済みの場合は、以下のコマンドを順に実行することでリポジトリを取得することができます。
$ git clone https://github.com/135yshr/slackcraft.git $ cd slackraft $ git checkout -b sora1.1 refs/tags/sora1.1 $ docker build -t 135yshr/slackraft .
Git をインストールしていない場合
Git がインストールされていない場合は、ここからZIPファイルを取得して任意のディレクトリに展開してください。
- Slackraft の Githubにアクセスします
- Download ZIP ボタンをクリックして、リポジトリをダウンロードします
- ダウンロードしたZipファイルを任意のディレクトリに展開します
Docker コンテナの起動
以下のコマンドを実行して、Slackraft のコンテナを起動します。
SORACOM_EMAIL
とSORACOM_PASSWORD
には、SORACOM ユーザーコンソールで使用するメールアドレスとパスワードを設定してください。
$ docker run -t -i -d -p 25565:25565 \ -e SORACOM_EMAIL=xxxx@example.com \ -e SORACOM_PASSWORD=xxxxx \ 135yshr/slackraft
Multiplayer用サーバーの追加
いよいよ、MinecraftとSlackraftを連携させます。開始前の注意点としては、使用するMinecraft のバージョンを 1.8.x にすることです。1.9 以降のバージョンだとプロトコルが変更になっているため、Slackraft サーバーを見つけることができません。
Minecraftを起動し、Multiplayer を選択してください。
Add server を選択します
Server Address にdocker machine のIPアドレスを入力し、Doneを選択します
docker-machine ip default
で "default" という名前のdocker machine のIPアドレスを調べることができます3.で追加したMultiplayer サーバーを選択します
成功すると…
SIM の数だけ蔵(コンテナ)が表示されます
ただただSIMの情報を見るだけの機能のみなので、おもしろみにかけますが、実際にSIMを破棄できるところまでは、おいおい実装していこうと思います。(お手伝いいただける方がおりましたら、Twitterや、Githubを通してご連絡いただけるとうれしいです。)
他の方々のようにコアな情報は載せていないのですが、お楽しみいただけましたでしょうか? 全く別の宣伝になってしまいますが、今週の土曜日(2016年5月14日)に東北大学のカタールサイエンスキャンパスをお借りして、年に一度の Scratch 祭り Scratch Day 2016 in Sendai を開催します。近くの方がいらっしゃればぜひとも遊びにきてください。Scratch の体験会だけでなく、littleBits や 3Dプリンタ、LEGO MINDSTORMS で遊ぶブースも用意しておきます。