Paperサーバーで新規プレイヤーにマイクラの初期装備を配る方法
新規プレイヤーにだけ初期装備を配るには、プレイヤー参加のトリガーに「初めての参加」という条件を付けて、 装備のアイテム1つにつき「アイテムを渡す」アクションを1つ追加します。このルールは NimBlockのスタジオで組み立てて、Javaを書かずに今あるPaperサーバーで動かせます。 すでにサーバーで遊んだことのあるプレイヤーには配られず、新規プレイヤーには 初参加のときに1回だけ配られます。
初参加時に配るマイクラの初期装備でできること
このガイドで作る初期装備は、石の剣、石のツルハシ、パン16個です。そのあとに、 何を受け取ったかを新規プレイヤーだけに伝えるチャットメッセージが届きます。 プレイヤーがサーバーに初めて参加したときに自動で配られます。入力するコマンドも、 設定する権限も必要ありません。
ここでの「初めて」は、Paperがすでに把握している情報のことです。つまり、 参加した時点でサーバーが一度も保存したことのなかったプレイヤーです。ランタイムは独自のリストも カウンターも持ちません。だから今動かしているサーバーでも使えますが、同じ理由で できないこともいくつかあります。それは下にまとめています。
この手順ではNimBlockのブロックエディターと、別に用意された無料のランタイムを使います。ルールを保存するにはNimBlockアカウントが必要です。動かすには、プラグインのアップロードができるホストで動いている、既存のMinecraft Javaサーバーが必要です。以下の手順はPaper 1.21.11とJava 21を対象にしています。NimBlockでホストしているサーバーである必要はありません。
スタジオで初期装備のルールを作る
- NimBlockで自分のプラグインを開き、新しいプラグインを作ります。エディターには最初から歓迎ルールが入っています。残しても削除してもかまいません。
- ルールから新しいルールをプラグインにドラッグし、名前を初期装備にします。
- 発動条件からプレイヤーが参加を、そのときの枠に入れます。
- 条件からプレイヤーが初参加を、そのもしの枠に入れます。
- アクションからプレイヤーにアイテムを渡すを3回追加します:
STONE_SWORDを数量1、STONE_PICKAXEを数量1、BREADを数量16。 - 最後にプレイヤーにメッセージを送るを追加します。例:ようこそ {player}! 最初の一歩に使える初期装備をどうぞ。
{player}は書いたとおりに残してください。ランタイムがプレイヤー名に置き換えます。 - プラグインを保存します。そのページに表示されるJSONを全部コピーして、
starter-kit.jsonという名前のテキストファイルにUTF-8で保存します。
アイテムはIRON_AXEやCOOKED_BEEFのように、Minecraftでの名前で
書きます。3つのアイテムを自分の初期装備に入れ替えましょう。アイテム1つにつき
アクション1つで、それぞれに数量を指定します。使えるトリガー、条件、アクションは
すべて公開文法に載っています。
今あるPaperサーバーに入れる
- NimBlockランタイムをダウンロードします。サーバーを停止し、ランタイムの
.jarをplugins/の中に直接置いてから、サーバーを起動します。 /pluginsでNimBlockが有効になっているか確認します。読み込みに失敗したときの調べ方は、Paperのプラグイン導入ガイドに書かれています。starter-kit.jsonをplugins/NimBlock/specs/にアップロードします。フォルダー名の大文字はそのままにしてください。フォルダーがなければ先に作ります。- サーバーのオペレーターとして
/nimblock reloadを実行し、次に/nimblock listを実行します。保存したプラグイン名が表示されるはずです。サーバーコンソールでは先頭のスラッシュを付けません。
リロード中にエラーが出たら、テストの前に直してください。存在しないアイテム名は ルールが動いたときにしか見つからないので、最初のテストの前に各アイテムの つづりを確認しましょう。
一度も参加したことのないアカウントでテストする
自分のアカウントはすでにサーバーで遊んでいるので、初期装備は配られません。 それはルールが正しく動いている証拠です。このサーバーに一度も参加したことのない Minecraft Javaアカウント(たとえば友だちのアカウント)でテストするか、新しい ワールドにしたサーバーのコピーでテストしてください。初参加のとき、そのアカウントに 剣、ツルハシ、パン、メッセージが届くはずです。切断して少し待ち、もう一度接続 しても、何も追加で配られないはずです。
ルールを入れる前に参加したプレイヤーは新規プレイヤーではないので、初期装備は 配られません。ルールを読み込んでも、過去の参加がやり直されることはありません。
初参加時の初期装備でできないこと
- サーバーが覚えている限り、1人1回:条件はPaper自身のプレイヤーデータを読みます。新しいワールドを始めると、全員がまた新規プレイヤーになり、もう一度初期装備を受け取ります。あるプレイヤーのデータを削除すると、そのプレイヤーだけがまた新規プレイヤーになり、もう一度初期装備を受け取ります。
- 最初のセッション中はずっと「初めて」:条件は参加した瞬間だけでなく、そのプレイヤーが切断するまでずっと成り立ちます。その間にサーバーが保存しても変わりません。プレイヤーが参加の下に置いたままにしてください。リスポーンなど別のトリガーの下に置くと、最初のセッション中に新規プレイヤーが初期装備を2回受け取ることがあります。
- 毎日の配布、クールダウン、カウンターはなし:ランタイムはイベントに反応するだけで何も覚えないので、「1日1回」や「1人3回まで」といった配り方はできません。
- 普通のアイテムだけ:このアクションで渡せるのはアイテムの種類と数量です。エンチャントや独自の名前は含まれません。
- インベントリがいっぱいのとき:入りきらない分はプレイヤーの足元に落ちます。新規プレイヤーのインベントリはふつう空なので、問題になることはほとんどありません。
ランタイムを入れ直さずに初期装備を変える
スタジオでルールを編集し、新しいバージョンとして保存します。同じ
starter-kit.jsonファイルの中身を新しく保存したJSONに置き換えてから、
/nimblock reloadを実行します。次の新規プレイヤーから新しい初期装備が
配られます。古い初期装備をすでに受け取ったプレイヤーには、何も追加で配られません。
古いファイルと新しいファイルを両方残すと、両方のルールが読み込まれて初期装備が
2つ配られてしまいます。
NimBlockのホスティングを買わなくても、対応している自分のPaperサーバーで ランタイムを使えます。ルールは読めるJSONファイルのままなので、中身を確認したり、 サーバーのバックアップと一緒に保管したりできます。