最初に、Java Development Kit (JDK) 8をインストールする必要があります。 AdoptOpenJDK 1.8 のインストールを推奨します。
sbtの公式ページ に従ってsbtのインストールをします。
sbtがコマンドラインで使える状態でsbt assembly
を実行すると、target/build
フォルダにjarが出力されます。
IntelliJ IDEAを開発に使用している場合、プロジェクトをsbtプロジェクトとして読み込み、
sbtタブからSeichiAssist -> SeichiAssist -> sbt tasks -> assemblyを実行すればtarget/build
フォルダにjarが出力されます。
docker
、docker-compose
及びsbt
が実行可能であるとします。
Linux環境では、./prepare-docker.sh
、Windowsではprepare-docker.bat
を実行することで
デバッグ用のBungeecord + Spigot環境を構築することができます。
初回起動時にはSpigotのビルドに時間がかかります。
さらに、Minecraft EULA に同意する必要があるため実行が中断されます。
EULAに同意しデバッグを続行する場合、./docker/spigot/serverfiles/eula.txt
を参照し、
eula=false
を eula=true
に書き換えてください。
サーバーやDB等を停止する場合、 docker-compose down
を実行してください。
なお、SeichiAssistがJava 8以外でコンパイルされた場合は、実行時にエラーとなります。必ず揃えるようにしてください。
DockerマシンのIPアドレス(Linux等ならlocalhost
)をDOCKER_IP
とします。
docker
により各サービスが起動したら、DOCKER_IP
へとMinecraftを接続することができます。
また、DOCKER_IP:8080
へとWebブラウザでアクセスすることで、phpMyAdminを介してデータベースを操作することができます。
op
やコマンド実行等などでSpigotのコンソールにアクセスする必要がある場合、
spigota
またはspigotb
へのコンテナ名とともに docker attach [CONTAINER_NAME]
を実行してください。
コンテナ名は docker ps
を実行すると seichiassist_spigotb_1
のような形式で表示されます。
コンソールからは Ctrl+C
で抜けることができます(サーバーは停止されません)。
初回起動後、DBが作成されますが、ガチャ景品およびMineStackに格納可能なガチャ景品のデータがありません。その為、以下SQLdumpをインポートしてください。
VSCode + WSLで開発している場合や、純粋にビルドして立ち上げたいだけの場合はランタイムの導入のコストが高いので、以下の方法を使うと便利です。
$ rm -rf target/build # 再ビルドしたいなら既存のターゲットは削除
$ docker run --rm -it -v `pwd`:/app ghcr.io/giganticminecraft/seichiassist-builder:1a64049 sh -c "cd /app && sbt assembly"
$ sudo chown -R `whoami` target/build # docker上でsbtを実行するとrootになってしまうため権限を変える
$ cp -n docker/spigot/eula.txt docker/spigot/serverfiles/eula.txt || true
$ docker-compose up --build -d
protocol以下のファイルはgit clone
では入手することができません。以下のどちらかのコマンドを実行してください:
git clone --recursive
git submodule update --init --recursive
publicなメソッドについては、ドキュメンテーションを記載するよう心がけてください。 その他は各自が必要だと判断した場合のみ記載してください。
1コミットあたりの情報は最小限としてください。 コミットメッセージはコンベンショナルコミットを採用することを推奨しています。
Git-flow を簡略化したものを使用します。 新規に機能を開発する際は develop ブランチから <任意の文字列> ブランチを作り、そこで作業してください。 開発が終了したらdevelopブランチにマージします。 masterブランチは本番環境に反映されます。 本番環境を更新するタイミングでdevelopブランチをmasterブランチにマージします。
フォーマットにはscalafmt、lintにはscalafixを利用しています。
コード品質を最低限保つため、PRが受け入れられるにはscalafmtとscalafixの両方のチェックが通る必要があります。そのため、
scalafix
を使う
Editor
> Code Style
> Scala
で
Formatter
を Scalafmt
に変更Reformat on file save
にチェックを付けるsbt
コンソールで scalafixAll
と scalafmtAll
を実行するようにお願いします。
play-debug.seichi.click
に接続し、T
キーでチャットを開き、/server deb112
と入力してEnter
を押すとアクセスできます。develop
または hotfix-*
からのPull Requestによって行ってください。
また、 develop
からのリリース用 Pull Request は create_new_release
ワークフローを実行することで作成してください(build.sbt
の自動更新などが行われます)。このプラグインは、Apache 2.0ライセンスで配布されている以下の製作物が含まれています。