tutorial:enchantments
                Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| tutorial:enchantments [2022/12/11 21:30] – Registry to Registries haykam | tutorial:enchantments [2024/08/23 13:52] (current) – [Adding Translations] solidblock | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ===== Adding Enchantments ===== | + | ====== Adding Enchantments ====== | 
| + | |||
| + | ===== Adding enchantments since 1.21 ===== | ||
| + | Since 1.21, enchantments has been data-driven, | ||
| + | |||
| + | To use the enchantments in code, you should just store '' | ||
| + | <code java TutorialEnchantments> | ||
| + | public final class TutorialEnchantments { | ||
| + |   public static final RegistryKey< | ||
| + | |||
| + |   private static RegistryKey< | ||
| + |     return RegistryKey.of(RegistryKeys.ENCHANTMENT, | ||
| + | } | ||
| + | |||
| + | public static void initialize() { | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Remember to refer to the '' | ||
| + | <code java ExampleMod> | ||
| + | public class ExampleMod implements ModInitializer { | ||
| + | // [...] | ||
| + | |||
| + | @Override | ||
| + | public void onInitialize() { | ||
| + | // [...] | ||
| + |     TutorialEnchantments.initialize(); | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | To add a translated name for your enchantment, | ||
| + | |||
| + | ===== Adding enchantments before 1.21 ===== | ||
| + | :!: This part of the tutorial only applies to older Minecraft versions. | ||
| To add enchantments to your mod, you'll need to: | To add enchantments to your mod, you'll need to: | ||
| Line 41: | Line 76: | ||
| @Override | @Override | ||
| public void onTargetDamaged(LivingEntity user, Entity target, int level) { | public void onTargetDamaged(LivingEntity user, Entity target, int level) { | ||
| - | if(target instanceof LivingEntity) { | + |     if(target instanceof LivingEntity  | 
| - |          | + |          | 
| } | } | ||
| Line 80: | Line 115: | ||
| Registering enchantments follows the same process as usual: | Registering enchantments follows the same process as usual: | ||
| <code java [enable_line_numbers=" | <code java [enable_line_numbers=" | ||
| - | public class EnchantingExample  | + | public class ExampleMod  | 
|     public static Enchantment FROST = new FrostEnchantment(); |     public static Enchantment FROST = new FrostEnchantment(); | ||
| @Override | @Override | ||
| public void onInitialize() { | public void onInitialize() { | ||
| - |         Registry.register(Registries.ENCHANTMENT, | + |         Registry.register(Registries.ENCHANTMENT, | 
| } | } | ||
| } | } | ||
| </ | </ | ||
| + | > **Note:** In practice, if you have many enchantments, | ||
| This registers our enchantment under the namespace '' | This registers our enchantment under the namespace '' | ||
| - | ==== Adding Translations  | + | ===== Adding Translations ===== | 
| + | =) This part works both versions since 1.21 and before 1.21. | ||
| You'll need to add a translation to your enchantment as well. Head over to your [[tutorial: | You'll need to add a translation to your enchantment as well. Head over to your [[tutorial: | ||
| - | <code json [enable_line_numbers=" | + | < | 
| { | { | ||
|     " |     " | ||
tutorial/enchantments.1670794231.txt.gz · Last modified: 2022/12/11 21:30 by haykam