# Minecraft Scala Plugin Template 🎮 ScalaでSpigotMCプラグインを開発するためのテンプレートです。 ## 特徴 - 🛠️ **Scala + SpigotMC**: ScalaでMinecraftプラグインを開発 - 🐳 **Docker開発環境**: 簡単にテスト用サーバーを起動 - 🔄 **ホットリロード**: プラグインの変更を即座に反映 - 📦 **完全なビルド環境**: sbtでのビルドとパッケージング ## クイックスタート 1. **テンプレートをクローン** ```bash git clone https://github.com/yourusername/minecraft-scala-plugin-template.git cd minecraft-scala-plugin-template ``` 2. **開発サーバーを起動** ```bash ./dev-server.sh start ``` 3. **Minecraftクライアントで接続** - サーバーアドレス: `localhost:25565` - オフラインモードで動作します ## 開発コマンド ```bash # サーバー起動(プラグインも自動ビルド) ./dev-server.sh start # プラグイン再ビルド+サーバー再起動 ./dev-server.sh restart # サーバー停止 ./dev-server.sh stop # ログ確認 ./dev-server.sh logs # Minecraftサーバーコンソールにattach ./dev-server.sh attach # サーバーのbashシェルに接続 ./dev-server.sh console # 完全リビルド ./dev-server.sh rebuild ``` ## プロジェクト構造 ``` minecraft-scala-plugin-template/ ├── src/main/scala/com/example/plugin/ │ └── MinecraftScalaPlugin.scala # メインプラグインクラス ├── src/main/resources/ │ └── plugin.yml # プラグイン設定 ├── build.sbt # sbtビルド設定 ├── docker-compose.yml # Docker設定 ├── Dockerfile # サーバーイメージ ├── dev-server.sh # 開発用スクリプト └── README.md ``` ## サンプル機能 このテンプレートには以下のサンプル機能が含まれています: ### コマンド - `/hello` - 挨拶メッセージを表示 - `/info` - プレイヤー情報を表示 ### イベントハンドラ - プレイヤー参加時のウェルカムメッセージ - プレイヤー退出時のログ出力 ## カスタマイズ ### プラグイン名を変更 1. `build.sbt` の `name` を変更 2. `src/main/resources/plugin.yml` の `name` と `main` クラス名を変更 3. パッケージ名とクラス名を変更 ### 新機能の追加 1. `src/main/scala/com/example/plugin/MinecraftScalaPlugin.scala` を編集 2. 新しいコマンドやイベントハンドラを追加 3. `./dev-server.sh restart` で変更を反映 ## ビルド ### 手動ビルド ```bash sbt clean package ``` ### JAR出力場所 ``` target/scala-2.13/minecraft-scala-plugin_2.13-1.0.0.jar ``` ## 要件 - Docker & Docker Compose - Java 8以上(sbt用) - Minecraft Java Edition(テスト用) ## ライセンス このテンプレートは自由に使用・改変できます。 ## 参考資料 - [SpigotMC API Documentation](https://hub.spigotmc.org/javadocs/spigot/) - [Bukkit Plugin Tutorial](https://bukkit.fandom.com/wiki/Plugin_Tutorial) - [Scala Documentation](https://docs.scala-lang.org/)