メインコンテンツまでスキップ

Enchantment Creator

70 種類以上の既製エフェクト、本、戦利品、取引を備えたカスタムエンチャント。追加プラグインは不要です。

無料v0.11RPG と成長
必要TypeWriter0.9Paper1.21+Basic extension

概要​

Enchantment Creator は、TypeWriter の Web パネルだけで定義できる本物のエンチャントをサーバーに追加します。エンチャントは Minecraft 自身のエンチャントレジストリの typewriter 名前空間に登録されるため、リソースパックや追加プラグインがなくても、バニラのエンチャントと同じようにアイテム、金床、エンチャントテーブルに表示されます。

エンチャントは、デフィニションエントリー(名前、色、対応アイテム、最大レベル、コスト、有効スロット)で記述し、その後、動作を与えます。方法は 2 つあります。標準デフィニションは、エンチャントされたアイテムを装備または手に持っている間、TypeWriter のトリガーを実行します。カスタムデフィニションはメカニクスを列挙し、それぞれがゲームイベント(攻撃、ブロック破壊、弓の発射、落下ダメージなど)に反応してアクションを実行します。エクステンションには 70 種類以上の既成のアクションエントリー(ライフスティール、鉱脈採掘、追尾矢、凍結の防具など)が付属しており、メカニクスに組み込んで使えます。

機能​

  • 本物のエンチャント — サーバーのエンチャントレジストリに登録され、色付きの名前、最大レベル、金床コスト、ウェイト、エンチャントテーブルのコストを設定できます。
  • 2 種類のデフィニション — トリガーベース(enchantment_definition)またはメカニクスベース(custom_enchantment_definition)。
  • 16 種類のゲームイベント — 攻撃、防御、ブロック破壊、弓の発射、飛び道具の命中、落下ダメージ、アイテムのダメージ、防具の装備、移動、スニーク、スプリントなど。
  • 70 種類以上の既成エフェクト — 防具、弓、戦闘、ツール、特殊アクション。それぞれ専用のフィールドがあります。
  • エンチャント本 — アクションまたはコマンドから、カスタムの名前とロア付きの本を付与できます。
  • ワールドとの統合 — 本は、生成されるルートチェスト(treasureChance)や司書の取引(tradeChance)に登場します。
  • エンチャントテーブルと金床 — カスタムエンチャントをエンチャントテーブルで提示し、対応アイテムに限定し、金床で排他的にすることができます。
  • バニラのブラックリスト — 選択したバニラのエンチャントをエンチャントテーブルから除外します。
  • メカニクスごとの確率とレベル — メカニクスを一定の確率でのみ、または特定のエンチャントレベルでのみ実行します。
  • クライアント側のパーティクル — プレイヤーにだけ表示されるパーティクルアクション。

インストール​

  1. Paper サーバー 1.21 以降と Java 21 を使用します。エクステンションはサーバーのレジストリを通じてエンチャントを構築するため、古いバージョンでは動作しません。
  2. TypeWriter の Basic エクステンションがインストールされていることを確認します(TypeWriter のドキュメントを参照)。
  3. Enchantment Creator の JAR を plugins/Typewriter/extensions/ に配置し、サーバーを再起動します。

他のプラグインは必要ありません。

はじめに​

攻撃のたびに装備者を回復する、剣用の「Vampiric Strike」エンチャントを作成します。

  1. TypeWriter の Web パネルでマニフェストページを開き、Custom Enchantment Definition を追加します。
  2. name を Vampiric Strike、displayName を Vampiric Strike、nameColor を dark_red、maxLevel を 3 に設定し、supportedItems に剣の素材を追加します。
  3. シーケンスページに Lifesteal アクションエントリーを追加し、healPercentage を 0.2 に設定します。
  4. デフィニションに戻り、mechanics にメカニクスを追加します。event を PLAYER_ATTACK に設定し、actions で Lifesteal エントリーを選択します。
  5. Give Enchantment Book アクションを追加し、customEnchantment で作成したデフィニションを選択して、level を設定します。Publish します。
  6. アクションをトリガーして本を入手するか、Enchantment Command Manifest を追加した上で /enchantcreator give <player> Vampiric_Strike 2 を実行します。金床で本を剣に組み合わせ、モブを攻撃してみましょう。
ヒント

エフェクトは、エンチャントレベルに応じて自動的に強くなることはありません。レベル 3 を強くするには、runOnLevel を 1、2、3 に設定した複数のメカニクスを追加し、それぞれ異なる値のアクションを実行させます。runOnLevel が 0 の場合は、すべてのレベルが対象です。

仕組み​

エクステンションは、オンラインの全プレイヤーを 5 tick(0.25 秒)ごとにチェックし、どのエンチャントを使用しているかを調べます。対象となるのはメインハンド、オフハンド、防具のみで、素材が supportedItems に含まれているアイテムに限られます。見つかった中で最も高いレベルが使用されます。そのため、アイテムを装備してからエフェクトが始まるまでに、わずかな遅延が生じることがあります。

2 種類のデフィニションは、動作が異なります。

  • 標準デフィニション(enchantment_definition)は、現在のレベルの activeTriggers を実行します。cooldownEnabled がオンの場合、エンチャントが有効な間は cooldown ごとに再実行され、オフの場合は、有効になったときに 1 回だけ実行されます。inactiveTriggers は、無効になったときに実行されます。criteria を満たしている必要があります。
  • カスタムデフィニション(custom_enchantment_definition)は、対応するゲームイベントが発生したときに、メカニクスを実行します。

アクションエントリーは、自分を発動させたゲームイベントを読み取ります。アクションは、それが想定しているイベントのメカニクスで使われたときにのみ機能します(たとえば、Vein Miner は BLOCK_BREAK でのみ動作します)。

エンチャントイベント​

メカニクスの event は、次のいずれかです。

イベント発火するタイミング
PLAYER_ATTACKプレイヤーがエンティティを直接攻撃したとき。
PLAYER_DEFENDプレイヤーがエンティティからダメージを受けたとき。
SHIELD_BLOCKプレイヤーが盾でガード中に攻撃を受けたとき。
BLOCK_BREAKプレイヤーがブロックを破壊したとき。
BOW_SHOOTプレイヤーが弓またはクロスボウを撃ったとき。
PROJECTILE_HITプレイヤーが撃った飛び道具が何かに命中したとき。
ITEM_CONSUMEプレイヤーが飲食したとき。
PLAYER_DEATHプレイヤーが死亡したとき。
PLAYER_INTERACTプレイヤーが右クリックまたは左クリックしたとき。
ARMOR_EQUIPプレイヤーが防具を装備または外したとき。
ITEM_DAMAGEアイテムの耐久値が減ったとき。
FALL_DAMAGEプレイヤーが落下ダメージを受けたとき。
ENVIRONMENTAL_DAMAGEプレイヤーがエンティティ以外によるダメージを受けたとき(落下ダメージでも発火します)。
PLAYER_MOVEプレイヤーが別のブロックに移動したとき(4 tick ごとに判定)。
SNEAKプレイヤーがスニークを始めたとき。
SPRINTプレイヤーがスプリントを始めたとき。
注記

PLAYER_ATTACK は、プレイヤーが直接のダメージ源であるとき、つまり近接攻撃のときに発火します。矢によるダメージは矢が与えるものなので、現在のバージョンでは PLAYER_ATTACK は発火しません。そのため、ダメージイベントを読み取る矢のアクション(下記で明記)は、直接命中にのみ作用します。

既成アクション​

すべてのアクションエントリーは、メカニクスの中(actions)や、任意のシーケンスから使用します。それぞれ標準の criteria、modifiers、triggers フィールドと、専用のフィールドを持ちます。詳細はエントリーのページを参照してください。「イベント」列は、そのアクションにメカニクスのどの event が必要かを示しています。

グループアクションイベント
戦闘Armor Pierce, Beheading, Bleed, Blindness Strike, Cleave, Disarm, Executioner, Freeze Strike, Lifesteal, Lightning Strike, Poison Strike, Silence, Vampiric Aura, Wither StrikePLAYER_ATTACK
防具(被弾時)Deflect, Enlightened Armor, Evasion, Frozen Armor, Molten Armor, Regeneration Aura, Resistance Aura, Thorns Advanced, Toxic Aura, Voodoo Armor, GearingPLAYER_DEFEND
防具(ダメージ)Angel WingsFALL_DAMAGE
防具(ダメージ)Implosion Armor, Curse of Vulnerability任意のダメージイベント(PLAYER_DEFEND, FALL_DAMAGE, ENVIRONMENTAL_DAMAGE)
防具(装備)Anti Knockback, Health BoostARMOR_EQUIP
防具(耐久)Hardened ArmorITEM_DAMAGE
弓(発射)Homing Arrow, Volley ArrowBOW_SHOOT
弓(着弾)Explosive Arrow, Teleport ArrowPROJECTILE_HIT
弓(ダメージ)Ender Arrow, Healing Arrow, Lightning Arrow, Piercing Shot, Pull Arrow, Push Arrow, Sniper Arrow, Venom Arrow, Web Arrow, Wither ArrowPLAYER_ATTACK(直接命中のみ。注記を参照)
ツールArea Miner, Auto Smelt, Experience Boost, Haste, Indestructible, Magnet, Oxygenate, Spawners Silk Touch, Telepathy, Timber, Treasure Hunter, Vein MinerBLOCK_BREAK
ツールBedrock Breaker, Green Thumb, Night VisionPLAYER_INTERACT
ツールAgricultural HarvestBLOCK_BREAK。壊したブロックの周囲(最大 radius 8)の熟した作物を収穫します
特殊Aquatic Speed, Feeder, Lava WalkerPLAYER_MOVE
特殊Elytra Boost, LaunchPLAYER_INTERACT
特殊Curse of SluggishnessPLAYER_ATTACK
特殊Elytra ShieldENVIRONMENTAL_DAMAGE
特殊SoulboundPLAYER_DEATH
ユーティリティClient Particle Effect, Give Enchantment Book任意

コマンド​

コマンドは、作成する Enchantment Command Manifest エントリーです。名前、パーミッション、メッセージはエントリーのフィールドで、ここにはデフォルト値を示しています。

コマンド説明
/enchantcreator give <player> <enchant> [level]オンラインのプレイヤーにエンチャント本を付与します。<enchant> はエントリーの name または displayName で、スペースはアンダースコアに置き換えます。レベルのデフォルトは 1 です。

パーミッション​

パーミッション許可される内容
enchantcreator.admin/enchantcreator give(エントリーの adminPermission フィールド)。

エントリー​

75 件のエントリー(拡張機能のソースから生成)。

アクション71
コマンド1
マニフェスト3

トラブルシューティング​

エフェクトが何も起こさない。 アクションは、メカニクスの event に一致している必要があります(上の表を参照)。ブロック破壊イベントを読み取るアクションは、PLAYER_ATTACK では何もしません。アイテムは supportedItems に含まれ、手に持つか防具として装備されている必要があり、メカニクスの criteria、chance、runOnLevel も満たしている必要があります。runOnLevel が 2 のメカニクスは、最高レベルがちょうど 2 のときにのみ実行されます。

ゲーム内でエンチャントが見つからない。 デフィニションは、エクステンションの起動時、プレイヤーの参加時、本の付与時に登録されます。コンソールに Failed to reflectively register や Failed to register enchantments during pre-login が出ていないか確認し、サーバーが Paper 1.21 以降であることを確かめてください。

本をアイテムに適用できない。 金床では、本は supportedItems に記載されたアイテムにしか適用できません。互いの exclusiveWith に記載されている 2 つのエンチャントは組み合わせられず、金床の結果が除去されます。この排他性が適用されるのは金床のみです。

プレイヤーがエンチャントテーブルで自分のエンチャントを見られない。 テーブルでは、weight はパーセンテージとして使われます。1 は、抽選 1 回あたり約 1% の確率という意味です。値を上げるか、treasureChance と tradeChance を設定して、ルートや司書を通じて本を配布してください。weight が 0 の場合、テーブルでの提示は無効になります。

/enchantcreator give でエンチャントが不明と表示される。 名前は、エントリーの name または displayName を小文字にし、スペースをアンダースコアに変換したものと照合されます。エントリーの正確な名前を使用し、先にページを Publish してください。

バニラのエンチャントがまだ表示される。 ブラックリストはエンチャントテーブルでの提示を除外するだけで、金床、ルート、取引には影響しません。名前が無効な場合、コンソールに Unable to resolve vanilla enchantments for blacklist が出力されます。