Skip to content

Commit

Permalink
Update to 1.20, change to autoconfig
Browse files Browse the repository at this point in the history
  • Loading branch information
Sea-Kerman committed Jun 8, 2023
1 parent d187b03 commit 3c4cb86
Show file tree
Hide file tree
Showing 13 changed files with 96 additions and 246 deletions.
3 changes: 1 addition & 2 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
plugins {
id 'fabric-loom' version '0.12-SNAPSHOT'
id 'fabric-loom' version '1.2-SNAPSHOT'
id 'maven-publish'
}

Expand Down Expand Up @@ -32,7 +32,6 @@ dependencies {
modImplementation("me.shedaniel.cloth:cloth-config-fabric:${project.cloth_config_version}") {
exclude(group: "net.fabricmc.fabric-api")
}
include("me.shedaniel.cloth:cloth-config-fabric:${project.cloth_config_version}")

// Fabric API. This is technically optional, but you probably want it anyway.
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
Expand Down
14 changes: 7 additions & 7 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,16 @@ org.gradle.jvmargs=-Xmx1G

# Fabric Properties
# check these on https://fabricmc.net/develop
minecraft_version=1.19.1
yarn_mappings=1.19.1+build.1
loader_version=0.14.8
minecraft_version=1.20
yarn_mappings=1.20+build.1
loader_version=0.14.21

# Mod Properties
mod_version = 1.1.1-1.19.1
mod_version = 1.2.0-1.20
maven_group = net.seakerman
archives_base_name = rangefinderhud

# Dependencies
fabric_version=0.58.5+1.19.1
modmenu_version=4.0.5
cloth_config_version=8.0.75
fabric_version=0.83.0+1.20
modmenu_version=7.0.0
cloth_config_version=11.0.99
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
58 changes: 8 additions & 50 deletions src/main/java/net/seakerman/rangefinderhud/RangefinderHUD.java
Original file line number Diff line number Diff line change
@@ -1,24 +1,16 @@
package net.seakerman.rangefinderhud;

import net.fabricmc.api.ClientModInitializer;
import net.seakerman.rangefinderhud.config.Config;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import net.fabricmc.loader.api.FabricLoader;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import net.seakerman.rangefinderhud.config.ModConfig;
import me.shedaniel.autoconfig.AutoConfig;
import me.shedaniel.autoconfig.serializer.JanksonConfigSerializer;

public class RangefinderHUD implements ClientModInitializer {
public static Config rangefinderHUDConfigData;
// This logger is used to write text to the console and the log file.
// It is considered best practice to use your mod id as the logger's name.
// That way, it's clear which mod wrote info, warnings, and errors.
public static final Logger LOGGER = LoggerFactory.getLogger("rangefinderhud");
public static ModConfig config;
public static final Logger LOGGER = LoggerFactory.getLogger("RangefinderHUD");

@Override
public void onInitializeClient() {
Expand All @@ -27,43 +19,9 @@ public void onInitializeClient() {
// Proceed with mild caution.

LOGGER.info("RangefinderHUD started");
rfh$loadConfig();
AutoConfig.register(ModConfig.class, JanksonConfigSerializer::new);
config = AutoConfig.getConfigHolder(ModConfig.class).getConfig();
LOGGER.info("Initialized successfully.");
}

// config code based on bedrockify & actually unbreaking fabric config code
// https://github.com/juancarloscp52/BedrockIfy/blob/1.17.x/src/main/java/me/juancarloscp52/bedrockify/Bedrockify.java
// https://github.com/wutdahack/ActuallyUnbreakingFabric/blob/1.18.1/src/main/java/wutdahack/actuallyunbreaking/ActuallyUnbreaking.java
public static void rfh$loadConfig() {
File config = new File(FabricLoader.getInstance().getConfigDir().toFile(), "rangefinderhud.json");
Gson gson = new GsonBuilder().setPrettyPrinting().create();
if (config.exists()) {
try {
FileReader fileReader = new FileReader(config);
rangefinderHUDConfigData = gson.fromJson(fileReader, Config.class);
fileReader.close();
saveConfig();
} catch (IOException e) {
System.out.println("Config could not be loaded, using defaults");
}
} else {
rangefinderHUDConfigData = new Config();
saveConfig();
}
}

public static void saveConfig() {
File config = new File(FabricLoader.getInstance().getConfigDir().toFile(), "rangefinderhud.json");
Gson gson = new GsonBuilder().setPrettyPrinting().create();
if (!config.getParentFile().exists()) {
//noinspection ResultOfMethodCallIgnored
config.getParentFile().mkdir();
}
try {
FileWriter fileWriter = new FileWriter(config);
fileWriter.write(gson.toJson(rangefinderHUDConfigData));
fileWriter.close();
} catch (IOException e) {
System.out.println("Config file could not be saved");
}
}
}
21 changes: 0 additions & 21 deletions src/main/java/net/seakerman/rangefinderhud/config/Config.java

This file was deleted.

30 changes: 30 additions & 0 deletions src/main/java/net/seakerman/rangefinderhud/config/ModConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package net.seakerman.rangefinderhud.config;

import me.shedaniel.autoconfig.ConfigData; // autoconfig is better for settings menu
import me.shedaniel.autoconfig.annotation.Config; // easy-to-read code and less files
import me.shedaniel.autoconfig.annotation.ConfigEntry;

@Config(name = "rangefinderhud")
public class ModConfig implements ConfigData {

@ConfigEntry.Gui.Tooltip
public boolean onOff = true;

@ConfigEntry.Gui.Tooltip
public int x = 50;
@ConfigEntry.Gui.Tooltip
public int y = 50;

@ConfigEntry.Gui.Tooltip
public int offset = 10;

@ConfigEntry.Gui.Tooltip
public int precision = 2;

@ConfigEntry.ColorPicker(allowAlpha = true) //color picker entry type
public int color1 = 0xFF00C832; //#ARGB format

@ConfigEntry.ColorPicker(allowAlpha = true)
public int color2 = 0xFFC8C8C8;

}
113 changes: 0 additions & 113 deletions src/main/java/net/seakerman/rangefinderhud/config/RFHConfigScreen.java

This file was deleted.

13 changes: 3 additions & 10 deletions src/main/java/net/seakerman/rangefinderhud/config/RFHModMenu.java
Original file line number Diff line number Diff line change
@@ -1,25 +1,18 @@
package net.seakerman.rangefinderhud.config;

import me.shedaniel.autoconfig.AutoConfig;
import com.terraformersmc.modmenu.api.ConfigScreenFactory;
import com.terraformersmc.modmenu.api.ModMenuApi;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.MinecraftClient;
import org.apache.logging.log4j.LogManager;

@Environment(EnvType.CLIENT)
public class RFHModMenu implements ModMenuApi
{
@Override
public ConfigScreenFactory<?> getModConfigScreenFactory() {
try {
RFHConfigScreen configGUI = new RFHConfigScreen();
return parent -> configGUI.getConfigScreen(parent, MinecraftClient.getInstance().world != null);
} catch (NoClassDefFoundError e) {
//I definitely didn't catch an error, you saw nothing...
LogManager.getLogger().warn("[Rangefinder HUD]: Mod settings cannot be edited in Mod Menu without cloth config");
return null;
}

return screen -> AutoConfig.getConfigScreen(ModConfig.class, screen).get();

}
}
Loading

0 comments on commit 3c4cb86

Please sign in to comment.