ItemsAdder
概要
ItemsAdder を使うと、リソースパックを通じて、カスタムブロック、家具、アイテム、作物、HUD、エンティティをサーバーに追加できます。この拡張機能は、それらすべてを TypeWriter で使えるようにします。クエストでカスタム鉱石を壊させたり、カスタムランプを置かせたりでき、ダイアログでプレイヤーが家具に座ったことに反応でき、criteria でプレイヤーがカスタムの剣を持っているかを確認できます。
すべては、ItemsAdder の名前空間付き ID(namespace:id、たとえば my_pack:ruby_ore)を使います。ここでコンテンツが作られることはありません。ブロック、家具、アイテムは、これまでどおり ItemsAdder で定義し、その ID を TypeWriter のエントリで使います。
機能
- ブロックと家具のイベント — カスタムブロックや家具が、壊された、置かれた、操作されたときのトリガー。
- 設置前イベント — 家具がスポーンする直前に発火するトリガー。
- カスタムエンティティの死亡 — プレイヤーが ItemsAdder のカスタムエンティティを倒したときのトリガー。
- カウントする目標 — カスタムブロックや家具の破壊や設置を、クエストの目標にできます。
- アイテムのインベントリツール — ItemsAdder のアイテムを与えたり削除したりし、拾う、捨てる、消費するに反応します。
- アイテムとワールドのファクト — 手に持っているアイテム、アイテム数、使用回数と残りの耐久値、見ている、または立っているブロック、見ている家具。
- 作物と HUD のファクト — 作物の成長段階、作物が熟しているか、指定した名前の HUD が表示されているか。
- 変数 — 手に持っているアイテム、ブロック、家具の ID とプロパティ、フォント画像のグリフ、レジストリの一覧。あらゆるテキストでそのまま使えます。
- サウンドエントリ — TypeWriter がサウンドを求めるあらゆる場所で、ItemsAdder のサウンド ID を使えます。
インストール
- ItemsAdder をインストールし、リソースパックを生成させます。これがないと、この拡張機能は読み込まれません。
- TypeWriter の Quest と Basic の拡張機能がインストールされていることを確認します。
- ストアから拡張機能をダウンロードし(上のパネルのボタンを参照)、JAR を
plugins/Typewriter/extensions/に置きます。 - サーバーを再起動します。
はじめに
この手順では、プレイヤーにカスタム鉱石ブロックを 3 つ壊させるクエストを作ります。
- Web パネルで、Quest 拡張機能を使ってクエストを作成し、進行状況を保存するファクトを作ります(永続ファクトが適しています)。
- manifest ページで、Break Block 目標を追加します。
questに自分のクエストを、factに進行状況のファクトを設定します。itemにブロック ID(たとえばmy_pack:ruby_ore)を、amountに3を設定します。任意のカスタムブロックを数えるには、itemを空にします。displayに、クエストトラッカーに表示する行(たとえばMine ruby ore)を設定します。進行状況の(1/3)は自動的に追加されます。- 任意:
onCompleteを、報酬を与えるシーケンスにリンクします。たとえば、Give Item でitemIdをmy_pack:ruby_pendantにします。 - Publish し、クエストを開始して、ブロックを壊します。
カウントではなく、1 回だけ反応したい場合は、イベントを使います。シーケンスページに On Custom Block Break エントリを追加し、blockId を入力して、その triggers を、実行したいエントリにリンクします。
ItemsAdder が読み込んでいる内容は、Registry IDs 変数、またはゲーム内の ItemsAdder のコマンドで確認でき、正確な名前空間付き ID をコピーできます。
仕組み
イベントは、何が起きたかについてのデータを持っています。トリガーされたエントリは、ブロックや家具の ID とその位置、使われたクリック(ブロックのインタラクトの場合)、手に持っているアイテムを読み取れます。
目標は、各位置をプレイヤーごとに 1 回だけカウントします。同じ場所で同じブロックを再び壊したり置いたりしても、カウントは増えません。カウントされるのは、プレイヤーがリンクされたクエストをアクティブにしている間だけです。キャンセルされた行動(たとえば保護されたリージョンでのもの)は、カウントされず、イベントも発火しません。
設定
クエストトラッカーの目標の行は、TypeWriter の 2 つのスニペットから作られ、TypeWriter のスニペットファイルで変更できます。
| スニペット | デフォルト |
|---|---|
advancedQuest.display | <display> <dark_gray>(<gray><current><dark_gray>/<gray><required><dark_gray>) |
advancedQuest.completed | <green>✔</green> <st><display></st> <dark_gray>(<gray><current><dark_gray>/<gray><required><dark_gray>) |
エントリ
35 件のエントリー(拡張機能のソースから生成)。
アクション2
- Itemsadder Give Item ActionGive an ItemsAdder item to the player
- Itemsadder Remove Item ActionRemove an ItemsAdder item from the player
イベント11
- Itemsadder on Item Consume EventTriggers when the player consumes an ItemsAdder item
- Itemsadder on Item Drop EventTriggers when the player drops an ItemsAdder item
- Itemsadder on Item Pickup EventTriggers when the player picks up an ItemsAdder item
- On Custom Entity Death EventTriggers when a custom entity is killed by the player
- On Customblock Break EventTriggers when a custom block is broken
- On Customblock Interact EventTriggers when a custom block is interacted with
- On Customblock Place EventTriggers when a custom block is placed
- On Furniture Break EventTriggers when a furniture is broken
- On Furniture Interact EventTriggers when a furniture is interacted with
- On Furniture Place EventTriggers when a furniture is placed
- On Furniture Pre Place EventTriggers just before a furniture is placed
目標4
- Break Customblock ObjectiveAn objective to break blocks
- Break Furniture ObjectiveAn objective to break furniture
- Place Customblock ObjectiveAn objective to place blocks
- Place Furniture ObjectiveAn objective to place furniture
ファクト10
- Itemsadder Crop Age FactGrowth stage of the ItemsAdder crop the player is looking at
- Itemsadder Crop Fully Grown FactWhether the ItemsAdder crop the player is looking at is ripe
- Itemsadder Holding Item FactWhether the player is holding an ItemsAdder item
- Itemsadder HUD Visible FactWhether a named ItemsAdder HUD is visible to the player
- Itemsadder Item Count FactHow many of an ItemsAdder item the player carries
- Itemsadder Item Durability FactCustom durability left on the held ItemsAdder item
- Itemsadder Item Usages FactUses left on the held ItemsAdder item
- Itemsadder Looking at Block FactWhether the player is looking at an ItemsAdder block
- Itemsadder Looking at Furniture FactWhether the player is looking at ItemsAdder furniture
- Itemsadder Standing on Block FactWhether the player is standing on an ItemsAdder block
変数7
- Itemsadder Font Image VariableThe characters that render an ItemsAdder font image
- Itemsadder Item in Hand ID VariableThe ItemsAdder ID of the item the player holds
- Itemsadder Item Property VariableA property of the ItemsAdder item the player holds
- Itemsadder Looking at Block ID VariableThe ItemsAdder ID of the block the player is looking at
- Itemsadder Looking at Furniture ID VariableThe ItemsAdder ID of the furniture the player is looking at
- Itemsadder Registry Ids VariableThe list of IDs ItemsAdder has loaded
- Itemsadder Standing on Block ID VariableThe ItemsAdder ID of the block the player stands on
サウンド1
- Itemsadder SoundItemsAdder Sound
トラブルシューティング
拡張機能がパネルに表示されない。 ItemsAdder がインストールされていないか、有効になっていません。すべてのエントリが ItemsAdder の API を呼び出すため、プラグインがないと拡張機能は読み込まれません。
イベントがまったく発火しない。 ID を確認してください。ID だけではなく、完全な namespace:id でなければなりません。空の ID はすべてに一致します。location を入力した場合は、その正確なブロック位置だけが一致します。別のプラグイン(たとえば保護プラグイン)によってキャンセルされたイベントは、無視されます。
目標が進まない。 プレイヤーがリンクされたクエストをアクティブにしていて、目標に fact が設定されている必要があります。同じブロック位置は、プレイヤーごとに 1 回しかカウントされません。
ファクトが常に 0 を返す。 手に持っているアイテムやブロックが、ItemsAdder のものではありません。ブロックを見るファクトは、range ブロック(デフォルトは 5)以内の最初のブロックだけをチェックします。使用回数と耐久値のファクトは、アイテムに使用回数やカスタムの耐久値がない場合、0 を返します。
Registry IDs 変数が空になる。 ItemsAdder は、バックグラウンドでコンテンツを読み込みます。変数は、ItemsAdder がアイテムの読み込み完了を通知するまで何も返さないため、起動中には読み取らないでください。
Give Item が何も与えない。 itemId が ItemsAdder に認識されていないため、アイテムが作られず、何も与えられません。アクションは 0 個与えたと報告します。入りきらない分は、dropOverflow がオフでない限り、プレイヤーの足元にドロップされます。
HUD のファクトが常に 0 になる。 HUD の ID が ItemsAdder に存在し、プレイヤーがそれを持っている必要があります。ItemsAdder は HUD を一覧表示できないため、ファクトは、指定した 1 つだけをチェックします。
関連する拡張機能
- Nexo と Craft Engine — 他のカスタムコンテンツプラグイン向けの、同じ連携。