Fixed disguise options code from not working for all disguises

This commit is contained in:
libraryaddict 2020-01-22 19:28:12 +13:00
parent da20612ae9
commit f7f551caa8
No known key found for this signature in database
GPG Key ID: 052E4FBCD257AEA4

View File

@ -246,37 +246,27 @@ public class DisguiseParser {
private static HashMap<String, Boolean> getDisguiseOptions(CommandSender sender, String permNode,
DisguisePerm type) {
switch (type.getType()) {
case PLAYER:
case FALLING_BLOCK:
case PAINTING:
case SPLASH_POTION:
case FISHING_HOOK:
case DROPPED_ITEM:
HashMap<String, Boolean> returns = new HashMap<>();
HashMap<String, Boolean> returns = new HashMap<>();
String beginning = "libsdisguises.options." + permNode.toLowerCase() + ".";
String beginning = "libsdisguises.options." + permNode.toLowerCase() + ".";
for (PermissionAttachmentInfo permission : sender.getEffectivePermissions()) {
String lowerPerm = permission.getPermission().toLowerCase();
for (PermissionAttachmentInfo permission : sender.getEffectivePermissions()) {
String lowerPerm = permission.getPermission().toLowerCase();
if (lowerPerm.startsWith(beginning)) {
String[] split = lowerPerm.substring(beginning.length()).split("\\.");
if (lowerPerm.startsWith(beginning)) {
String[] split = lowerPerm.substring(beginning.length()).split("\\.");
if (split.length > 1) {
if (split[0].replace("_", "").equals(type.toReadable().toLowerCase().replace(" ", ""))) {
for (int i = 1; i < split.length; i++) {
returns.put(split[i], permission.getValue());
}
}
if (split.length > 1) {
if (split[0].replace("_", "").equals(type.toReadable().toLowerCase().replace(" ", ""))) {
for (int i = 1; i < split.length; i++) {
returns.put(split[i], permission.getValue());
}
}
}
return returns;
default:
return new HashMap<>();
}
}
return returns;
}
public static DisguisePerm getDisguisePerm(String name) {