diff --git a/README.md b/README.md index 67bf000..94bcc0d 100644 --- a/README.md +++ b/README.md @@ -26,10 +26,10 @@ You can set the max level for each enchantment, and add XP cost in levels. > > Example: `enchantbookplus.enchant.*` or `enchantbookplus.enchant.unbreaking` -| Permission | Description | -|-----------------------------------------|----------------------------------------------------------------------------------------| -| `enchantbookplus.enchant.` | Allow enchanting `` above the vanilla level, as configured in the plugin. | -| `enchantbookplus.reload` | Reload plugin config using `/enchantbookplus reload` | +| Permission | Description | Default | +|-----------------------------------------|----------------------------------------------------------------------------------------|----------| +| `enchantbookplus.enchant.` | Allow enchanting `` above the vanilla level, as configured in the plugin. | Everyone | +| `enchantbookplus.reload` | Reload plugin config using `/enchantbookplus reload` | OP | ## Reporting issues Fixing bugs is the utmost priority for this project. diff --git a/src/main/java/pro/cloudnode/smp/enchantbookplus/EnchantBookPlus.java b/src/main/java/pro/cloudnode/smp/enchantbookplus/EnchantBookPlus.java index c72031b..606a777 100644 --- a/src/main/java/pro/cloudnode/smp/enchantbookplus/EnchantBookPlus.java +++ b/src/main/java/pro/cloudnode/smp/enchantbookplus/EnchantBookPlus.java @@ -83,6 +83,7 @@ public void reload() { @Override public void onEnable() { + Permissions.init(); Objects.requireNonNull(getCommand("enchantbookplus")).setExecutor(new MainCommand()); registerEvents(); diff --git a/src/main/java/pro/cloudnode/smp/enchantbookplus/Permissions.java b/src/main/java/pro/cloudnode/smp/enchantbookplus/Permissions.java index ef3f7dd..2babef6 100644 --- a/src/main/java/pro/cloudnode/smp/enchantbookplus/Permissions.java +++ b/src/main/java/pro/cloudnode/smp/enchantbookplus/Permissions.java @@ -1,6 +1,10 @@ package pro.cloudnode.smp.enchantbookplus; +import org.bukkit.Registry; import org.bukkit.enchantments.Enchantment; +import org.bukkit.permissions.Permission; +import org.bukkit.permissions.PermissionDefault; +import org.bukkit.plugin.PluginManager; import org.jetbrains.annotations.NotNull; public final class Permissions { @@ -9,4 +13,21 @@ public final class Permissions { } public static @NotNull String RELOAD = "enchantbookplus.reload"; + + public static void init() { + final @NotNull PluginManager pm = EnchantBookPlus.getInstance().getServer().getPluginManager(); + pm.addPermission(new Permission( + RELOAD, + "Reload plugin config using `/enchantbookplus reload`", + PermissionDefault.OP + )); + for (Enchantment enchantment : Registry.ENCHANTMENT) { + EnchantBookPlus.getInstance().getLogger().info("Registering permission for " + enchantment.getKey()); + pm.addPermission(new Permission( + enchant(enchantment), + "Allow enchanting " + enchantment.getKey() + "above the vanilla level, as configured in the plugin", + PermissionDefault.TRUE + )); + } + } }