Only allow one server and one world in context sets parsed from command args

This commit is contained in:
Luck 2017-04-04 13:47:50 +01:00
parent b997ab6e3f
commit 055dfb000d
No known key found for this signature in database
GPG Key ID: EFA9B3EC5FD90F8B

View File

@ -33,6 +33,7 @@ import me.lucko.luckperms.common.commands.CommandException;
import me.lucko.luckperms.common.utils.ArgumentChecker;
import me.lucko.luckperms.common.utils.DateUtil;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Function;
@ -170,6 +171,24 @@ public class ArgumentUtils {
set.add(key, value);
}
// remove excess entries from the set.
// (it can only have one server and one world.)
List<String> servers = new ArrayList<>(set.getValues("server"));
if (servers.size() > 1) {
// start iterating at index 1
for (int i = 1; i < servers.size(); i++) {
set.remove("server", servers.get(i));
}
}
List<String> worlds = new ArrayList<>(set.getValues("world"));
if (worlds.size() > 1) {
// start iterating at index 1
for (int i = 1; i < worlds.size(); i++) {
set.remove("world", worlds.get(i));
}
}
return set;
} else {
return MutableContextSet.create();