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 }