1. Forge 权限系统

是的。Forge 内置了一个非常简易的权限系统。有鉴于 Forge 的一贯原则,它只是一套有完整功能的 API 而已,并不影响游戏功能,甚至它自带的占位用实现都是假定 OP 有所有权限的(参考原版命令系统)。
虽然说简易,但有鉴于这套系统是基于权限名、玩家和上下文(IContext)的,所以它还是比较 versatile 的。

1.1. 基于上下文的权限查询

String permissionKey = "a.random.permission.key";
if (PermissionAPI.hasPermission(player.getGameProfile(), permissionKey, new PlayerContext(player))) {
    // 在有权限的时候执行操作
}

PermissionAPI.hasPermission 会将这个调用代理给当前的 IPermissionHandler.hasPermission。无需关心接口的实现,只要它不是 null 就好。

1.2. 权限注册

String permissionKey = "a.random.permission.key";
PermissionAPI.registerNode(permissionKey, DefaultPermissionLevel.OP, "My first permission");

最后一个参数是描述,可选。中间的参数实际上是给这套系统的默认实现用的,目的是尽可能贴近原版行为(顺带让 PermissionAPI 持有的 IPermissionHandler 引用永远不是 null)。