我试图让它成为一个玩家被选择或至少拥有两个权限节点之一,他们被允许执行一个命令
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
答案 0 :(得分:1)
如果玩家拥有" perm.node2"的权限,您的条件将评估为真(并拒绝访问)。
试试这个:
if (!player.hasPermission("perm.node1") && !player.hasPermisson("perm.node2")) {
// deny access...
}