石橋を叩いて壊すブログ

エンチャントの定数を調べてみた

あけましておめでとうございます。
今年もよろしくお願いします。m(_ _)m

先日要望のあったボスモンスタープラグインを作っていたところ、ひとつバグっぽいものを見つけた。
ボスモンスターはスケルトンなので日光に弱い。そのため予め鉄のヘルメットをかぶせているのだが、
ボスのレベルが高い場合、ダメージでヘルメットが壊れてしまい、討伐の途中から日光ダメージを受けてしまうようだ。
天日に干せば勝手に死ぬ干物のような(最初から干物だが)ボスなど意図するところではないので何とかしたい。

ということで、鉄のヘルメットに無限エンチャントをかけようと思ったのだけど定数のどれがどれに対応するのかわからなかったのでさくっと調べてみた。
ついでに、取り付けられる最大エンチャントレベルも調べた。実際のゲーム内でできるエンチャントとちょっと違うらしい。
たとえばゲーム内なら(クリエイティブモードで)鉄のヘルメットと無限エンチャント本を組み合わせられるが、以下の表ではそれができない。

定数名効果
ARROW_DAMAGE射撃ダメージ増加-5---------
ARROW_FIREフレイム-1---------
ARROW_INFINITE無限-1---------
ARROW_KNOCKBACKパンチ-2---------
DAMAGE_ALLダメージ増加5--5-------
DAMAGE_ARTHROPODS虫特効5--5-------
DAMAGE_UNDEADアンデッド特効5--5-------
DEPTH_STRIDER水中歩行----------3
DIG_SPEED効率強化--555------
DURABILITY耐久力33333333333
FIRE_ASPECT火属性2----------
KNOCKBACKノックバック2----------
LOOT_BONUS_BLOCKS幸運--333------
LOOT_BONUS_MOBSドロップ増加3----------
LUCK宝釣り------3----
LURE入れ食い------3----
OXYGEN水中呼吸-------3---
PROTECTION_ENVIRONMENTALダメージ軽減-------4444
PROTECTION_EXPLOSIONS爆発耐性-------4444
PROTECTION_FALL落下耐性----------4
PROTECTION_FIRE火炎耐性-------4444
PROTECTION_PROJECTILE飛び道具耐性-------4444
SILK_TOUCHシルクタッチ--111------
THORNS棘の鎧-------3333
WATER_WORKER水中採掘-------1---

エンチャントのつけ方は、たとえば弓を作って射撃ダメージ増加エンチャントレベル2をつけるには以下のようになる。

ItemStack weapon = new ItemStack(Material.BOW);
weapon.addEnchantment(Enchantment.ARROW_DAMAGE, 2);

さて、これで無限エンチャントの定数がどれかわかったぞ。
…と言いたいところなのだが、無限は弓にしかつかないのか。
ItemStack#addUnsafeEnchantmentメソッドを使えば無理やりつけることもできるが、効果はなさそうだ。
仕方がない、耐久を回復するコードを追加するか。

この記事を評価

24 5

コメント

【この記事にコメント】
お名前:
コメント:

295,349

記事カテゴリー

最近の記事

  1. FF14を翻訳したら国によって結構特色が違った[12/11]
  2. ゼロから始めるFactorioの回路構築(実践例編)[7/24]
  3. ゼロから始めるFactorioの回路構築(条件回路・論理演算編)[7/24]
  4. ゼロから始めるFactorioの回路構築(定数回路・算術回路編)[7/24]
  5. ゼロから始めるFactorioの回路構築(入力・出力・混合編)[7/24]

RSS1.0 RSS2.0

最近のコメント

  1. おー、お役に立てたようでなによりです。再起…[9/11]
  2. この記事が非常の役立ちました。おかげさまで…[9/9]
  3. 1.14.2のAPIで試しましたが、MapInitializeEv…[9/9]
  4. 天晴れ!押したらポーションのモヤモヤでまし…[5/26]
  5. 習うより慣れろって感じで。この記事は記事冒…[4/7]

記事を検索


管理人

石橋

ソースはブルドックに限る