Permission
已發布權限系統生成器
Generate Permission System
依提供的權限節點清單,產生 PermissionManager 工具類別與 plugin.yml permissions 區段宣告,含繼承樹設計與預設值設定。
permissionbukkitplugin-ymlpermission-nodeinheritance
Generate Permission System Skill
目標
依使用者提供的插件名稱與權限節點清單,自動產生:
PermissionManager.java工具類別(靜態方法封裝)plugin.yml的permissions:區段(含描述、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;
}