// Copyright (c) 2015 Christopher "BlayTheNinth" Baker package net.blay09.mods.eirairc.config.settings; import net.blay09.mods.eirairc.addon.Compatibility; import net.blay09.mods.eirairc.api.config.StringList; import net.blay09.mods.eirairc.config.ConfigurationHandler; import net.blay09.mods.eirairc.config.base.MessageFormatConfig; import net.blay09.mods.eirairc.config.property.ConfigProperty; import net.minecraftforge.common.config.Configuration; public class BotSettings extends AbstractSettings { private static final String BOT = "bot"; public final ConfigProperty<String> ident = new ConfigProperty<>(manager, BOT, "ident", "EiraIRC"); public final ConfigProperty<String> description = new ConfigProperty<>(manager, BOT, "description", "EiraIRC Bot"); public final ConfigProperty<String> quitMessage = new ConfigProperty<>(manager, BOT, "quitMessage", "Lycopene~"); public final ConfigProperty<String> messageFormat = new ConfigProperty<>(manager, BOT, "messageFormat", "S-Light"); public final ConfigProperty<String> mcNickFormat = new ConfigProperty<>(manager, BOT, "mcNickFormat", "%s"); public final ConfigProperty<Boolean> relayDeathMessages = new ConfigProperty<>(manager, BOT, "relayDeathMessages", false); public final ConfigProperty<Boolean> relayMinecraftJoinLeave = new ConfigProperty<>(manager, BOT, "relayMinecraftJoinLeave", false); public final ConfigProperty<Boolean> relayIRCJoinLeave = new ConfigProperty<>(manager, BOT, "relayIRCJoinLeave", true); public final ConfigProperty<Boolean> relayNickChanges = new ConfigProperty<>(manager, BOT, "relayNickChanges", true); public final ConfigProperty<Boolean> filterLinks = new ConfigProperty<>(manager, BOT, "filterLinks", false); public final ConfigProperty<Boolean> hideNotices = new ConfigProperty<>(manager, BOT, "hideNotices", false); public final ConfigProperty<Boolean> convertColors = new ConfigProperty<>(manager, BOT, "convertColors", true); public final ConfigProperty<Boolean> allowPrivateMessages = new ConfigProperty<>(manager, BOT, "allowPrivateMessages", true); public final ConfigProperty<Boolean> sendAutoWho = new ConfigProperty<>(manager, BOT, "sendAutoWho", false); public final ConfigProperty<Boolean> relayBroadcasts = new ConfigProperty<>(manager, BOT, "relayBroadcasts", true); public final ConfigProperty<Boolean> interOp = new ConfigProperty<>(manager, BOT, "interOp", true); public final ConfigProperty<Boolean> relayAchievements = new ConfigProperty<>(manager, BOT, "relayAchievements", false); public final ConfigProperty<Boolean> allowCTCP = new ConfigProperty<>(manager, BOT, "allowCTCP", false); public final ConfigProperty<StringList> interOpAuthList = new ConfigProperty<>(manager, BOT, "interOpAuthList", new StringList()); public final ConfigProperty<StringList> disabledNativeCommands = new ConfigProperty<>(manager, BOT, "disabledNativeCommands", new StringList()); public final ConfigProperty<StringList> disabledInterOpCommands = new ConfigProperty<>(manager, BOT, "disabledInterOpCommands", new StringList()); public BotSettings(BotSettings parent) { super(parent, BOT); } public MessageFormatConfig getMessageFormat() { if(Compatibility.isTabbyChat2Installed()) { return ConfigurationHandler.getMessageFormat("TabbyChat2"); } return ConfigurationHandler.getMessageFormat(messageFormat.get()); } @Override public void load(Configuration config, boolean ignoreDefaultValues) { super.load(config, ignoreDefaultValues); config.getCategory(BOT).get(messageFormat.getName()).setValidValues(ConfigurationHandler.getAvailableMessageFormats()); } @Override public Configuration pullDummyConfig() { Configuration dummyConfig = super.pullDummyConfig(); dummyConfig.getCategory(BOT).get(messageFormat.getName()).setValidValues(ConfigurationHandler.getAvailableMessageFormats()); return dummyConfig; } }