Cosnomi

プログラミングをする医学生。物を作ること、自動化すること、今まで知らなかったことを知ることが好き。TypeScript書いたり、Pythonで機械学習したりなど。

Twitter / GitHub / GPG key / Fediverse / My Page
TOP >

マイクラで制作したプラグインの紹介

Mar. 27, 2018ITMinecraft

まえがき

SavaServerという24時間マインクラフトサーバー(追記: 現在は閉鎖中)のために使うプラグインを3つ開発してるので、今回はその紹介をしていきたいと思います。

  1. SavaWebPlugin…SavaWeb(公式サイト)との連携
  2. SavaPvP…PvPのためのログ記録やルーム、チーム管理
  3. SavaEstate…区画整理、土地購入のためのプラグイン

では、1つずつ見ていきましょう。

SavaWebPlugin

このプラグインはSavaWebと連携して様々な小さい機能を提供します。独立した1つのプラグインにするほどではないが、SavaWebとの連携が必要なものを集めています。例えば、次のような機能を含みます。

  • 認証: マインクラフトサーバーにアクセスしてきたユーザーが既にSavaWebで登録済みかを確認します
  • ペナルティ: ユーザーがBANなどのペナルティを受けていた場合、アクセスを拒否します
  • トークン生成: ユーザー登録のために必要な認証トークンを作成し、DBに保存することで、SavaWebからも利用可能な形にします
  • 活動量計算: SavaServer内の様々な活動で得られる活動量を計算し更新します

SavaPvP

これは第二号になります。

PvPの銃はFlan’s Modという本格的な銃Modを導入しています。これにはチーム分けのためのアイテムなども含まれているのですが、SavaWebと連携するというSavaServerのコンセプトを実現するのは難しくなります。

そこで、ゲームルームやチーム分け、勝敗判定やゲームログ記録などの機能をプラグインで行うことにしました。これによって、ゲームログ(キルログやK/Dなどの統計情報も)をSavaWebで閲覧できるようになります。また、メインワールドのどこにいてもコマンドを叩くだけでPvPができるようになりました。

今後、人が増えたらゲームタイプなども増やしたいと思っていますが、どうなんでしょうね..。

SavaEstate

自作プラグイン第三号。土地管理などのプラグインです。

SavaServerでは道路などの公共施設をスタッフが整備し、そこに区画を割り当て、他のプレイヤーはそれを購入し、そこに建築するシステムをとっています。 このシステムのメリットとしては、次のようなメリットがあります。

  • 道路が事前に整備されているので、街並みが綺麗になる
  • どこに建物を建てていいのか、気にする必要がない。気軽に建築できる
  • 土地関係のトラブルが減る
  • WorldGuardが自動設定されるので、荒らし対策にも
  • 購入した土地ではWorldEditが使える

まとめ

Modに比べてBukkitプラグインは操作できる範囲が狭いですが、その分、難易度が格段に低いです。私もJavaを趣味で触ったのは2~3年前だった気がしますが、それでもドキュメントを参照しながら作ることができました。

もちろん、すでに公開されているプラグインに欲しい機能があればそれを使ったほうが賢いのですが、ない場合は自作してみるというのも十分選択肢になりうると思います。


Comments

記事一覧へ