package io.gitlab.jfronny.inceptum.launcher.system.setup.steps; import gsoncompile.extensions.io.gitlab.jfronny.inceptum.launcher.model.inceptum.InstanceMeta.GC_InstanceMeta; import io.gitlab.jfronny.inceptum.common.MetaHolder; import io.gitlab.jfronny.inceptum.launcher.model.inceptum.InstanceMeta; import io.gitlab.jfronny.inceptum.launcher.system.instance.Instance; import io.gitlab.jfronny.inceptum.launcher.system.setup.SetupStepInfo; import io.gitlab.jfronny.inceptum.launcher.system.setup.Step; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.concurrent.atomic.AtomicBoolean; public class WriteMetadataStep implements Step { @Override public void execute(SetupStepInfo info, AtomicBoolean stopThread) throws IOException { info.setState("Writing metadata"); Path instance = MetaHolder.INSTANCE_DIR.resolve(info.name); Path metaPath = instance.resolve("instance.json"); if (!Files.exists(metaPath)) { InstanceMeta meta = new InstanceMeta(); meta.version = info.version.id; GC_InstanceMeta.write(meta, metaPath); } Instance.setSetupLock(instance, false); if (!Files.exists(instance.resolve(".gitignore"))) { Files.writeString(instance.resolve(".gitignore"), """ realms_persistence.json saves/ screenshots/ logs/ fabricloader.log .mixin.out/ .fabric/ *.lock eula.txt world/ usercache.json realms_persistence.json"""); } if (!Files.exists(instance.resolve(".iceignore"))) { Files.writeString(instance.resolve(".iceignore"), "instance.json"); } } }