From 26ce8b8ab7ca221bbaa00a21852798051a4ab266 Mon Sep 17 00:00:00 2001 From: Chris N Date: Thu, 22 Jun 2017 05:41:29 -0400 Subject: [PATCH] YAML/JSON batch permission defining (#337) --- .../luckperms/common/storage/backing/JSONBacking.java | 10 +++++++++- .../luckperms/common/storage/backing/YAMLBacking.java | 10 +++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/common/src/main/java/me/lucko/luckperms/common/storage/backing/JSONBacking.java b/common/src/main/java/me/lucko/luckperms/common/storage/backing/JSONBacking.java index 67393cfdd..3f72ce951 100644 --- a/common/src/main/java/me/lucko/luckperms/common/storage/backing/JSONBacking.java +++ b/common/src/main/java/me/lucko/luckperms/common/storage/backing/JSONBacking.java @@ -548,7 +548,15 @@ public class JSONBacking extends FlatfileBacking { context = NodeModel.deserializeContextSet(contexts).makeImmutable(); } - nodes.add(NodeModel.of(permission, value, server, world, expiry, context)); + final JsonElement batchAttribute = attributes.get("permissions"); + if (permission.startsWith("luckperms.batch") && batchAttribute != null && batchAttribute.isJsonArray()) { + for (JsonElement element : batchAttribute.getAsJsonArray()) { + nodes.add(NodeModel.of(element.getAsString(), value, server, world, expiry, context)); + } + } else { + nodes.add(NodeModel.of(permission, value, server, world, expiry, context)); + } + } return nodes; diff --git a/common/src/main/java/me/lucko/luckperms/common/storage/backing/YAMLBacking.java b/common/src/main/java/me/lucko/luckperms/common/storage/backing/YAMLBacking.java index e83ebbc75..7377a3287 100644 --- a/common/src/main/java/me/lucko/luckperms/common/storage/backing/YAMLBacking.java +++ b/common/src/main/java/me/lucko/luckperms/common/storage/backing/YAMLBacking.java @@ -556,7 +556,15 @@ public class YAMLBacking extends FlatfileBacking { context = map.build(); } - nodes.add(NodeModel.of(permission, value, server, world, expiry, ImmutableContextSet.fromMultimap(context))); + if (permission.startsWith("luckperms.batch") && attributes.get("permissions") instanceof List) { + final List batchPerms = (List) attributes.get("permissions"); + for (String rawPerm : batchPerms) { + nodes.add(NodeModel.of(rawPerm, value, server, world, expiry, ImmutableContextSet.fromMultimap(context))); + } + } else { + nodes.add(NodeModel.of(permission, value, server, world, expiry, ImmutableContextSet.fromMultimap(context))); + } + } }