Fix saving node attributes on non-YAML file storage types (#999)

This commit is contained in:
Luck 2018-05-16 19:30:05 +01:00
parent 1e73986c60
commit 45e2b7b12f
No known key found for this signature in database
GPG Key ID: EFA9B3EC5FD90F8B
3 changed files with 20 additions and 24 deletions

View File

@ -101,24 +101,24 @@ public final class StandardStackElements {
// implementations // implementations
private static final MetaStackElement HIGHEST = FluentMetaStackElement.builder("HighestPriority") public static final MetaStackElement HIGHEST = FluentMetaStackElement.builder("HighestPriority")
.with(TYPE_CHECK) .with(TYPE_CHECK)
.with(HIGHEST_CHECK) .with(HIGHEST_CHECK)
.build(); .build();
private static final MetaStackElement HIGHEST_OWN = FluentMetaStackElement.builder("HighestPriorityOwn") public static final MetaStackElement HIGHEST_OWN = FluentMetaStackElement.builder("HighestPriorityOwn")
.with(TYPE_CHECK) .with(TYPE_CHECK)
.with(OWN_CHECK) .with(OWN_CHECK)
.with(HIGHEST_CHECK) .with(HIGHEST_CHECK)
.build(); .build();
private static final MetaStackElement HIGHEST_INHERITED = FluentMetaStackElement.builder("HighestPriorityInherited") public static final MetaStackElement HIGHEST_INHERITED = FluentMetaStackElement.builder("HighestPriorityInherited")
.with(TYPE_CHECK) .with(TYPE_CHECK)
.with(INHERITED_CHECK) .with(INHERITED_CHECK)
.with(HIGHEST_CHECK) .with(HIGHEST_CHECK)
.build(); .build();
private static MetaStackElement highestFromGroupOnTrack(LuckPermsPlugin plugin, String trackName) { public static MetaStackElement highestFromGroupOnTrack(LuckPermsPlugin plugin, String trackName) {
return FluentMetaStackElement.builder("HighestPriorityOnTrack") return FluentMetaStackElement.builder("HighestPriorityOnTrack")
.param("trackName", trackName) .param("trackName", trackName)
.with(TYPE_CHECK) .with(TYPE_CHECK)
@ -127,7 +127,7 @@ public final class StandardStackElements {
.build(); .build();
} }
private static MetaStackElement highestNotFromGroupOnTrack(LuckPermsPlugin plugin, String trackName) { public static MetaStackElement highestNotFromGroupOnTrack(LuckPermsPlugin plugin, String trackName) {
return FluentMetaStackElement.builder("HighestPriorityNotOnTrack") return FluentMetaStackElement.builder("HighestPriorityNotOnTrack")
.param("trackName", trackName) .param("trackName", trackName)
.with(TYPE_CHECK) .with(TYPE_CHECK)
@ -135,8 +135,8 @@ public final class StandardStackElements {
.with(new NotFromGroupOnTrackCheck(plugin, trackName)) .with(new NotFromGroupOnTrackCheck(plugin, trackName))
.build(); .build();
} }
private static MetaStackElement highestFromGroup(String groupName) { public static MetaStackElement highestFromGroup(String groupName) {
return FluentMetaStackElement.builder("HighestPriorityFromGroup") return FluentMetaStackElement.builder("HighestPriorityFromGroup")
.param("groupName", groupName) .param("groupName", groupName)
.with(TYPE_CHECK) .with(TYPE_CHECK)
@ -145,7 +145,7 @@ public final class StandardStackElements {
.build(); .build();
} }
private static MetaStackElement highestNotFromGroup(String groupName) { public static MetaStackElement highestNotFromGroup(String groupName) {
return FluentMetaStackElement.builder("HighestPriorityNotFromGroup") return FluentMetaStackElement.builder("HighestPriorityNotFromGroup")
.param("groupName", groupName) .param("groupName", groupName)
.with(TYPE_CHECK) .with(TYPE_CHECK)
@ -154,24 +154,24 @@ public final class StandardStackElements {
.build(); .build();
} }
private static final MetaStackElement LOWEST = FluentMetaStackElement.builder("LowestPriority") public static final MetaStackElement LOWEST = FluentMetaStackElement.builder("LowestPriority")
.with(TYPE_CHECK) .with(TYPE_CHECK)
.with(LOWEST_CHECK) .with(LOWEST_CHECK)
.build(); .build();
private static final MetaStackElement LOWEST_OWN = FluentMetaStackElement.builder("LowestPriorityOwn") public static final MetaStackElement LOWEST_OWN = FluentMetaStackElement.builder("LowestPriorityOwn")
.with(TYPE_CHECK) .with(TYPE_CHECK)
.with(OWN_CHECK) .with(OWN_CHECK)
.with(LOWEST_CHECK) .with(LOWEST_CHECK)
.build(); .build();
private static final MetaStackElement LOWEST_INHERITED = FluentMetaStackElement.builder("LowestPriorityInherited") public static final MetaStackElement LOWEST_INHERITED = FluentMetaStackElement.builder("LowestPriorityInherited")
.with(TYPE_CHECK) .with(TYPE_CHECK)
.with(INHERITED_CHECK) .with(INHERITED_CHECK)
.with(LOWEST_CHECK) .with(LOWEST_CHECK)
.build(); .build();
private static MetaStackElement lowestFromGroupOnTrack(LuckPermsPlugin plugin, String trackName) { public static MetaStackElement lowestFromGroupOnTrack(LuckPermsPlugin plugin, String trackName) {
return FluentMetaStackElement.builder("LowestPriorityOnTrack") return FluentMetaStackElement.builder("LowestPriorityOnTrack")
.param("trackName", trackName) .param("trackName", trackName)
.with(TYPE_CHECK) .with(TYPE_CHECK)
@ -180,7 +180,7 @@ public final class StandardStackElements {
.build(); .build();
} }
private static MetaStackElement lowestNotFromGroupOnTrack(LuckPermsPlugin plugin, String trackName) { public static MetaStackElement lowestNotFromGroupOnTrack(LuckPermsPlugin plugin, String trackName) {
return FluentMetaStackElement.builder("LowestPriorityNotOnTrack") return FluentMetaStackElement.builder("LowestPriorityNotOnTrack")
.param("trackName", trackName) .param("trackName", trackName)
.with(TYPE_CHECK) .with(TYPE_CHECK)
@ -189,7 +189,7 @@ public final class StandardStackElements {
.build(); .build();
} }
private static MetaStackElement lowestFromGroup(String groupName) { public static MetaStackElement lowestFromGroup(String groupName) {
return FluentMetaStackElement.builder("LowestPriorityFromGroup") return FluentMetaStackElement.builder("LowestPriorityFromGroup")
.param("groupName", groupName) .param("groupName", groupName)
.with(TYPE_CHECK) .with(TYPE_CHECK)
@ -198,7 +198,7 @@ public final class StandardStackElements {
.build(); .build();
} }
private static MetaStackElement lowestNotFromGroup(String groupName) { public static MetaStackElement lowestNotFromGroup(String groupName) {
return FluentMetaStackElement.builder("LowestPriorityNotFromGroup") return FluentMetaStackElement.builder("LowestPriorityNotFromGroup")
.param("groupName", groupName) .param("groupName", groupName)
.with(TYPE_CHECK) .with(TYPE_CHECK)

View File

@ -569,7 +569,7 @@ public abstract class AbstractConfigurateDao extends AbstractDao {
if (entry == null) { if (entry == null) {
continue; continue;
} }
nodes.add(readAttributes(entry.getValue(), c -> NodeFactory.metaNode(entry.getKey(), entry.getValue().getNode("value").getString("null")))); nodes.add(readAttributes(entry.getValue(), c -> NodeFactory.metaNode(entry.getKey(), c.getNode("value").getString("null"))));
} }
} }
@ -609,17 +609,13 @@ public abstract class AbstractConfigurateDao extends AbstractDao {
private void appendNode(ConfigurationNode base, String key, ConfigurationNode attributes, String keyFieldName) { private void appendNode(ConfigurationNode base, String key, ConfigurationNode attributes, String keyFieldName) {
if (this.loader instanceof YamlLoader) { if (this.loader instanceof YamlLoader) {
// create a map node with a single entry of key --> attributes // create a map node with a single entry of key --> attributes
ConfigurationNode appended = SimpleConfigurationNode.root(); ConfigurationNode appended = base.getAppendedNode();
appended.getNode(key).setValue(attributes); appended.getNode(key).setValue(attributes);
base.getAppendedNode().setValue(appended);
} else { } else {
// include the attributes and key in the same map // include the attributes and key in the same map
ConfigurationNode appended = SimpleConfigurationNode.root(); ConfigurationNode appended = base.getAppendedNode();
appended.getNode(keyFieldName).setValue(key); appended.getNode(keyFieldName).setValue(key);
appended.mergeValuesFrom(appended); appended.mergeValuesFrom(attributes);
base.getAppendedNode().setValue(appended);
} }
} }

View File

@ -48,7 +48,7 @@ import java.util.Map;
public class SubjectCachedData extends AbstractCachedData implements CalculatorFactory { public class SubjectCachedData extends AbstractCachedData implements CalculatorFactory {
private static final MetaStackDefinition DEFAULT_META_STACK = new SimpleMetaStackDefinition( private static final MetaStackDefinition DEFAULT_META_STACK = new SimpleMetaStackDefinition(
ImmutableList.of(StandardStackElements.HIGHEST_PRIORITY), ImmutableList.of(StandardStackElements.HIGHEST),
"", "", "" "", "", ""
); );