Skip to content

Commit

Permalink
Change to using MoulConfig's ManagedConfig for 1.8.9 also
Browse files Browse the repository at this point in the history
  • Loading branch information
VixidDev committed Jun 28, 2024
1 parent 11a7bd4 commit 3030114
Show file tree
Hide file tree
Showing 8 changed files with 59 additions and 104 deletions.
5 changes: 3 additions & 2 deletions src/main/java/dev/vixid/vsm/config/VSMConfig.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package dev.vixid.vsm.config;

import com.google.gson.annotations.Expose;
import dev.vixid.vsm.VSM;
import dev.vixid.vsm.config.features.SpotifyConfig;
import io.github.notenoughupdates.moulconfig.Config;
import io.github.notenoughupdates.moulconfig.Social;
Expand All @@ -15,7 +16,7 @@ public class VSMConfig extends Config {
@Override
public List<Social> getSocials() {
return Collections.singletonList(
Social.forLink("GitHub", GITHUB, "https://github.com/VixidDev")
Social.forLink("GitHub", GITHUB, "https://github.com/VixidDev/VSM")
);
}

Expand All @@ -26,7 +27,7 @@ public String getTitle() {

@Override
public void saveNow() {
ConfigManager.INSTANCE.saveConfig();
VSM.getConfig().saveToFile();
}

@Expose
Expand Down
46 changes: 46 additions & 0 deletions src/main/java/dev/vixid/vsm/config/core/VSMGsonMapper.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package dev.vixid.vsm.config.core;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import io.github.notenoughupdates.moulconfig.ChromaColour;
import io.github.notenoughupdates.moulconfig.LegacyStringChromaColourTypeAdapter;
import io.github.notenoughupdates.moulconfig.managed.DataMapper;
import io.github.notenoughupdates.moulconfig.observer.PropertyTypeAdapterFactory;
import java.lang.reflect.InvocationTargetException;
import org.jetbrains.annotations.NotNull;

public class VSMGsonMapper<T> implements DataMapper<T> {

public Class<T> clazz;

public Gson gson = new GsonBuilder()
.registerTypeAdapterFactory(new PropertyTypeAdapterFactory())
.registerTypeAdapter(ChromaColour.class, new LegacyStringChromaColourTypeAdapter(true))
.excludeFieldsWithoutExposeAnnotation()
.setPrettyPrinting()
.create();

public VSMGsonMapper(Class<T> clazz) {
this.clazz = clazz;
}

@NotNull
@Override
public String serialize(T value) {
return gson.toJson(value);
}

@Override
public T createDefault() {
try {
return clazz.getDeclaredConstructor().newInstance();
} catch (InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException e) {
throw new RuntimeException(e);
}
}

@Override
public T deserialize(@NotNull String string) {
return gson.fromJson(string, clazz);
}
}
10 changes: 6 additions & 4 deletions src/main/kotlin/dev/vixid/vsm/VSM.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@ package dev.vixid.vsm

import com.github.kwhat.jnativehook.GlobalScreen
import dev.vixid.vsm.commands.Commands
import dev.vixid.vsm.config.ConfigManager
import dev.vixid.vsm.config.VSMConfig
import dev.vixid.vsm.config.core.VSMGsonMapper
import dev.vixid.vsm.features.SpotifyDisplay
import dev.vixid.vsm.jnativehook.VSMLibraryLocator
import dev.vixid.vsm.overlays.OverlayPositions
import io.github.notenoughupdates.moulconfig.managed.ManagedConfig
import java.io.File
import kotlinx.coroutines.CoroutineName
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Job
Expand All @@ -30,8 +32,6 @@ class VSM {

@Mod.EventHandler
fun init(event: FMLInitializationEvent) {
ConfigManager.firstLoad()

MinecraftForge.EVENT_BUS.register(this)

SpotifyDisplay.initialise()
Expand All @@ -56,7 +56,9 @@ class VSM {

companion object {
@JvmStatic
val config: VSMConfig get() = ConfigManager.config
val config = ManagedConfig.create(File("config/vsm/config.json"), VSMConfig::class.java) {
mapper = VSMGsonMapper(this.clazz)
}

private val globalJob: Job = Job(null)
val coroutineScope = CoroutineScope(CoroutineName("VSM") + SupervisorJob(globalJob))
Expand Down
4 changes: 2 additions & 2 deletions src/main/kotlin/dev/vixid/vsm/commands/Commands.kt
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package dev.vixid.vsm.commands

import dev.vixid.vsm.config.ConfigGuiManager
import dev.vixid.vsm.VSM
import net.minecraft.command.ICommandSender
import net.minecraftforge.client.ClientCommandHandler

object Commands {

fun initCommands() {
registerCommand("vsm") { ConfigGuiManager.openConfig() }
registerCommand("vsm") { VSM.screenToOpen = VSM.config.getGui() }
}

private fun registerCommand(name: String, function: (Array<String>) -> Unit) {
Expand Down
16 changes: 0 additions & 16 deletions src/main/kotlin/dev/vixid/vsm/config/ConfigGuiManager.kt

This file was deleted.

78 changes: 0 additions & 78 deletions src/main/kotlin/dev/vixid/vsm/config/ConfigManager.kt

This file was deleted.

2 changes: 1 addition & 1 deletion src/main/kotlin/dev/vixid/vsm/features/SpotifyDisplay.kt
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import net.minecraftforge.fml.common.gameevent.TickEvent

object SpotifyDisplay : Overlay() {

private val config: SpotifyConfig get() = VSM.config.spotifyConfig
private val config: SpotifyConfig get() = VSM.config.instance.spotifyConfig

private var songName: String = "§cCannot detect song name!"
private var totalTicks = 0
Expand Down
2 changes: 1 addition & 1 deletion src/main/kotlin/dev/vixid/vsm/overlays/PositionEditor.kt
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ class PositionEditor(private val editorOverlays: MutableMap<UUID, Pair<String, P
}

override fun onGuiClosed() {
VSM.config.saveNow()
VSM.config.instance.saveNow()
}

override fun doesGuiPauseGame(): Boolean {
Expand Down

0 comments on commit 3030114

Please sign in to comment.