From 11b922f7d1cf08d4bfa48eb9ae479654a04a3031 Mon Sep 17 00:00:00 2001 From: Yavin7 Date: Sun, 11 Nov 2018 12:20:37 -0600 Subject: [PATCH] Added Config Support --- .../net/yseven/findyourway/CommonProxy.java | 10 +++ .../java/net/yseven/findyourway/Config.java | 36 +++++++++++ .../net/yseven/findyourway/FindYourWay.java | 2 +- .../net/yseven/findyourway/item/ModItems.java | 61 ++++++++++++++----- src/main/resources/mcmod.info | 2 +- 5 files changed, 94 insertions(+), 17 deletions(-) create mode 100644 src/main/java/net/yseven/findyourway/Config.java diff --git a/src/main/java/net/yseven/findyourway/CommonProxy.java b/src/main/java/net/yseven/findyourway/CommonProxy.java index 74b0fa7..deb78e4 100644 --- a/src/main/java/net/yseven/findyourway/CommonProxy.java +++ b/src/main/java/net/yseven/findyourway/CommonProxy.java @@ -3,6 +3,7 @@ package net.yseven.findyourway; import net.minecraft.inventory.IInventory; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraftforge.common.config.Configuration; import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.event.FMLInitializationEvent; @@ -19,6 +20,7 @@ import net.yseven.findyourway.Network.MessageToServer; import net.yseven.findyourway.item.ItemCompassBase; import net.yseven.findyourway.item.ModItems; +import java.io.File; import java.util.ArrayList; @Mod.EventBusSubscriber @@ -26,11 +28,16 @@ public class CommonProxy { public static ArrayList compassList = new ArrayList(); public static SimpleNetworkWrapper simpleNetworkWrapper; + public static Configuration config; public static final byte MESSAGE_TO_SERVER_ID = 71; public static final byte MESSAGE_TO_CLIENT_ID = 72; public void preInit(FMLPreInitializationEvent event) { + File directory = event.getModConfigurationDirectory(); + config = new Configuration(new File(directory.getPath(), "findyourway.cfg")); + Config.readConfig(); + ModItems.init(); simpleNetworkWrapper = NetworkRegistry.INSTANCE.newSimpleChannel(FindYourWay.modId); @@ -43,6 +50,9 @@ public class CommonProxy { } public void postInit(FMLPostInitializationEvent event) { + if(config.hasChanged()){ + config.save(); + } } diff --git a/src/main/java/net/yseven/findyourway/Config.java b/src/main/java/net/yseven/findyourway/Config.java new file mode 100644 index 0000000..05d74b1 --- /dev/null +++ b/src/main/java/net/yseven/findyourway/Config.java @@ -0,0 +1,36 @@ +package net.yseven.findyourway; + +import net.minecraftforge.common.config.Configuration; + +public class Config { + private static final String CATEGORY_GENERAL = "ggeneral"; + + public static boolean useEnderCompass = true; + public static boolean useFortressCompass = true; + public static boolean useMansionCompass = true; + public static boolean useMonumentCompass = true; + public static boolean useVillageCompass = true; + + public static void readConfig() { + Configuration cfg = CommonProxy.config; + try { + cfg.load(); + initGeneralConfig(cfg); + } catch (Exception e) { + System.out.println("Could not load config for Find Your Way"); + } finally { + if (cfg.hasChanged()) { + cfg.save(); + } + } + } + + private static void initGeneralConfig(Configuration cfg) { + cfg.addCustomCategoryComment(CATEGORY_GENERAL, "General configuration"); + useEnderCompass = cfg.getBoolean("enderCompass", CATEGORY_GENERAL, useEnderCompass, "Leave as true to enable Ender Compass"); + useFortressCompass = cfg.getBoolean("fortressCompass", CATEGORY_GENERAL, useEnderCompass, "Leave as true to enable Fortress Compass"); + useMansionCompass = cfg.getBoolean("mansionCompass", CATEGORY_GENERAL, useEnderCompass, "Leave as true to enable Mansion Compass"); + useMonumentCompass = cfg.getBoolean("monumentCompass", CATEGORY_GENERAL, useEnderCompass, "Leave as true to enable Monument Compass"); + useVillageCompass = cfg.getBoolean("villageCompass", CATEGORY_GENERAL, useEnderCompass, "Leave as true to enable Village Compass"); + } +} diff --git a/src/main/java/net/yseven/findyourway/FindYourWay.java b/src/main/java/net/yseven/findyourway/FindYourWay.java index a5d93db..244502f 100644 --- a/src/main/java/net/yseven/findyourway/FindYourWay.java +++ b/src/main/java/net/yseven/findyourway/FindYourWay.java @@ -12,7 +12,7 @@ import net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper; public class FindYourWay { public static final String modId = "findyourway"; public static final String name = "Find Your Way"; - public static final String version = "1.1.0"; + public static final String version = "1.2.0"; @Mod.Instance(modId) public static FindYourWay instance; diff --git a/src/main/java/net/yseven/findyourway/item/ModItems.java b/src/main/java/net/yseven/findyourway/item/ModItems.java index 9c2d1ba..f54ea1e 100644 --- a/src/main/java/net/yseven/findyourway/item/ModItems.java +++ b/src/main/java/net/yseven/findyourway/item/ModItems.java @@ -5,6 +5,7 @@ import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; +import net.yseven.findyourway.Config; import net.yseven.findyourway.FindYourWay; import static net.yseven.findyourway.FindYourWay.modId; @@ -17,27 +18,57 @@ public class ModItems { public static ItemCompassBase MANSION_COMPASS; public static void init(){ - ENDER_COMPASS = new ItemCompassBase("ender_compass", "Stronghold"); - VILLAGE_COMPASS = new ItemCompassBase("village_compass", "Village"); - FORTRESS_COMPASS = new ItemCompassBase("fortress_compass", "Fortress"); - MONUMENT_COMPASS = new ItemCompassBase("monument_compass", "Monument"); - MANSION_COMPASS = new ItemCompassBase("mansion_compass", "Mansion"); + if(Config.useEnderCompass) { + ENDER_COMPASS = new ItemCompassBase("ender_compass", "Stronghold"); + } + if(Config.useFortressCompass) { + FORTRESS_COMPASS = new ItemCompassBase("fortress_compass", "Fortress"); + } + if(Config.useMansionCompass) { + MANSION_COMPASS = new ItemCompassBase("mansion_compass", "Mansion"); + } + if(Config.useMonumentCompass) { + MONUMENT_COMPASS = new ItemCompassBase("monument_compass", "Monument"); + } + if(Config.useVillageCompass) { + VILLAGE_COMPASS = new ItemCompassBase("village_compass", "Village"); + } } @SideOnly(Side.CLIENT) public static void registerModels() { - ENDER_COMPASS.registerItemModel(); - VILLAGE_COMPASS.registerItemModel(); - FORTRESS_COMPASS.registerItemModel(); - MONUMENT_COMPASS.registerItemModel(); - MANSION_COMPASS.registerItemModel(); + if(Config.useEnderCompass) { + ENDER_COMPASS.registerItemModel(); + } + if(Config.useFortressCompass) { + FORTRESS_COMPASS.registerItemModel(); + } + if(Config.useMansionCompass) { + MANSION_COMPASS.registerItemModel(); + } + if(Config.useMonumentCompass) { + MONUMENT_COMPASS.registerItemModel(); + } + if(Config.useVillageCompass) { + VILLAGE_COMPASS.registerItemModel(); + } } public static void registerItems(RegistryEvent.Register event) { - event.getRegistry().register(ENDER_COMPASS); - event.getRegistry().register(VILLAGE_COMPASS); - event.getRegistry().register(FORTRESS_COMPASS); - event.getRegistry().register(MONUMENT_COMPASS); - event.getRegistry().register(MANSION_COMPASS); + if(Config.useEnderCompass) { + event.getRegistry().register(ENDER_COMPASS); + } + if(Config.useFortressCompass) { + event.getRegistry().register(FORTRESS_COMPASS); + } + if(Config.useMansionCompass) { + event.getRegistry().register(MANSION_COMPASS); + } + if(Config.useMonumentCompass) { + event.getRegistry().register(MONUMENT_COMPASS); + } + if(Config.useVillageCompass) { + event.getRegistry().register(VILLAGE_COMPASS); + } } } \ No newline at end of file diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index 9a43ec9..4e2b1b5 100644 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -2,7 +2,7 @@ "modid": "findyourway", "name": "Find Your Way", "description": "", - "version": "1.12.2-1.1.0", + "version": "1.12.2-1.2.0", "mcversion": "1.12.2", "url": "", "updateUrl": "",