提供: Minecraft Modding Wiki
この記事は"Minecraft Forge 1.14-28.0.x~"を前提MODとしています。 |
ここでは、1.14.x以降のエンチャントの追加の方法を解説します。
ソース[編集]
SampleMod.java
/*パッケージ・インポートは省略*/ @Mod(SampleMod.MOD_ID) public class SampleMod { public static final String MOD_ID = "sample"; public static final Enchantment sample_enchantment = new SampleEnchantment(Rarity.RARE, EnchantmentType.ARMOR_FEET, EquipmentSlotType.FEET); @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD) public static class SampleModEventBus { @SubscribeEvent public static void registerEnchantments(final RegistryEvent.Register<Enchantment> event) { event.getRegistry().register(sample_enchantment); } } }
SampleEnchantment.java
public class SampleEnchantment extends Enchantment { protected SampleEnchantment(Rarity rarityIn, EnchantmentType typeIn, EquipmentSlotType... slots) { super(rarityIn, typeIn, slots); this.setRegistryName(new ResourceLocation(SampleMod.MOD_ID, "sample_enchantment")); } public int getMaxLevel() { return 5; } }
解説[編集]
1.13から、@ModにはMOD_IDだけ記述するようになったので注意です。
Enchantmentを継承したクラスを作って、レア度、エンチャントタイプ、エンチャントできる部位の設定をします。
setRegistryName(new ResourceLocation(SampleMod.MOD_ID, (エンチャント名) ))でエンチャント名を指定します。
public int getMaxLevel()で最大レベルを返します。
翻訳名はenchantment.(モッドid).(エンチャント名)です。
これで無機能エンチャントの追加ができるので、あとは適当にそれっぽいのをOverrideしたり、EventBusSubscriberのEventで処理をしたりします。