diff --git a/src/main/java/com/tterrag/blurbg/BlurBG.java b/src/main/java/com/tterrag/blurbg/BlurBG.java index a7206fe..bc1783c 100644 --- a/src/main/java/com/tterrag/blurbg/BlurBG.java +++ b/src/main/java/com/tterrag/blurbg/BlurBG.java @@ -8,6 +8,8 @@ import org.apache.commons.lang3.ArrayUtils; import com.google.common.base.Throwables; +import static com.tterrag.blurbg.BlurBG.*; + import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiChat; import net.minecraft.client.renderer.EntityRenderer; @@ -18,6 +20,7 @@ import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.event.GuiOpenEvent; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.config.Configuration; +import net.minecraftforge.fml.client.event.ConfigChangedEvent.OnConfigChangedEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod.EventHandler; import net.minecraftforge.fml.common.Mod.Instance; @@ -27,12 +30,18 @@ import net.minecraftforge.fml.common.gameevent.TickEvent.Phase; import net.minecraftforge.fml.common.gameevent.TickEvent.RenderTickEvent; import net.minecraftforge.fml.relauncher.ReflectionHelper; -@Mod(modid = "blurbg", name = "BlurBG", version = "@VERSION@", acceptedMinecraftVersions = "[1.9, 1.12)", clientSideOnly = true) +@Mod(modid = MODID, name = MOD_NAME, version = VERSION, acceptedMinecraftVersions = "[1.9, 1.12)", clientSideOnly = true, guiFactory = "com.tterrag.blurbg.config.BlurGuiFactory") public class BlurBG { + public static final String MODID = "blurbg"; + public static final String MOD_NAME = "BlurBG"; + public static final String VERSION = "@VERSION@"; + @Instance public static BlurBG instance; + public Configuration config; + private String[] blurExclusions; private Field _listShaders; @@ -45,7 +54,11 @@ public class BlurBG { public void preInit(FMLPreInitializationEvent event) { MinecraftForge.EVENT_BUS.register(this); - Configuration config = new Configuration(new File(event.getModConfigurationDirectory(), "blurbg.cfg")); + config = new Configuration(new File(event.getModConfigurationDirectory(), "blurbg.cfg")); + saveConfig(); + } + + private void saveConfig() { blurExclusions = config.getStringList("guiExclusions", Configuration.CATEGORY_GENERAL, new String[] { GuiChat.class.getName(), @@ -66,6 +79,13 @@ public class BlurBG { config.save(); } + @SubscribeEvent + public void onConfigChanged(OnConfigChangedEvent event) { + if (event.getModID().equals(MODID)) { + saveConfig(); + } + } + @SuppressWarnings("null") @SubscribeEvent public void onGuiChange(GuiOpenEvent event) { diff --git a/src/main/java/com/tterrag/blurbg/config/BlurConfigGui.java b/src/main/java/com/tterrag/blurbg/config/BlurConfigGui.java new file mode 100644 index 0000000..dd6fb91 --- /dev/null +++ b/src/main/java/com/tterrag/blurbg/config/BlurConfigGui.java @@ -0,0 +1,15 @@ +package com.tterrag.blurbg.config; + +import com.tterrag.blurbg.BlurBG; + +import net.minecraft.client.gui.GuiScreen; +import net.minecraftforge.common.config.ConfigElement; +import net.minecraftforge.common.config.Configuration; +import net.minecraftforge.fml.client.config.GuiConfig; + +public class BlurConfigGui extends GuiConfig { + + public BlurConfigGui(GuiScreen parentScreen) { + super(parentScreen, new ConfigElement(BlurBG.instance.config.getCategory(Configuration.CATEGORY_GENERAL)).getChildElements(), "blurbg", false, false, "blurbg.config.title"); + } +} diff --git a/src/main/java/com/tterrag/blurbg/config/BlurGuiFactory.java b/src/main/java/com/tterrag/blurbg/config/BlurGuiFactory.java new file mode 100644 index 0000000..bd5fefb --- /dev/null +++ b/src/main/java/com/tterrag/blurbg/config/BlurGuiFactory.java @@ -0,0 +1,30 @@ +package com.tterrag.blurbg.config; + +import java.util.Set; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiScreen; +import net.minecraftforge.fml.client.IModGuiFactory; + +public class BlurGuiFactory implements IModGuiFactory { + + @Override + public void initialize(Minecraft minecraftInstance) {} + + @Override + public Class mainConfigGuiClass() { + return BlurConfigGui.class; + } + + @Override + public Set runtimeGuiCategories() { + return null; + } + + @Override + @Deprecated + public RuntimeOptionGuiHandler getHandlerFor(RuntimeOptionCategoryElement element) { + return null; + } + +} diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info new file mode 100644 index 0000000..4b241a1 --- /dev/null +++ b/src/main/resources/mcmod.info @@ -0,0 +1,16 @@ +[ +{ + "modid": "blurbg", + "name": "BlurBG", + "description": "Adds a blurry background when viewing GUIs", + "version": "${version}", + "mcversion": "${mcversion}", + "url": "http://tterrag.com", + "updateUrl": "http://ci.tterrag.com/job/BlurBG", + "authorList": ["tterrag"], + "credits": "", + "logoFile": "", + "screenshots": [], + "dependencies": [] +} +] \ No newline at end of file