From ff9fa6b32e8767765134b07be1082a8b3935b608 Mon Sep 17 00:00:00 2001 From: Wesley Wolfe Date: Sat, 10 Mar 2012 13:11:21 -0600 Subject: [Bleeding] More lenient command creation from plugin.yml. Fixes BUKKIT-1093 --- .../org/bukkit/plugin/PluginDescriptionFile.java | 24 ++++++++++++---------- 1 file changed, 13 insertions(+), 11 deletions(-) (limited to 'src/main/java/org') diff --git a/src/main/java/org/bukkit/plugin/PluginDescriptionFile.java b/src/main/java/org/bukkit/plugin/PluginDescriptionFile.java index 95505009..1b68db46 100644 --- a/src/main/java/org/bukkit/plugin/PluginDescriptionFile.java +++ b/src/main/java/org/bukkit/plugin/PluginDescriptionFile.java @@ -202,24 +202,26 @@ public final class PluginDescriptionFile { try { for (Map.Entry command : ((Map) map.get("commands")).entrySet()) { ImmutableMap.Builder commandBuilder = ImmutableMap.builder(); - for (Map.Entry commandEntry : ((Map) command.getValue()).entrySet()) { - if (commandEntry.getValue() instanceof Iterable) { - // This prevents internal alias list changes - ImmutableList.Builder commandSubList = ImmutableList.builder(); - for (Object commandSubListItem : (Iterable) commandEntry.getValue()) { - commandSubList.add(commandSubListItem); + if (command.getValue() != null) { + for (Map.Entry commandEntry : ((Map) command.getValue()).entrySet()) { + if (commandEntry.getValue() instanceof Iterable) { + // This prevents internal alias list changes + ImmutableList.Builder commandSubList = ImmutableList.builder(); + for (Object commandSubListItem : (Iterable) commandEntry.getValue()) { + if (commandSubListItem != null) { + commandSubList.add(commandSubListItem); + } + } + commandBuilder.put(commandEntry.getKey().toString(), commandSubList.build()); + } else if (commandEntry.getValue() != null) { + commandBuilder.put(commandEntry.getKey().toString(), commandEntry.getValue()); } - commandBuilder.put(commandEntry.getKey().toString(), commandSubList.build()); - } else if (commandEntry.getValue() != null) { - commandBuilder.put(commandEntry.getKey().toString(), commandEntry.getValue()); } } commandsBuilder.put(command.getKey().toString(), commandBuilder.build()); } } catch (ClassCastException ex) { throw new InvalidDescriptionException(ex, "commands are of wrong type"); - } catch (NullPointerException ex) { - throw new InvalidDescriptionException(ex, "commands are not properly defined"); } commands = commandsBuilder.build(); } -- cgit v1.2.3