[Bleeding] More lenient command creation from plugin.yml. Fixes BUKKIT-1093
This commit is contained in:
parent
2ab4e6bdc7
commit
ff9fa6b32e
@ -202,24 +202,26 @@ public final class PluginDescriptionFile {
|
|||||||
try {
|
try {
|
||||||
for (Map.Entry<?, ?> command : ((Map<?, ?>) map.get("commands")).entrySet()) {
|
for (Map.Entry<?, ?> command : ((Map<?, ?>) map.get("commands")).entrySet()) {
|
||||||
ImmutableMap.Builder<String, Object> commandBuilder = ImmutableMap.<String, Object>builder();
|
ImmutableMap.Builder<String, Object> commandBuilder = ImmutableMap.<String, Object>builder();
|
||||||
|
if (command.getValue() != null) {
|
||||||
for (Map.Entry<?, ?> commandEntry : ((Map<?, ?>) command.getValue()).entrySet()) {
|
for (Map.Entry<?, ?> commandEntry : ((Map<?, ?>) command.getValue()).entrySet()) {
|
||||||
if (commandEntry.getValue() instanceof Iterable) {
|
if (commandEntry.getValue() instanceof Iterable) {
|
||||||
// This prevents internal alias list changes
|
// This prevents internal alias list changes
|
||||||
ImmutableList.Builder<Object> commandSubList = ImmutableList.<Object>builder();
|
ImmutableList.Builder<Object> commandSubList = ImmutableList.<Object>builder();
|
||||||
for (Object commandSubListItem : (Iterable<?>) commandEntry.getValue()) {
|
for (Object commandSubListItem : (Iterable<?>) commandEntry.getValue()) {
|
||||||
|
if (commandSubListItem != null) {
|
||||||
commandSubList.add(commandSubListItem);
|
commandSubList.add(commandSubListItem);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
commandBuilder.put(commandEntry.getKey().toString(), commandSubList.build());
|
commandBuilder.put(commandEntry.getKey().toString(), commandSubList.build());
|
||||||
} else if (commandEntry.getValue() != null) {
|
} else if (commandEntry.getValue() != null) {
|
||||||
commandBuilder.put(commandEntry.getKey().toString(), commandEntry.getValue());
|
commandBuilder.put(commandEntry.getKey().toString(), commandEntry.getValue());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
commandsBuilder.put(command.getKey().toString(), commandBuilder.build());
|
commandsBuilder.put(command.getKey().toString(), commandBuilder.build());
|
||||||
}
|
}
|
||||||
} catch (ClassCastException ex) {
|
} catch (ClassCastException ex) {
|
||||||
throw new InvalidDescriptionException(ex, "commands are of wrong type");
|
throw new InvalidDescriptionException(ex, "commands are of wrong type");
|
||||||
} catch (NullPointerException ex) {
|
|
||||||
throw new InvalidDescriptionException(ex, "commands are not properly defined");
|
|
||||||
}
|
}
|
||||||
commands = commandsBuilder.build();
|
commands = commandsBuilder.build();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user