NullValkyrie

Minecraft 1.19 multipurpose plugin for spigot servers with a lot of features where most modern servers have.
git clone https://codeberg.org/night0721/NullValkyrie
Log | Files | Refs | README | LICENSE

EnchantmentManager.java (1383B)


      1 package me.night.nullvalkyrie.util.enchantments;
      2 
      3 import org.bukkit.enchantments.Enchantment;
      4 
      5 import java.lang.reflect.Field;
      6 import java.util.ArrayList;
      7 import java.util.Arrays;
      8 import java.util.List;
      9 
     10 public class EnchantmentManager {
     11     public static final List<Enchantment> enchants = new ArrayList<>();
     12 
     13     public static void register() {
     14         List<Boolean> registeredList = new ArrayList<>();
     15         for (Enchantments enchantment : Enchantments.values()) {
     16             Enchantment en = new CustomEnchantment(enchantment.getNamespacekey(), enchantment.getName(), enchantment.getMaxLevel());
     17             enchants.add(en);
     18             registeredList.add(Arrays.stream(Enchantment.values()).toList().contains(en));
     19         }
     20         for (int counter = 0; counter < registeredList.size(); counter++) {
     21             if (!registeredList.get(counter)) registerEnchantment(enchants.get(counter));
     22         }
     23 
     24     }
     25 
     26     public static void registerEnchantment(Enchantment en) {
     27         try {
     28             try {
     29                 Field f = Enchantment.class.getDeclaredField("acceptingNew");
     30                 f.setAccessible(true);
     31                 f.set(null, true);
     32             } catch (Exception e) {
     33                 e.printStackTrace();
     34             }
     35             Enchantment.registerEnchantment(en);
     36         } catch (Exception e) {
     37             e.printStackTrace();
     38         }
     39     }
     40 
     41 }