Source:
public void addNewEntry(int index) { if (configElement.isList() && configElement.getArrayEntryClass() != null) { Class<? extends IArrayEntry> clazz = configElement.getArrayEntryClass(); try { Object value; switch(configElement.getType()) { case BOOLEAN: value = true; break; case INTEGER: value = 0; break; case DOUBLE: value = 0.0D; break; default: value = ""; break; } listEntries.add(index, clazz.getConstructor(GuiEditArray.class, GuiEditArrayEntries.class, IConfigElement.class, Object.class).newInstance(this.owningGui, this, configElement, value)); } catch (Throwable e) { FMLLog.severe("There was a critical error instantiating the custom IGuiEditListEntry for property %s.", configElement.getName()); e.printStackTrace(); } } else if (configElement.isList() && configElement.getType() == ConfigGuiType.BOOLEAN) listEntries.add(index, new BooleanEntry(this.owningGui, this, this.configElement, true)); else if (configElement.isList() && configElement.getType() == ConfigGuiType.INTEGER) listEntries.add(index, new IntegerEntry(this.owningGui, this, this.configElement, 0)); else if (configElement.isList() && configElement.getType() == ConfigGuiType.DOUBLE) listEntries.add(index, new DoubleEntry(this.owningGui, this, this.configElement, 0.0D)); else if (configElement.isList()) listEntries.add(index, new StringEntry(this.owningGui, this, this.configElement, "")); this.canAddMoreEntries = !configElement.isListLengthFixed() && (configElement.getMaxListLength() == -1 || this.listEntries.size() - 1 < configElement.getMaxListLength()); keyTyped((char) Keyboard.CHAR_NONE, Keyboard.KEY_END); }

Target:
public void addNewEntry(int index) { if (configElement.isList() && configElement.getArrayEntryClass() != null) { Class<? extends IArrayEntry> clazz = configElement.getArrayEntryClass(); try { Object value; switch (configElement.getType()) { case BOOLEAN: value = true; break; case INTEGER: value = 0; break; case DOUBLE: value = 0.0D; break; default: value = ""; } listEntries.add(index, clazz.getConstructor(GuiEditArray.class, GuiEditArrayEntries.class, IConfigElement.class, Object.class).newInstance(this.owningGui, this, configElement, value)); } catch (Throwable e) { FMLLog.log(Level.ERROR, e, "There was a critical error instantiating the custom IGuiEditListEntry for property %s.", configElement.getName()); } } else if (configElement.isList() && configElement.getType() == ConfigGuiType.BOOLEAN) listEntries.add(index, new BooleanEntry(this.owningGui, this, this.configElement, true)); else if (configElement.isList() && configElement.getType() == ConfigGuiType.INTEGER) listEntries.add(index, new IntegerEntry(this.owningGui, this, this.configElement, 0)); else if (configElement.isList() && configElement.getType() == ConfigGuiType.DOUBLE) listEntries.add(index, new DoubleEntry(this.owningGui, this, this.configElement, 0.0D)); else if (configElement.isList()) listEntries.add(index, new StringEntry(this.owningGui, this, this.configElement, "")); this.canAddMoreEntries = !configElement.isListLengthFixed() && (configElement.getMaxListLength() == -1 || this.listEntries.size() - 1 < configElement.getMaxListLength()); keyTyped((char) Keyboard.CHAR_NONE, Keyboard.KEY_END); }