Skills/權限系統生成器
Permission
已發布

權限系統生成器

Generate Permission System

依提供的權限節點清單,產生 PermissionManager 工具類別與 plugin.yml permissions 區段宣告,含繼承樹設計與預設值設定。

permissionbukkitplugin-ymlpermission-nodeinheritance
v1.0.0更新:2026年3月5日GitHub

Generate Permission System Skill

目標

依使用者提供的插件名稱與權限節點清單,自動產生:

  • PermissionManager.java 工具類別(靜態方法封裝)
  • plugin.ymlpermissions: 區段(含描述、default、children 繼承)

輸入參數

參數 範例 說明
plugin_name MyPlugin 插件名稱(CamelCase)
permission_nodes myplugin.admin, myplugin.use 權限節點清單
default_op_only true / false 預設是否僅 OP 可用

輸出規格

plugin.yml permissions 區段

permissions:
  myplugin.*:
    description: MyPlugin 所有權限
    default: op
    children:
      myplugin.admin: true
      myplugin.use: true

  myplugin.admin:
    description: MyPlugin 管理員權限
    default: op

  myplugin.use:
    description: MyPlugin 一般使用權限
    default: true

規則:

  • 根節點(pluginid.*)使用 children 聚合所有子節點
  • default 值:op(僅 OP)、true(所有人)、false(無人)、not op(非 OP)
  • default_op_only 決定葉節點預設值

PermissionManager.java

package com.example.myplugin.manager;

import org.bukkit.entity.Player;

public final class PermissionManager {

    public static final String PERM_ALL   = "myplugin.*";
    public static final String PERM_ADMIN = "myplugin.admin";
    public static final String PERM_USE   = "myplugin.use";

    private PermissionManager() {}

    public static boolean has(Player player, String node) {
        return player.hasPermission(node);
    }

    public static boolean isAdmin(Player player) {
        return player.hasPermission(PERM_ADMIN);
    }

    public static boolean canUse(Player player) {
        return player.hasPermission(PERM_USE);
    }
}

使用範例

if (!PermissionManager.isAdmin(player)) {
    player.sendMessage("§c你沒有執行此指令的權限。");
    return true;
}