Bukkit插件多个权限不起作用

时间:2014-07-31 22:34:47

标签: java plugins permissions bukkit

我试图让它成为一个玩家被选择或至少拥有两个权限节点之一,他们被允许执行一个命令

Player player = (Player) sender;

if (! (player.hasPermission("perm.node1")) || (player.hasPermission("perm.node2")) ) { sender.sendMessage(ChatColor.RED + "Access denied!"); return true; }

我正在一台服务器上测试这个插件,该插件与插件编译时使用相同的bukkit构建,并且我选择了游戏,我没有给自己任何权限

只需要一个权限节点if (! (player.hasPermission("perm.node1"))),代码工作正常但列出了两个权限,它回复了"访问被拒绝!"。

单词"访问被拒绝!"在代码中没有其他地方出现所以它必须来自这个声明

我已尝试添加另一个或if语句player.isOp(),但它没有效果

如果我在perm.node1的用户组中,我可以执行相关命令,而不会被拒绝访问!"但如果我有perm.node2,我会得到"访问被拒绝!",无论我是否有perm.node1

1 个答案:

答案 0 :(得分:1)

如果玩家拥有" perm.node2"的权限,您的条件将评估为真(并拒绝访问)。

试试这个:

if (!player.hasPermission("perm.node1") && !player.hasPermisson("perm.node2")) {
    // deny access...
}