diff --git a/src/main/java/org/ultramine/permission/IPermissionManager.java b/src/main/java/org/ultramine/permission/IPermissionManager.java index 37cd173..7612670 100644 --- a/src/main/java/org/ultramine/permission/IPermissionManager.java +++ b/src/main/java/org/ultramine/permission/IPermissionManager.java @@ -22,6 +22,8 @@ public void setMeta(String world, String player, String key, String value); + public void setWorldMeta(String world, String key, String value); + public void setGroupMeta(String group, String key, String value); public void save(); diff --git a/src/main/java/org/ultramine/permission/commands/BasicPermissionCommands.java b/src/main/java/org/ultramine/permission/commands/BasicPermissionCommands.java index 744a52f..f935477 100644 --- a/src/main/java/org/ultramine/permission/commands/BasicPermissionCommands.java +++ b/src/main/java/org/ultramine/permission/commands/BasicPermissionCommands.java @@ -36,7 +36,9 @@ permissions = {"permissions.admin.world"}, syntax = { "[add remove] ...", - " [add remove] ..." + "[meta] <%value>", + " [add remove] ...", + " [meta] <%value>", } ) public static void pworld(CommandContext context) @@ -55,7 +57,7 @@ context.notifyAdmins("command.pworld.success.add", arg.asString(), world); } } - else + else if (context.actionIs("remove")) { for (CommandContext.Argument arg : context.get("permission").asArray()) { @@ -63,6 +65,14 @@ context.notifyAdmins("command.pworld.success.remove", arg.asString(), world); } } + else + { + String key = context.get("pmeta").asString(); + String value = context.get("value").asString(); + + PermissionHandler.getInstance().setWorldMeta(world, key, value); + context.notifyAdmins("command.pworld.success.meta", key, value, world); + } } diff --git a/src/main/java/org/ultramine/permission/internal/ClientPermissionManager.java b/src/main/java/org/ultramine/permission/internal/ClientPermissionManager.java index 20180a3..083d804 100644 --- a/src/main/java/org/ultramine/permission/internal/ClientPermissionManager.java +++ b/src/main/java/org/ultramine/permission/internal/ClientPermissionManager.java @@ -98,6 +98,12 @@ } @Override + public void setWorldMeta(String world, String key, String value) + { + global.getDefaultGroup().setMeta(key, value); + } + + @Override public void setGroupMeta(String group, String key, String value) { getOrCreateGroup(group).setMeta(key, value); diff --git a/src/main/java/org/ultramine/permission/internal/ServerPermissionManager.java b/src/main/java/org/ultramine/permission/internal/ServerPermissionManager.java index e783af2..dec2aae 100644 --- a/src/main/java/org/ultramine/permission/internal/ServerPermissionManager.java +++ b/src/main/java/org/ultramine/permission/internal/ServerPermissionManager.java @@ -126,6 +126,12 @@ } @Override + public void setWorldMeta(String world, String key, String value) + { + getOrCreateWorld(world).getDefaultGroup().setMeta(key, value); + } + + @Override public void setGroupMeta(String group, String key, String value) { getOrCreateGroup(group).setMeta(key, value); diff --git a/src/main/java/org/ultramine/server/PermissionHandler.java b/src/main/java/org/ultramine/server/PermissionHandler.java index cf45c80..c2c0f48 100644 --- a/src/main/java/org/ultramine/server/PermissionHandler.java +++ b/src/main/java/org/ultramine/server/PermissionHandler.java @@ -127,6 +127,12 @@ } @Override + public void setWorldMeta(String world, String key, String value) + { + getHandler().setWorldMeta(world, key, value); + } + + @Override public void setGroupMeta(String group, String key, String value) { getHandler().setGroupMeta(group, key, value); diff --git a/src/main/resources/assets/ultramine/lang/en_US.lang b/src/main/resources/assets/ultramine/lang/en_US.lang index 90724c1..9303326 100644 --- a/src/main/resources/assets/ultramine/lang/en_US.lang +++ b/src/main/resources/assets/ultramine/lang/en_US.lang @@ -21,6 +21,7 @@ command.pworld.description=Add or remove permissions to all user in world (current is default) command.pworld.success.add=Add permission <%s> to world <%s> command.pworld.success.remove=Remove permission <%s> from world <%s> +command.pworld.success.meta=Set meta <%s> to <%s> in world <%s> command.puser.usage=/puser [world] OR /puser [world] meta command.puser.description=Add/remove permissions OR set meta for user in world (current is default)