package net.minecraft.server; import com.mojang.logging.LogUtils; import java.io.InputStream; import java.io.OutputStream; import java.nio.file.Files; import java.nio.file.Path; import java.util.Properties; import net.minecraft.SharedConstants; import net.minecraft.util.CommonLinks; import org.slf4j.Logger; public class Eula { private static final Logger LOGGER = LogUtils.getLogger(); private final Path file; private final boolean agreed; public Eula(Path p_135943_) { this.file = p_135943_; this.agreed = SharedConstants.IS_RUNNING_IN_IDE || this.readFile(); } private boolean readFile() { try { boolean flag; try (InputStream inputstream = Files.newInputStream(this.file)) { Properties properties = new Properties(); properties.load(inputstream); flag = Boolean.parseBoolean(properties.getProperty("eula", "false")); } return flag; } catch (Exception exception) { LOGGER.warn("Failed to load {}", this.file); this.saveDefaults(); return false; } } public boolean hasAgreedToEULA() { return this.agreed; } private void saveDefaults() { if (!SharedConstants.IS_RUNNING_IN_IDE) { try (OutputStream outputstream = Files.newOutputStream(this.file)) { Properties properties = new Properties(); properties.setProperty("eula", "false"); properties.store( outputstream, "By changing the setting below to TRUE you are indicating your agreement to our EULA (" + CommonLinks.EULA + ")." ); } catch (Exception exception) { LOGGER.warn("Failed to save {}", this.file, exception); } } } }