Skip to content

Commit

Permalink
Version 1.2 - Config GUI
Browse files Browse the repository at this point in the history
  • Loading branch information
Brittank88 committed Mar 27, 2024
1 parent a21ed89 commit ad91575
Show file tree
Hide file tree
Showing 9 changed files with 123 additions and 32 deletions.
3 changes: 0 additions & 3 deletions src/main/java/com/brittank88/clipshot/ClientProxy.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,5 @@ public class ClientProxy extends CommonProxy {
@Override
public void preInit(FMLPreInitializationEvent event) {
super.preInit(event);

// Synchronize the configuration file.
Config.synchronizeConfiguration(event.getSuggestedConfigurationFile());
}
}
14 changes: 11 additions & 3 deletions src/main/java/com/brittank88/clipshot/ClipShot.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.brittank88.clipshot;

import static com.brittank88.clipshot.ClipShot.GUI_FACTORY;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

Expand All @@ -8,11 +10,17 @@
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;

@Mod(modid = ClipShot.MODID, version = Tags.VERSION, name = "ClipShot", acceptedMinecraftVersions = "[1.7.10]")
@Mod(
modid = ClipShot.MOD_ID,
version = Tags.VERSION,
name = "ClipShot",
acceptedMinecraftVersions = "[1.7.10]",
guiFactory = GUI_FACTORY)
public class ClipShot {

public static final String MODID = "clipshot";
public static final Logger LOG = LogManager.getLogger(MODID);
public static final String GUI_FACTORY = "com.brittank88.clipshot.client.gui.GuiFactory";
public static final String MOD_ID = "clipshot";
public static final Logger LOG = LogManager.getLogger(MOD_ID);

@SidedProxy(clientSide = "com.brittank88.clipshot.ClientProxy", serverSide = "com.brittank88.clipshot.CommonProxy")
@SuppressWarnings("unused")
Expand Down
9 changes: 9 additions & 0 deletions src/main/java/com/brittank88/clipshot/CommonProxy.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
import java.awt.HeadlessException;
import java.awt.Toolkit;

import com.brittank88.clipshot.config.ConfigurationHandler;

import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;

Expand All @@ -15,6 +18,12 @@ public void preInit(FMLPreInitializationEvent event) {
if (event.getSide()
.isServer())
ClipShot.LOG.warn("ClipShot will do nothing on a dedicated server as it is a client-only mod!");

// Initialise the configuration file.
ConfigurationHandler.init(event.getSuggestedConfigurationFile());
FMLCommonHandler.instance()
.bus()
.register(new ConfigurationHandler());
}

// load "Do your mod setup. Build whatever data structures you care about. Register recipes." (Remove if not needed)
Expand Down
22 changes: 0 additions & 22 deletions src/main/java/com/brittank88/clipshot/Config.java

This file was deleted.

4 changes: 2 additions & 2 deletions src/main/java/com/brittank88/clipshot/ScreenshotHandler.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.brittank88.clipshot;

import static com.brittank88.clipshot.ClipShot.MODID;
import static com.brittank88.clipshot.ClipShot.MOD_ID;
import static net.minecraft.client.Minecraft.isRunningOnMac;

import java.awt.Toolkit;
Expand All @@ -16,7 +16,7 @@

public abstract class ScreenshotHandler {

public static final Logger LOG = LogManager.getLogger(MODID + ".DefaultHandler");
public static final Logger LOG = LogManager.getLogger(MOD_ID + ".DefaultHandler");

public static void handleScreenshot(BufferedImage bufferedImage) {
if (isRunningOnMac) {
Expand Down
22 changes: 22 additions & 0 deletions src/main/java/com/brittank88/clipshot/client/gui/GuiConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.brittank88.clipshot.client.gui;

import static com.brittank88.clipshot.config.ConfigurationHandler.*;

import net.minecraft.client.gui.GuiScreen;
import net.minecraftforge.common.config.ConfigElement;
import net.minecraftforge.common.config.Configuration;

import com.brittank88.clipshot.ClipShot;

public class GuiConfig extends cpw.mods.fml.client.config.GuiConfig {

public GuiConfig(GuiScreen guiScreen) {
super(
guiScreen,
new ConfigElement<>(getConfiguration().getCategory(Configuration.CATEGORY_GENERAL)).getChildElements(),
ClipShot.MOD_ID,
false,
false,
GuiConfig.getAbridgedConfigPath(getConfiguration().toString()));
}
}
32 changes: 32 additions & 0 deletions src/main/java/com/brittank88/clipshot/client/gui/GuiFactory.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.brittank88.clipshot.client.gui;

import java.util.Set;

import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiScreen;

import cpw.mods.fml.client.IModGuiFactory;

@SuppressWarnings("unused")
public class GuiFactory implements IModGuiFactory {

@Override
public void initialize(Minecraft minecraftInstance) {

}

@Override
public Class<? extends GuiScreen> mainConfigGuiClass() {
return GuiConfig.class;
}

@Override
public Set<RuntimeOptionCategoryElement> runtimeGuiCategories() {
return null;
}

@Override
public RuntimeOptionGuiHandler getHandlerFor(RuntimeOptionCategoryElement element) {
return null;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package com.brittank88.clipshot.config;

import java.io.File;

import net.minecraftforge.common.config.Configuration;

import com.brittank88.clipshot.ClipShot;

import cpw.mods.fml.client.event.ConfigChangedEvent;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;

public class ConfigurationHandler {

public static Configuration configuration;

// Initially acts as the default value, but will be updated from the configuration file.
public static Boolean saveScreenshotsAsFiles = true;

public static void init(File configFile) {
if (configuration == null) {
configuration = new Configuration(configFile);
loadConfiguration();
}
}

private static void loadConfiguration() {
saveScreenshotsAsFiles = configuration.getBoolean(
"Save Screenshots as Files",
Configuration.CATEGORY_GENERAL,
saveScreenshotsAsFiles,
"Determines if screenshots are also saved as files, or ONLY copied to the clipboard.");

if (configuration.hasChanged()) configuration.save();
}

@SubscribeEvent
@SuppressWarnings("unused")
public void onConfigChanged(ConfigChangedEvent.OnConfigChangedEvent event) {
if (event.modID.equals(ClipShot.MOD_ID)) loadConfiguration();
}

public static Configuration getConfiguration() {
return configuration;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;

import com.brittank88.clipshot.Config;
import com.brittank88.clipshot.ScreenshotHandler;
import com.brittank88.clipshot.config.ConfigurationHandler;
import com.llamalad7.mixinextras.sugar.Local;

@Mixin(ScreenShotHelper.class)
Expand All @@ -32,7 +32,7 @@ private static void saveScreenshot(File p_148259_0_, String p_148259_1_, int p_1

ScreenshotHandler.handleScreenshot(bufferedImage);

if (!Config.saveFile) {
if (!ConfigurationHandler.saveScreenshotsAsFiles) {
cir.setReturnValue(new ChatComponentTranslation("screenshot.copy_success"));
cir.cancel();
}
Expand Down

0 comments on commit ad91575

Please sign in to comment.