Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file added config-common/build.gradle
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
package io.github.manasmods.manascore.config;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import io.github.manasmods.manascore.config.api.ManasConfig;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.HashSet;
import java.util.Set;

public class ConfigRegistry {

private static final Gson gson = new GsonBuilder()
.disableHtmlEscaping()
.setPrettyPrinting()
.create();

private static final Set<ManasConfig> registeredConfigs = new HashSet<>();
private static final Set<ManasConfig> loadedConfigs = new HashSet<>();

public static void registerConfig(ManasConfig config) {
registeredConfigs.add(config);
ManasCoreConfig.LOG.info(config.getClass().getSimpleName() + " registered");
}

public static void loadConfigs() {
registeredConfigs.forEach(config -> {
Path startPath = Paths.get("config/" + config.getClass().getSimpleName().toLowerCase() + ".json");
try {
if (Files.exists(startPath)) {
String string = Files.readString(startPath);
ManasConfig loadedConfig = gson.fromJson(string, config.getClass());
loadedConfigs.add(loadedConfig);
ManasCoreConfig.LOG.info( config.getClass().getSimpleName() + " loaded");
} else {
ManasCoreConfig.LOG.info( config.getClass().getSimpleName() + " not found");
}
} catch (IOException e) {
ManasCoreConfig.LOG.error("Error loading config: " + config.getClass().getSimpleName());
e.printStackTrace();
}
});
}

public static ManasConfig getConfig(Class<? extends ManasConfig> clazz) {
return loadedConfigs.stream()
.filter(config -> config.getClass().getSimpleName().equalsIgnoreCase(clazz.getSimpleName().toLowerCase()))
.findFirst()
.orElse(null);
}

public static void createConfigs() {
registeredConfigs.forEach(config -> {
String content = gson.toJson(config);
Path startPath = Paths.get("config/" + "/" + config.getClass().getSimpleName() + ".json");
try {
if (!Files.exists(startPath)) {
Files.createDirectories(startPath.getParent());
Files.write(startPath, content.getBytes());
ManasCoreConfig.LOG.info("Config: " + config.getClass().getSimpleName() + " created");
} else {
ManasCoreConfig.LOG.info("Config: " + config.getClass().getSimpleName() + " already exists");
}
} catch (IOException e) {
ManasCoreConfig.LOG.error("Error creating config: " + config.getClass().getSimpleName());
e.printStackTrace();
}
});
loadConfigs();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package io.github.manasmods.manascore.config;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class ManasCoreConfig {

public static final Logger LOG = LoggerFactory.getLogger("ManasCore - Config");


}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package io.github.manasmods.manascore.config.api;

public abstract class ManasConfig {



}
5 changes: 5 additions & 0 deletions config-common/src/main/resources/architectury.common.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"injected_interfaces": {
},
"accessWidener": "manascore_config.accesswidener"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
accessWidener v2 named
19 changes: 19 additions & 0 deletions config-common/src/main/resources/manascore_config.mixins.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"required": true,
"package": "io.github.manasmods.manascore.storage.mixin",
"compatibilityLevel": "JAVA_21",
"minVersion": "0.8",
"client": [
],
"mixins": [
"MixinChunkSerializer",
"MixinDataFixTypes",
"MixinEntity",
"MixinLevel",
"MixinLevelChunk",
"MixinServerLevel"
],
"injectors": {
"defaultRequire": 1
}
}
Empty file added config-fabric/build.gradle
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package io.github.manasmods.manascore.config.fabric;

import net.fabricmc.api.ModInitializer;

public class ManasCoreConfigFabric implements ModInitializer {
@Override
public void onInitialize() { // No need to initialize something here

}
}
34 changes: 34 additions & 0 deletions config-fabric/src/main/resources/fabric.mod.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
{
"schemaVersion": 1,
"id": "${mod_id}",
"version": "${version}",
"name": "${mod_name}",
"description": "Utility and Core Library for Manas Mods",
"authors": [
"ManasMods"
],
"contact": {
"homepage": ""
},
"license": "${license}",
"icon": "assets/manascore/icon.png",
"environment": "*",
"entrypoints": {
"main": [
"io.github.manasmods.manascore.config.fabric.ManasCoreConfigFabric"
],
"client": []
},
"mixins": [
"${mod_id}.mixins.json"
],
"depends": {
"fabricloader": ">=${fabric_loader_version}",
"minecraft": "~${minecraft_version}",
"java": ">=21",
"architectury": ">=${architectury_version}",
"fabric-api": "*"
},
"suggests": {
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file added config-neoforge/build.gradle
Empty file.
1 change: 1 addition & 0 deletions config-neoforge/gradle.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
loom.platform=neoforge
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
/*
* Copyright (c) 2024. ManasMods
* GNU General Public License 3
*/

package io.github.manasmods.manascore.config.neoforge;

import io.github.manasmods.manascore.config.ModuleConstants;
import net.neoforged.fml.common.Mod;

@Mod(ModuleConstants.MOD_ID)
public class ManasCoreConfigNeoForge {

}
38 changes: 38 additions & 0 deletions config-neoforge/src/main/resources/META-INF/neoforge.mods.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
modLoader = "javafml"
loaderVersion = "[2,)"
issueTrackerURL = ""
license = "${license}"

[[mods]]
modId = "${mod_id}"
version = "${version}"
displayName = "${mod_name}"
authors = "ManasMods"
description = '''
Utility and Core Library for Manas Mods
'''
logoFile = "icon.png"

[[dependencies.${mod_id}]]
modId = "neoforge"
type = "required"
versionRange = "[21,)"
ordering = "NONE"
side = "BOTH"

[[dependencies.${mod_id}]]
modId = "minecraft"
type = "required"
versionRange = "[${minecraft_version},)"
ordering = "NONE"
side = "BOTH"

[[dependencies.${mod_id}]]
modId = "architectury"
type = "required"
versionRange = "[${architectury_version},)"
ordering = "AFTER"
side = "BOTH"

[[mixins]]
config = "${mod_id}.mixins.json"
Binary file added config-neoforge/src/main/resources/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
/*
* Copyright (c) 2024. ManasMods
* GNU General Public License 3
*/

package io.github.manasmods.manascore.inventory.fabric;

import io.github.manasmods.manascore.inventory.ManasCoreInventory;
Expand Down
2 changes: 1 addition & 1 deletion settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ pluginManagement {

rootProject.name = 'manascore'

["network", "storage", "testing", "inventory", "command"].forEach { module ->
["network", "storage", "testing", "inventory", "config", "command"].forEach { module ->
include ":$module-common"
include ":$module-fabric"
include ":$module-neoforge"
Expand Down
3 changes: 2 additions & 1 deletion testing-common/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ ext {
":network",
":storage",
":inventory",
':command'
":config",
":command"
]
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

import dev.architectury.platform.Platform;
import io.github.manasmods.manascore.testing.client.ManasCoreTestingClient;
import io.github.manasmods.manascore.testing.module.ConfigModuleTest;
import io.github.manasmods.manascore.testing.module.CommandModuleTest;
import io.github.manasmods.manascore.testing.module.StorageModuleTest;
import net.fabricmc.api.EnvType;
Expand All @@ -21,6 +22,7 @@ public static void init() {
ManasCoreTestingClient.init();
}
StorageModuleTest.init();
ConfigModuleTest.init();
CommandModuleTest.init();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package io.github.manasmods.manascore.testing.configs;

import io.github.manasmods.manascore.config.api.ManasConfig;

public class TestConfig extends ManasConfig {

public String test = "";
public int test2 = 0;
public boolean test3 = false;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package io.github.manasmods.manascore.testing.module;

import io.github.manasmods.manascore.config.ConfigRegistry;
import io.github.manasmods.manascore.testing.configs.TestConfig;

public class ConfigModuleTest {

public static void init() {
System.out.println("ConfigModuleTest initialized");
ConfigRegistry.registerConfig(new TestConfig());
ConfigRegistry.createConfigs();

TestConfig config = (TestConfig) ConfigRegistry.getConfig(TestConfig.class);
System.out.println(config.test);

}


}