Skip to content

導入方法

nova27 edited this page Jan 29, 2023 · 5 revisions

CrafterePostプラグインの導入方法を説明します。

動作の仕組み

CrafterePostでは、建築データを取得するためにSpigotサーバー(+機能追加プラグイン)を利用します。
Spigotは、プラグインによる機能追加を可能にした非公式Minecraftサーバーソフトウェアです。
本チュートリアルでは、個人建築を想定してSpigotをローカルサーバーとして利用しますが、外部の複数人と建築する場合は別途ポート開放(ポート転送設定)が必要です。

Spigot APIのおかげで、CrafterePostはMinecraftバージョン互換性問題を気にせずスムーズな開発ができています。
また、依存プラグインのWorldEditProtocolLibの機能もお借りしております。

構成図

Spigotサーバーについて熟知している方

要件

  • Spigot 1.13以上
  • Java 11以上

導入

  1. Releasesから最新のプラグインをダウンロードする。
  2. 依存プラグインであるWorldEditProtocolLibをダウンロードする。
  3. ダウンロードした3つのプラグインを、Spigotサーバーのpluginsフォルダに移動する。

初心者の方

Spigotサーバーの構築及びプラグインの導入が必要です。
Windowsユーザーの方は以下のPowerShellスクリプトを用いることで、自動で作業を行います。
Spigotサーバーが不要になったら、サーバー用フォルダを削除するだけでアンインストールが完了します。

注意

PowerShell実行ポリシーの影響で実行が拒否される場合があります。
事前に以下の手順に従うことで、PC内のps1ファイルを実行できるようになります。

  1. Win + Rを押してファイル名を指定して実行ウィンドウを開く。
  2. powershellと入力し、Ctrl + Shift + Enterで、管理者権限でPowerShellを開く。
  3. Set-ExecutionPolicy RemoteSignedと入力して、エンターキーでコマンドを実行する。

サーバーの構築方法

  1. 任意の場所に任意のフォルダ名でサーバー用フォルダを作成する。
  2. 以下のコードをコピー&ペーストして、ファイル名setup.ps1(拡張子に注意)でサーバー用フォルダに保存する。
    この時、必ず UTF-8(BOM付き) で保存します。 UTF-8 BOM
  3. setup.ps1を右クリック、PowerShell で実行でセットアップを開始する。
  4. 指示に従ってセットアップを進める。

以下のスクリプトでは、導入が簡単なSpigotのフォークPaperMCをセットアップしています。

$DEF_JRE_VER = 17
$CRAPOS_RELEASES = "https://api.github.com/repos/nova-27/CrafterePostPlugin/releases"

$jre_ver = Read-Host "JREのバージョン(デフォルト: ${DEF_JRE_VER}"
if (![bool]$jre_ver) {
    $jre_ver = $DEF_JRE_VER
}
Write-Host "PaperMC対応バージョンはhttps://papermc.io/downloadsからご確認ください"
$mc_ver = ""
while ($mc_ver -eq "") {
    $mc_ver = Read-Host "Minecraftバージョン(例: 1.19.2)"
}
$paper_build = ""
while ($paper_build -eq "") {
    $paper_build = (Read-Host "PaperMCビルド(例: #261)") -replace "#", ""
}
Write-Host "PaperMCの利用にはMinecraftのEULA(https://aka.ms/MinecraftEULA)に同意する必要があります"
$eula = Read-Host "同意しますか?(agree: 同意)"
if ($eula -ne "agree") {
    Write-Host "中止します" -ForegroundColor Red
    exit
}
Set-Content eula.txt "eula=true"


##### TemurinとPaperMC #####
Write-Host "セットアップを開始します" -ForegroundColor Cyan
if ([System.Environment]::Is64BitOperatingSystem) {
    $ARCH = "x64"
} else {
    $ARCH = "x32"
}
Write-Host "アーキテクチャ: ${ARCH}"

Write-Host "Temurinをダウンロード・展開します..."
Invoke-WebRequest "https://api.adoptium.net/v3/binary/latest/${jre_ver}/ga/windows/${ARCH}/jre/hotspot/normal/eclipse" -OutFile temurin.zip
Expand-Archive temurin.zip ./
Get-ChildItem -Directory | Where-Object { $_.Name -match '^jdk-.+-jre$' } | Rename-Item -NewName jre
Remove-Item temurin.zip
Write-Host "完了" -ForegroundColor Green

Write-Host "PaperMCをダウンロードします..."
Invoke-WebRequest "https://api.papermc.io/v2/projects/paper/versions/${mc_ver}/builds/${paper_build}/downloads/paper-${mc_ver}-${paper_build}.jar" -OutFile server.jar
Write-Host "完了" -ForegroundColor Green


##### プラグインダウンロード #####
New-Item "plugins" -ItemType Directory -Force

Write-Host "CrafterePostPluginをダウンロードします..."
$assets_url = (Invoke-RestMethod "${CRAPOS_RELEASES}/latest").assets_url
$crapos_download = (Invoke-RestMethod $assets_url).browser_download_url
Invoke-WebRequest $crapos_download -OutFile plugins\CrafterePostPlugin.jar
Write-Host "完了" -ForegroundColor Green


##### バッチファイル作成 #####
Set-Content "@start.bat" @"
@ECHO OFF
jre\bin\java.exe -Xmx2G -Xms512M -jar server.jar nogui
"@


##### 終了 #####
Write-Host "セットアップが完了しました" -ForegroundColor Green
Write-Host "WorldEditとProtocolLibは手動でダウンロードして、pluginsフォルダに導入してください。" -ForegroundColor Yellow
Write-Host "今後は@start.batをクリックすることでサーバーを起動できます"
Write-Host "サーバーの停止は、サーバーを開始して表示された黒画面(コマンドプロンプト)でstopコマンドを実行することによって正常終了できます"
Write-Host "サーバーへの参加は、サーバーアドレス「localhost」で接続できます"
Read-Host "Enterキーでセットアップを終了します..."

例: Minecraft 1.19.2のサーバーを構築したい場合

JREのバージョン(デフォルト: 17): 17
PaperMC対応バージョンはhttps://papermc.io/downloadsからご確認ください
Minecraftバージョン(例: 1.19.2): 1.19.2
PaperMCビルド(例: #261): #263
PaperMCの利用にはMinecraftのEULA(https://aka.ms/MinecraftEULA)に同意する必要があります
同意しますか?(agree: 同意): agree

PaperMCビルドhttps://papermc.io/downloadsから最新のビルド番号を確認してください。

WorldEditとProtocolLibの導入

依存プラグインであるWorldEditとProtocolLibは手動で導入する必要があります。

  1. WorldEditProtocolLibをダウンロードする。
  2. サーバー用フォルダ内のpluginsフォルダにダウンロードした2つのjarをコピーする。