スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PocketMine-MP用プラグインの作り方
何度か僕のブログでも取り上げたPocketMine-MPですが、今回はそのプラグインの作り方の説明をさせて頂きます。

PHPについての知識が多少必要になりますが、なるべくプログラミングについて知らない方でも分かるよう書いてみるので、気軽に見ていってください。
僕もプログラミングに詳しい方(@MinecraterJPN)に教えていただき、プログラミング知識ゼロのところから数日で簡単なプラグインを作れるようになりました。

まえがき


日本はPocketMine-MPプラグイン開発者の数がとても少ないです。僕が知っている限りですとわずか3人しかいません。PocketMine-MPは素晴らしいツールで、Minecraft PE本体だけではできない様々なことが可能で将来性もあるのに、なぜこんなに少ないのか・・・。少しでも多くの人に興味を持ってもらいたいが為に今回はこの記事を書きました。プラグイン作りに興味のある方は是非さんこうにしてみてください。

下準備


開発を始めるにあたって一番面倒で億劫な「準備」について説明していきます。面倒なのでちゃちゃっと終わらせてしまいましょう。

まずPocketMine-MP本体は必須です。これが無いと開発もクソもありません。
公式サイトからインストーラーをダウンロードし適当な場所にインストールしてください。僕はCドライブないのProgram Files内にインストールして使っています。

次にプラグインを作るにあたって必要なプログラミング用のエディタです。これは人の好みにもよりますが、僕は「eclipse」というツールを使っています。メモ帳でいいという方はメモ帳でも構いません。僕も最初の内はずっとAndroidのメモ帳でした。
eclipseの導入方法は以下のサイトを参考にしてください。

プラグインの雛型を用意する


ツール等の準備が整ったところでプラグインの雛型を用意します。雛型というのはテンプレート、プラグインの定型にあたる物のことです。下のコードがそれになります。



これをエディタなりメモ帳なりに丸々コピーしてください。これで雛型の用意は終わりです。
これからのプラグイン作りは基本全てこの定型文から作り始め、各所にプログラム書き加えていく形になります。

ちなみに今この雛型だけの状態でも、「OOO.php」という名前で保存してPokcetMine-MP内のPluginsフォルダにコピーしてやればプラグインとしては認識されます。もちろんまだ何も要素を書き加えていないのでサーバーには何の変化も起きませんが。

とりあえずプラグイン作ってみる!


じゃあ何でもいいので適当に一つプラグインを作ってみます。「/balus」というコマンドを実行したらサーバー内にいるSteveさんが死亡するプラグインでも作ってみますか。

とりあえず下のコードをコピーしてください。

これはPocketMine-MPにコマンドを追加するコードになります。今後書き換える必要がある部分は3つです。"balus"の部分がコマンド名にあたり、"kills a players"がそのコマンドについての簡単な説明を記入する部分です。この部分は主に、コマンド一覧を表示する/helpコマンドを使った際に表示されます。最後に"commandHandler"ですが、これはそのコマンドが実行された時に実行する関数名を記述します。今回は変える必要はありません。関数についても後でもうちょっと詳しく説明します。

ではそのコピーしたコードを、雛型の中に"public function init(){ }"と書かれている部分があると思うので、そのかっこの間に貼り付けてください。こんな感じです。

この"public function init(){ }"内に記述されたプログラムは、PocketMine-MP起動時に実行されるようになっているので、こうする事によりPocketMine-MP起動時に"/balus"コマンドが登録されるようになります。


"balus"コマンドの登録については終わったので、今度はこのコマンドを実行したときどうするか、つまりはコマンドの中身を書いていきます。今回の場合だと「サーバーにいるSteveさんをkillする」がその中身です。

コードを書いていくと言ったものの、まだそのコードを書く場所を用意していないので用意してやりましょう。下の枠組みを"public function __destruct(){ }"と書かれている行の下に挿入してください。

こうなります。

さっき"public function init(){ }"の中にコマンド登録の処理を書いたように、今回のコマンドの中身の処理についてもこの"public function commandHandler($command, $params, $issuer){ }"の枠組みの中に書いていく必要があります。

コマンド登録のコードを書いた際に関数名として"commandHandler"を指定していましたが、その関数というのが今貼り付けたコードになります。関数というのは言わばプログラムのコードをひとまとめにしたものです。/balusコマンドにはこのcommandHandler関数を実行するように登録したので、/balusコマンドが実行されたらcommandHandler関数の枠組みの中に書かれたコードが実行されるわけです。よって/balusコマンドの中身の処理はこの枠組みの中に書き加えていく必要があります。

さっきでてきたinitの枠組みも同じように関数です。ただ、initと今回のcommandHandlerの違いとして、init()とcommandHandler($command, $params, $issuer)のように関数名の横のかっこ内に何やら書かれていますが、今回は気にしなくても構いません。

とりあえずコードは書かずに、
関連記事
スポンサーサイト

Pagination

Trackback

Trackback URL

http://mattyaphone.blog.fc2.com/tb.php/103-1421e4dc

Comment

waawaa

これ、記事が途中で途切れてませんか…?続き、読みたいです
  • URL
  • 2013/09/10 08:35

マツノン

コマンドの対象を、看板をタップした人にしたいのですがどうしたらいいですか??
作ってみたいです。
  • URL
  • 2013/09/13 01:50

あまやとり

続きを読みたいです!
  • URL
  • 2013/09/16 10:50

このコメントは管理者の承認待ちです
  • 2014/01/07 02:51

このコメントは管理者の承認待ちです
  • 2014/01/25 21:01

X-project

おまっちゃお様のプラグインはいつもご愛用させて頂いています。僕もプラグインを作ってみたいです…根気はいくらでもあります…たかにぃさんやおまっちゃおさんのように、自作プラグインを是非とも作りたいのでのでどうか記事の続きを書いて下さい。お願いしますm(_ _)m
  • URL
  • 2014/02/27 01:08
  • Edit

このコメントは管理者の承認待ちです
  • 2015/06/05 14:45

Post Your Comment

コメント:登録フォーム
公開設定

Utility

Profile

Author:おまっちゃお
ブログ開設日:2011/12/31
本ブログの記事の内容を参考にして起こった如何なるトラブルに対しても管理人は一切の責任を取りません。全て自己責任でお願いします。

CATEGORY

Search

リポジトリ

http://dl.dropbox.com/u/35617758/apt/

ブロとも申請フォーム

アクセス解析

Powered By FC2ブログ

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。