|
@@ -3,6 +3,7 @@ package me.lortseam.completeconfig;
|
|
import lombok.NonNull;
|
|
import lombok.NonNull;
|
|
import lombok.extern.log4j.Log4j2;
|
|
import lombok.extern.log4j.Log4j2;
|
|
import me.lortseam.completeconfig.extensions.CompleteConfigExtension;
|
|
import me.lortseam.completeconfig.extensions.CompleteConfigExtension;
|
|
|
|
+import me.lortseam.completeconfig.extensions.ConfigExtensionPattern;
|
|
import me.lortseam.completeconfig.extensions.clothbasicmath.ClothBasicMathExtension;
|
|
import me.lortseam.completeconfig.extensions.clothbasicmath.ClothBasicMathExtension;
|
|
import net.fabricmc.loader.api.FabricLoader;
|
|
import net.fabricmc.loader.api.FabricLoader;
|
|
import net.fabricmc.loader.api.entrypoint.EntrypointContainer;
|
|
import net.fabricmc.loader.api.entrypoint.EntrypointContainer;
|
|
@@ -17,7 +18,7 @@ import java.util.Map;
|
|
@Log4j2
|
|
@Log4j2
|
|
public final class CompleteConfig {
|
|
public final class CompleteConfig {
|
|
|
|
|
|
- private static final Map<String, CompleteConfigExtension> extensions = new HashMap<>();
|
|
|
|
|
|
+ private static final Map<String, ConfigExtensionPattern> extensions = new HashMap<>();
|
|
|
|
|
|
static {
|
|
static {
|
|
registerExternalExtension("cloth-basic-math", ClothBasicMathExtension.class);
|
|
registerExternalExtension("cloth-basic-math", ClothBasicMathExtension.class);
|
|
@@ -33,13 +34,27 @@ public final class CompleteConfig {
|
|
if (!constructor.isAccessible()) {
|
|
if (!constructor.isAccessible()) {
|
|
constructor.setAccessible(true);
|
|
constructor.setAccessible(true);
|
|
}
|
|
}
|
|
- extensions.put(modID, constructor.newInstance());
|
|
|
|
|
|
+ CompleteConfigExtension extension = constructor.newInstance();
|
|
|
|
+ extensions.put(modID, extension);
|
|
|
|
+ ConfigExtensionPattern envSpecificExtension = null;
|
|
|
|
+ switch (FabricLoader.getInstance().getEnvironmentType()) {
|
|
|
|
+ case CLIENT:
|
|
|
|
+ envSpecificExtension = extension.client();
|
|
|
|
+ break;
|
|
|
|
+
|
|
|
|
+ case SERVER:
|
|
|
|
+ envSpecificExtension = extension.server();
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ if (envSpecificExtension != null) {
|
|
|
|
+ extensions.put(modID, envSpecificExtension);
|
|
|
|
+ }
|
|
} catch (InstantiationException | IllegalAccessException | NoSuchMethodException | InvocationTargetException e) {
|
|
} catch (InstantiationException | IllegalAccessException | NoSuchMethodException | InvocationTargetException e) {
|
|
logger.error("[CompleteConfig] Failed to instantiate extension " + modID, e);
|
|
logger.error("[CompleteConfig] Failed to instantiate extension " + modID, e);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- public static Collection<CompleteConfigExtension> getExtensions() {
|
|
|
|
|
|
+ public static Collection<ConfigExtensionPattern> getExtensions() {
|
|
return Collections.unmodifiableCollection(extensions.values());
|
|
return Collections.unmodifiableCollection(extensions.values());
|
|
}
|
|
}
|
|
|
|
|