Use combined Set instead of just traitnames

This commit is contained in:
fullwall 2013-01-14 22:57:07 +08:00
parent b3f151da09
commit 64103414f4
2 changed files with 11 additions and 10 deletions

View File

@ -314,7 +314,6 @@ public class Citizens extends JavaPlugin implements CitizensPlugin {
return goalCount; return goalCount;
} }
}); });
traitFactory.addPlotters(metrics.createGraph("traits")); traitFactory.addPlotters(metrics.createGraph("traits"));
saves.addPlotters(metrics.createGraph("Storage type")); saves.addPlotters(metrics.createGraph("Storage type"));
metrics.start(); metrics.start();
@ -333,9 +332,9 @@ public class Citizens extends JavaPlugin implements CitizensPlugin {
public void storeNPCs(CommandContext args) { public void storeNPCs(CommandContext args) {
storeNPCs(); storeNPCs();
boolean async = args.hasFlag('a'); boolean async = args.hasFlag('a');
if (async) if (async) {
saves.saveToDisk(); saves.saveToDisk();
else } else
saves.saveToDiskImmediate(); saves.saveToDiskImmediate();
} }

View File

@ -1,6 +1,7 @@
package net.citizensnpcs.npc; package net.citizensnpcs.npc;
import java.util.List; import java.util.List;
import java.util.Set;
import javax.annotation.Nullable; import javax.annotation.Nullable;
@ -36,6 +37,7 @@ import com.google.common.base.Preconditions;
import com.google.common.base.Splitter; import com.google.common.base.Splitter;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
public class CitizensNPC extends AbstractNPC { public class CitizensNPC extends AbstractNPC {
private EntityController entityController; private EntityController entityController;
@ -99,13 +101,13 @@ public class CitizensNPC extends AbstractNPC {
// Load traits // Load traits
String traitNames = root.getString("traitnames"); String traitNames = root.getString("traitnames");
Iterable<DataKey> keys = traitNames.isEmpty() ? root.getRelative("traits").getSubKeys() : Iterables.transform( Set<DataKey> keys = Sets.newHashSet(root.getRelative("traits").getSubKeys());
Splitter.on(',').split(traitNames), new Function<String, DataKey>() { Iterables.addAll(keys, Iterables.transform(Splitter.on(',').split(traitNames), new Function<String, DataKey>() {
@Override @Override
public DataKey apply(@Nullable String input) { public DataKey apply(@Nullable String input) {
return root.getRelative("traits." + input); return root.getRelative("traits." + input);
} }
}); }));
for (DataKey traitKey : keys) { for (DataKey traitKey : keys) {
if (traitKey.keyExists("enabled") && !traitKey.getBoolean("enabled") if (traitKey.keyExists("enabled") && !traitKey.getBoolean("enabled")
&& traitKey.getRaw("enabled") instanceof Boolean) { && traitKey.getRaw("enabled") instanceof Boolean) {