package io.gitlab.jfronny.inceptum.util.install.steps; import io.gitlab.jfronny.inceptum.model.inceptum.InstanceMeta; import io.gitlab.jfronny.inceptum.util.*; import io.gitlab.jfronny.inceptum.util.install.SetupStepInfo; import io.gitlab.jfronny.inceptum.util.install.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; Utils.writeObject(metaPath, meta); } InstanceLock.setSetupLock(instance, false); if (!Files.exists(instance.resolve(".gitignore"))) { Files.writeString(instance.resolve(".gitignore"), """ realms_persistence.json saves/ screenshots/ logs/ .mixin.out/ .fabric/ *.lock eula.txt world/"""); } } }