1
0
mirror of https://github.com/Suiranoil/SkinRestorer.git synced 2026-01-16 04:42:12 +00:00

Merge remote-tracking branch 'origin/1.21-multiloader' into 1.21-multiloader

This commit is contained in:
2024-09-03 20:09:26 +03:00
12 changed files with 113 additions and 5 deletions

View File

@@ -2,6 +2,7 @@ package net.lionarius.skinrestorer;
import com.mojang.authlib.GameProfile;
import net.lionarius.skinrestorer.config.Config;
import net.lionarius.skinrestorer.platform.Services;
import net.lionarius.skinrestorer.skin.SkinIO;
import net.lionarius.skinrestorer.skin.SkinStorage;
import net.lionarius.skinrestorer.skin.SkinValue;
@@ -54,8 +55,8 @@ public final class SkinRestorer {
return Optional.ofNullable(SkinRestorer.providersRegistry.get(name));
}
public static void onInitialize(Path rootConfigDir) {
SkinRestorer.configDir = rootConfigDir.resolve(SkinRestorer.MOD_ID);
public static void onInitialize() {
SkinRestorer.configDir = Services.PLATFORM.getConfigDirectory().resolve(SkinRestorer.MOD_ID);
SkinRestorer.reloadConfig();
SkinRestorer.providersRegistry.register(EmptySkinProvider.PROVIDER_NAME, SkinProvider.EMPTY, false);

View File

@@ -0,0 +1,21 @@
package net.lionarius.skinrestorer.platform;
import net.lionarius.skinrestorer.SkinRestorer;
import net.lionarius.skinrestorer.platform.services.PlatformHelper;
import java.util.ServiceLoader;
public final class Services {
private Services() {}
public final static PlatformHelper PLATFORM = load(PlatformHelper.class);
private static <T> T load(Class<T> clazz) {
final T loadedService = ServiceLoader.load(clazz)
.findFirst()
.orElseThrow(() -> new NullPointerException("Failed to load service for " + clazz.getName()));
SkinRestorer.LOGGER.debug("Loaded {} for service {}", loadedService, clazz);
return loadedService;
}
}

View File

@@ -0,0 +1,12 @@
package net.lionarius.skinrestorer.platform.services;
import java.nio.file.Path;
public interface PlatformHelper {
String getPlatformName();
boolean isModLoaded(String modId);
Path getConfigDirectory();
}

View File

@@ -7,6 +7,6 @@ import net.lionarius.skinrestorer.SkinRestorer;
public final class SkinRestorerFabric implements ModInitializer {
@Override
public void onInitialize() {
SkinRestorer.onInitialize(FabricLoader.getInstance().getConfigDir());
SkinRestorer.onInitialize();
}
}

View File

@@ -0,0 +1,23 @@
package net.lionarius.skinrestorer.fabric.platform;
import net.fabricmc.loader.api.FabricLoader;
import net.lionarius.skinrestorer.platform.services.PlatformHelper;
import java.nio.file.Path;
public final class FabricPlatformHelper implements PlatformHelper {
@Override
public String getPlatformName() {
return "fabric";
}
@Override
public boolean isModLoaded(String modId) {
return FabricLoader.getInstance().isModLoaded(modId);
}
@Override
public Path getConfigDirectory() {
return FabricLoader.getInstance().getConfigDir();
}
}

View File

@@ -0,0 +1 @@
net.lionarius.skinrestorer.fabric.platform.FabricPlatformHelper

View File

@@ -16,7 +16,7 @@ public final class SkinRestorerForge {
public SkinRestorerForge() {
MinecraftForge.EVENT_BUS.register(SkinRestorerForge.class);
SkinRestorer.onInitialize(FMLPaths.CONFIGDIR.get());
SkinRestorer.onInitialize();
}
@SubscribeEvent

View File

@@ -0,0 +1,24 @@
package net.lionarius.skinrestorer.forge.platform;
import net.lionarius.skinrestorer.platform.services.PlatformHelper;
import net.minecraftforge.fml.ModList;
import net.minecraftforge.fml.loading.FMLPaths;
import java.nio.file.Path;
public final class ForgePlatformHelper implements PlatformHelper {
@Override
public String getPlatformName() {
return "forge";
}
@Override
public boolean isModLoaded(String modId) {
return ModList.get().isLoaded(modId);
}
@Override
public Path getConfigDirectory() {
return FMLPaths.CONFIGDIR.get();
}
}

View File

@@ -0,0 +1 @@
net.lionarius.skinrestorer.forge.platform.ForgePlatformHelper

View File

@@ -17,7 +17,7 @@ public final class SkinRestorerNeoForge {
public SkinRestorerNeoForge() {
NeoForge.EVENT_BUS.register(SkinRestorerNeoForge.class);
SkinRestorer.onInitialize(FMLPaths.CONFIGDIR.get());
SkinRestorer.onInitialize();
}
@SubscribeEvent

View File

@@ -0,0 +1,24 @@
package net.lionarius.skinrestorer.neoforge.platform;
import net.lionarius.skinrestorer.platform.services.PlatformHelper;
import net.neoforged.fml.ModList;
import net.neoforged.fml.loading.FMLPaths;
import java.nio.file.Path;
public final class NeoForgePlatformHelper implements PlatformHelper {
@Override
public String getPlatformName() {
return "neoforge";
}
@Override
public boolean isModLoaded(String modId) {
return ModList.get().isLoaded(modId);
}
@Override
public Path getConfigDirectory() {
return FMLPaths.CONFIGDIR.get();
}
}

View File

@@ -0,0 +1 @@
net.lionarius.skinrestorer.neoforge.platform.NeoForgePlatformHelper