石橋を叩いて壊すページ

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

あけましておめでとうございます。
今年もよろしくお願いします。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メソッドを使えば無理やりつけることもできるが、効果はなさそうだ。
仕方がない、耐久を回復するコードを追加するか。

この記事を評価

この記事にコメント

  1. ...

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

Menu