Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在命令上添加权限?_Java_Bukkit - Fatal编程技术网

Java 如何在命令上添加权限?

Java 如何在命令上添加权限?,java,bukkit,Java,Bukkit,我找不到如何在玩家输入命令时授予他们某些权限。BukkitAPI非常有助于向我展示可能的方法,当我只需要执行player或permission时。但是没有什么会给玩家一定的权限。以下是我必须让它工作的代码: 在我的主要班级中名列前茅 public Permission blue = new Permission("Blue.allowed"); 合一 PluginManager pm = getServer().getPluginManager(); pm.addPermission(blue

我找不到如何在玩家输入命令时授予他们某些权限。BukkitAPI非常有助于向我展示可能的方法,当我只需要执行player或permission时。但是没有什么会给玩家一定的权限。以下是我必须让它工作的代码:

在我的主要班级中名列前茅

public Permission blue = new Permission("Blue.allowed");
合一

PluginManager pm = getServer().getPluginManager();
pm.addPermission(blue);
我有一个简单的命令,我想让键入该命令的玩家获得蓝色权限:

    public boolean onCommandAllowRed(CommandSender sender, Command cmd, String label, String[] args) {
    if (cmd.getName().equalsIgnoreCase("give red") && sender instanceof Player) {
        Player player = (Player) sender;

        return true;
    }
    return false;

我只是不知道perms的对象模型,有人能帮我吗?

Bukkit无法通过编程方式向单个播放器添加权限。这样做需要一些麻烦

为了更简单,我建议使用一个插件来获得权限,比如bPermissions或PEX,然后连接到它们的插件中,并使用给定的方法将权限添加到播放器中


若要挂接,您需要将插件包含到构建路径中,然后获取它的一个实例。通常情况下,插件会在其bukkit开发页面上告诉您如何连接到。bukkit不便于以编程方式向单个播放器添加权限。这样做需要一些麻烦

为了更简单,我建议使用一个插件来获得权限,比如bPermissions或PEX,然后连接到它们的插件中,并使用给定的方法将权限添加到播放器中


若要挂接,您需要将插件包含到构建路径中,然后获取它的一个实例。通常,插件会在其bukkit开发页面上告诉您如何连接到。要补充Baseball 435完全正确的答案,最简单、最有效的方法是连接到,而不是任何单个插件。
它是Bukkit几乎每一个编写良好的许可插件的适配器,将使您不必处理来自不同系统的不同API。

要补充Baseball 435完全正确的答案,最简单、最有效的方法是连接到而不是任何单个插件。
它是Bukkit几乎所有编写良好的权限插件的适配器,可以让您不必处理来自不同系统的不同API。

起初我也遇到过这个问题,我是自己发现的,我还建议一种保存方法,否则注销时权限将丢失

这就是我管理权限的方式

private static PermissionAttachment fetchPlayer(UUID uuid){
    Plugin plugin = Core.getPlugin();
    Player player = Bukkit.getPlayer(uuid);
    if (player != null){
        PermissionAttachment perm = player.addAttachment(plugin);
        return perm;
    }
    else{
        return null;
    }

}

public static void addPermission(UUID uuid, String permission){
    PermissionAttachment perm = fetchPlayer(uuid);
    perm.setPermission(permission, true);
}

public static void removePermission(UUID uuid, String permission){
    PermissionAttachment perm = fetchPlayer(uuid);
    perm.unsetPermission(permission);
}

一开始我也有这个问题,我自己发现的,我也建议一种保存方法,否则注销时权限会丢失

这就是我管理权限的方式

private static PermissionAttachment fetchPlayer(UUID uuid){
    Plugin plugin = Core.getPlugin();
    Player player = Bukkit.getPlayer(uuid);
    if (player != null){
        PermissionAttachment perm = player.addAttachment(plugin);
        return perm;
    }
    else{
        return null;
    }

}

public static void addPermission(UUID uuid, String permission){
    PermissionAttachment perm = fetchPlayer(uuid);
    perm.setPermission(permission, true);
}

public static void removePermission(UUID uuid, String permission){
    PermissionAttachment perm = fetchPlayer(uuid);
    perm.unsetPermission(permission);
}

好补充;是的,Vault充当具有类似功能的插件的包装器,使服务器所有者可以轻松地使用他们喜欢的任何权限插件,例如,不必担心另一个插件只需要特定类型的权限插件。大多数插件开发人员将使用Vault的API为服务器所有者提供选择的自由,并使他们自己更容易开发插件。如果您感兴趣,可以查看Vault的开发页面,查看他们支持哪些其他类型的插件。谢谢!我会看看保险库:好补充;是的,Vault充当具有类似功能的插件的包装器,使服务器所有者可以轻松地使用他们喜欢的任何权限插件,例如,不必担心另一个插件只需要特定类型的权限插件。大多数插件开发人员将使用Vault的API为服务器所有者提供选择的自由,并使他们自己更容易开发插件。如果您感兴趣,可以查看Vault的开发页面,查看他们支持哪些其他类型的插件。谢谢!我将查看保险库: