diff --git a/src/main/java/pro/cloudnode/smp/enchantbookplus/EnchantBookPlus.java b/src/main/java/pro/cloudnode/smp/enchantbookplus/EnchantBookPlus.java index 695d27e..7bb5615 100644 --- a/src/main/java/pro/cloudnode/smp/enchantbookplus/EnchantBookPlus.java +++ b/src/main/java/pro/cloudnode/smp/enchantbookplus/EnchantBookPlus.java @@ -87,7 +87,7 @@ void reload() { @Override public void onEnable() { - Permissions.init(this); + Permissions.register(this); Objects.requireNonNull(getCommand("enchantbookplus")).setExecutor(new MainCommand(this)); registerEvents(); @@ -99,5 +99,6 @@ public void onEnable() { public void onDisable() { allConfigEnchantment = null; configEnchantments.clear(); + Permissions.unregister(this); } } diff --git a/src/main/java/pro/cloudnode/smp/enchantbookplus/Permissions.java b/src/main/java/pro/cloudnode/smp/enchantbookplus/Permissions.java index fe0c9a7..1a05007 100644 --- a/src/main/java/pro/cloudnode/smp/enchantbookplus/Permissions.java +++ b/src/main/java/pro/cloudnode/smp/enchantbookplus/Permissions.java @@ -7,27 +7,39 @@ import org.bukkit.plugin.PluginManager; import org.jspecify.annotations.NullMarked; +import java.util.function.Consumer; + @NullMarked public final class Permissions { - public final static String RELOAD = "enchantbookplus.reload"; + public static final String RELOAD = "enchantbookplus.reload"; public static String enchant(final Enchantment enchantment) { return "enchantbookplus.enchant." + enchantment.getKey().getKey(); } - public static void init(final EnchantBookPlus plugin) { + + public static void register(final EnchantBookPlus plugin) { + final PluginManager pm = plugin.getServer().getPluginManager(); + forEach(pm::addPermission); + } + + public static void unregister(final EnchantBookPlus plugin) { final PluginManager pm = plugin.getServer().getPluginManager(); + forEach(pm::removePermission); + } - pm.addPermission(new Permission( + private static void forEach(final Consumer consumer) { + consumer.accept(new Permission( RELOAD, "Reload plugin config using ‘/enchantbookplus reload’", PermissionDefault.OP )); - for (Enchantment enchantment : Registry.ENCHANTMENT) { - pm.addPermission(new Permission( + for (final Enchantment enchantment : Registry.ENCHANTMENT) { + consumer.accept(new Permission( enchant(enchantment), - "Allow enchanting " + enchantment.getKey() + "above the vanilla level, as configured in the plugin", + "Allow enchanting " + enchantment.getKey() + + " above the vanilla level, as configured in the plugin", PermissionDefault.TRUE )); }