mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2025-07-04 00:45:57 +00:00
abstract addon id
This commit is contained in:
parent
7a4bf38cbc
commit
21d8be4726
@ -0,0 +1,16 @@
|
|||||||
|
package com.dfsek.terra.fabric;
|
||||||
|
|
||||||
|
import com.dfsek.terra.mod.MinecraftAddon;
|
||||||
|
import com.dfsek.terra.mod.ModPlatform;
|
||||||
|
|
||||||
|
public class FabricAddon extends MinecraftAddon {
|
||||||
|
|
||||||
|
public FabricAddon(ModPlatform modPlatform) {
|
||||||
|
super(modPlatform);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getID() {
|
||||||
|
return "terra-fabric";
|
||||||
|
}
|
||||||
|
}
|
@ -143,4 +143,9 @@ public class PlatformImpl extends ModPlatform {
|
|||||||
public @NotNull ItemHandle getItemHandle() {
|
public @NotNull ItemHandle getItemHandle() {
|
||||||
return itemHandle;
|
return itemHandle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BaseAddon getPlatformAddon() {
|
||||||
|
return new FabricAddon(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,16 @@
|
|||||||
|
package com.dfsek.terra.forge;
|
||||||
|
|
||||||
|
import com.dfsek.terra.mod.MinecraftAddon;
|
||||||
|
import com.dfsek.terra.mod.ModPlatform;
|
||||||
|
|
||||||
|
public class ForgeAddon extends MinecraftAddon {
|
||||||
|
|
||||||
|
public ForgeAddon(ModPlatform modPlatform) {
|
||||||
|
super(modPlatform);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getID() {
|
||||||
|
return "terra-forge";
|
||||||
|
}
|
||||||
|
}
|
@ -49,33 +49,33 @@ public class PlatformImpl extends ModPlatform {
|
|||||||
private final ItemHandle itemHandle = new MinecraftItemHandle();
|
private final ItemHandle itemHandle = new MinecraftItemHandle();
|
||||||
private final WorldHandle worldHandle = new MinecraftWorldHandle();
|
private final WorldHandle worldHandle = new MinecraftWorldHandle();
|
||||||
private final Lazy<File> dataFolder = Lazy.lazy(() -> new File("./config/Terra"));
|
private final Lazy<File> dataFolder = Lazy.lazy(() -> new File("./config/Terra"));
|
||||||
|
|
||||||
public PlatformImpl() {
|
public PlatformImpl() {
|
||||||
CommonPlatform.initialize(this);
|
CommonPlatform.initialize(this);
|
||||||
load();
|
load();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public MinecraftServer getServer() {
|
public MinecraftServer getServer() {
|
||||||
return ServerLifecycleHooks.getCurrentServer();
|
return ServerLifecycleHooks.getCurrentServer();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean reload() {
|
public boolean reload() {
|
||||||
getTerraConfig().load(this);
|
getTerraConfig().load(this);
|
||||||
getRawConfigRegistry().clear();
|
getRawConfigRegistry().clear();
|
||||||
boolean succeed = getRawConfigRegistry().loadAll(this);
|
boolean succeed = getRawConfigRegistry().loadAll(this);
|
||||||
|
|
||||||
MinecraftServer server = getServer();
|
MinecraftServer server = getServer();
|
||||||
|
|
||||||
if(server != null) {
|
if (server != null) {
|
||||||
server.reloadResources(server.getDataPackManager().getNames()).exceptionally(throwable -> {
|
server.reloadResources(server.getDataPackManager().getNames()).exceptionally(throwable -> {
|
||||||
LOGGER.warn("Failed to execute reload", throwable);
|
LOGGER.warn("Failed to execute reload", throwable);
|
||||||
return null;
|
return null;
|
||||||
}).join();
|
}).join();
|
||||||
//BiomeUtil.registerBiomes();
|
//BiomeUtil.registerBiomes();
|
||||||
server.getWorlds().forEach(world -> {
|
server.getWorlds().forEach(world -> {
|
||||||
if(world.getChunkManager().getChunkGenerator() instanceof MinecraftChunkGeneratorWrapper chunkGeneratorWrapper) {
|
if (world.getChunkManager().getChunkGenerator() instanceof MinecraftChunkGeneratorWrapper chunkGeneratorWrapper) {
|
||||||
getConfigRegistry().get(chunkGeneratorWrapper.getPack().getRegistryKey()).ifPresent(pack -> {
|
getConfigRegistry().get(chunkGeneratorWrapper.getPack().getRegistryKey()).ifPresent(pack -> {
|
||||||
chunkGeneratorWrapper.setPack(pack);
|
chunkGeneratorWrapper.setPack(pack);
|
||||||
LOGGER.info("Replaced pack in chunk generator for world {}", world);
|
LOGGER.info("Replaced pack in chunk generator for world {}", world);
|
||||||
@ -85,51 +85,57 @@ public class PlatformImpl extends ModPlatform {
|
|||||||
}
|
}
|
||||||
return succeed;
|
return succeed;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Iterable<BaseAddon> platformAddon() {
|
protected Iterable<BaseAddon> platformAddon() {
|
||||||
List<BaseAddon> addons = new ArrayList<>();
|
List<BaseAddon> addons = new ArrayList<>();
|
||||||
|
|
||||||
super.platformAddon().forEach(addons::add);
|
super.platformAddon().forEach(addons::add);
|
||||||
|
|
||||||
String mcVersion = MinecraftVersion.CURRENT.getReleaseTarget();
|
String mcVersion = MinecraftVersion.CURRENT.getReleaseTarget();
|
||||||
try {
|
try {
|
||||||
addons.add(new EphemeralAddon(Versions.parseVersion(mcVersion), "minecraft"));
|
addons.add(new EphemeralAddon(Versions.parseVersion(mcVersion), "minecraft"));
|
||||||
} catch(ParseException e) {
|
} catch (ParseException e) {
|
||||||
try {
|
try {
|
||||||
addons.add(new EphemeralAddon(Versions.parseVersion(mcVersion + ".0"), "minecraft"));
|
addons.add(new EphemeralAddon(Versions.parseVersion(mcVersion + ".0"), "minecraft"));
|
||||||
} catch(ParseException ex) {
|
} catch (ParseException ex) {
|
||||||
LOGGER.warn("Failed to parse Minecraft version", e);
|
LOGGER.warn("Failed to parse Minecraft version", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FMLLoader.getLoadingModList().getMods().forEach(mod -> {
|
FMLLoader.getLoadingModList().getMods().forEach(mod -> {
|
||||||
String id = mod.getModId();
|
String id = mod.getModId();
|
||||||
if(id.equals("terra") || id.equals("minecraft") || id.equals("java")) return;
|
if (id.equals("terra") || id.equals("minecraft") || id.equals("java")) return;
|
||||||
Version version = Versions.getVersion(mod.getVersion().getMajorVersion(), mod.getVersion().getMinorVersion(), mod.getVersion().getIncrementalVersion());
|
Version version = Versions.getVersion(mod.getVersion().getMajorVersion(), mod.getVersion().getMinorVersion(), mod.getVersion().getIncrementalVersion());
|
||||||
addons.add(new EphemeralAddon(version, "forge:" + id));
|
addons.add(new EphemeralAddon(version, "forge:" + id));
|
||||||
});
|
});
|
||||||
|
|
||||||
return addons;
|
return addons;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @NotNull String platformName() {
|
public @NotNull String platformName() {
|
||||||
return "Forge";
|
return "Forge";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @NotNull WorldHandle getWorldHandle() {
|
public @NotNull WorldHandle getWorldHandle() {
|
||||||
return worldHandle;
|
return worldHandle;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @NotNull File getDataFolder() {
|
public @NotNull File getDataFolder() {
|
||||||
return dataFolder.value();
|
return dataFolder.value();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @NotNull ItemHandle getItemHandle() {
|
public @NotNull ItemHandle getItemHandle() {
|
||||||
return itemHandle;
|
return itemHandle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BaseAddon getPlatformAddon() {
|
||||||
|
return new ForgeAddon(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -33,7 +33,7 @@ import com.dfsek.terra.mod.config.PreLoadCompatibilityOptions;
|
|||||||
import com.dfsek.terra.mod.config.VanillaBiomeProperties;
|
import com.dfsek.terra.mod.config.VanillaBiomeProperties;
|
||||||
|
|
||||||
|
|
||||||
public final class MinecraftAddon implements BaseAddon {
|
public abstract class MinecraftAddon implements BaseAddon {
|
||||||
private static final Version VERSION = Versions.getVersion(1, 0, 0);
|
private static final Version VERSION = Versions.getVersion(1, 0, 0);
|
||||||
private static final Logger logger = LoggerFactory.getLogger(MinecraftAddon.class);
|
private static final Logger logger = LoggerFactory.getLogger(MinecraftAddon.class);
|
||||||
private final ModPlatform modPlatform;
|
private final ModPlatform modPlatform;
|
||||||
@ -72,9 +72,4 @@ public final class MinecraftAddon implements BaseAddon {
|
|||||||
public Version getVersion() {
|
public Version getVersion() {
|
||||||
return VERSION;
|
return VERSION;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getID() {
|
|
||||||
return "terra-mod";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -86,9 +86,11 @@ public abstract class ModPlatform extends AbstractPlatform {
|
|||||||
if(BuiltinRegistries.BIOME.get(identifier) == null) throw new LoadException("Invalid Biome ID: " + identifier, tracker); // failure.
|
if(BuiltinRegistries.BIOME.get(identifier) == null) throw new LoadException("Invalid Biome ID: " + identifier, tracker); // failure.
|
||||||
return new ProtoPlatformBiome(identifier);
|
return new ProtoPlatformBiome(identifier);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Iterable<BaseAddon> platformAddon() {
|
protected Iterable<BaseAddon> platformAddon() {
|
||||||
return List.of(new MinecraftAddon(this));
|
return List.of(getPlatformAddon());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected abstract BaseAddon getPlatformAddon();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user