Search in sources :

Example 1 with LinkedConfig

use of me.deecaad.core.file.LinkedConfig in project MechanicsMain by WeaponMechanics.

the class WeaponMechanics method loadConfig.

void loadConfig() {
    debug.debug("Loading and serializing config");
    try {
        List<?> serializers = new SerializerInstancer(new JarFile(getFile())).createAllInstances(getClassLoader());
        // noinspection unchecked
        MechanicsCore.addSerializers(getPlugin(), (List<Serializer<?>>) serializers);
    } catch (IOException e) {
        e.printStackTrace();
        return;
    }
    if (configurations == null) {
        configurations = new LinkedConfig();
    } else {
        configurations.clear();
    }
    List<IValidator> validators = null;
    try {
        // Find all validators in WeaponMechanics
        validators = new JarInstancer(new JarFile(getFile())).createAllInstances(IValidator.class, getClassLoader(), true);
    } catch (IOException e) {
        e.printStackTrace();
    }
    // Fill configuration mappings (except config.yml)
    Configuration temp = new FileReader(debug, MechanicsCore.getListOfSerializers(), validators).fillAllFiles(getDataFolder(), "config.yml");
    try {
        configurations.add(temp);
    } catch (DuplicateKeyException e) {
        debug.error("Error loading config: " + e.getMessage());
    }
}
Also used : IValidator(me.deecaad.core.file.IValidator) Configuration(me.deecaad.core.file.Configuration) LinkedConfig(me.deecaad.core.file.LinkedConfig) JarInstancer(me.deecaad.core.file.JarInstancer) SerializerInstancer(me.deecaad.core.file.SerializerInstancer) FileReader(me.deecaad.core.file.FileReader) IOException(java.io.IOException) JarFile(java.util.jar.JarFile) DuplicateKeyException(me.deecaad.core.file.DuplicateKeyException) Serializer(me.deecaad.core.file.Serializer)

Example 2 with LinkedConfig

use of me.deecaad.core.file.LinkedConfig in project MechanicsMain by WeaponMechanics.

the class WeaponMechanics method writeFiles.

void writeFiles() {
    // Create files
    if (!getDataFolder().exists() || getDataFolder().listFiles() == null || getDataFolder().listFiles().length == 0) {
        debug.info("Copying files from jar (This process may take up to 30 seconds during the first load!)");
        try {
            FileUtil.copyResourcesTo(getClassLoader().getResource("WeaponMechanics"), getDataFolder().toPath());
        } catch (IOException | URISyntaxException e) {
            e.printStackTrace();
        }
    }
    try {
    // TODO bad programmars comment out broken code
    // FileUtil.ensureDefaults(getClassLoader(), "WeaponMechanics/config.yml", new File(getDataFolder(), "config.yml"));
    } catch (YAMLException e) {
        debug.error("WeaponMechanics jar corruption... This is most likely caused by using /reload after building jar!");
    }
    // Fill config.yml mappings
    File configyml = new File(getDataFolder(), "config.yml");
    if (configyml.exists()) {
        List<IValidator> validators = new ArrayList<>();
        // No need for other validators here as this is only for config.yml
        validators.add(new HitBox());
        FileReader basicConfigurationReader = new FileReader(debug, null, validators);
        Configuration filledMap = basicConfigurationReader.fillOneFile(configyml);
        basicConfiguration = basicConfigurationReader.usePathToSerializersAndValidators(filledMap);
    } else {
        // Just creates empty map to prevent other issues
        basicConfiguration = new LinkedConfig();
        debug.log(LogLevel.WARN, "Could not locate config.yml?", "Make sure it exists in path " + getDataFolder() + "/config.yml");
    }
    // Ensure that the resource pack exists in the folder
    if (basicConfiguration.getBool("Resource_Pack_Download.Enabled")) {
        String link = basicConfiguration.getString("Resource_Pack_Download.Link");
        int connection = basicConfiguration.getInt("Resource_Pack_Download.Connection_Timeout");
        int read = basicConfiguration.getInt("Resource_Pack_Download.Read_Timeout");
        File pack = new File(getDataFolder(), "WeaponMechanicsResourcePack.zip");
        if (!pack.exists()) {
            FileUtil.downloadFile(pack, link, connection, read);
        }
    }
}
Also used : HitBox(me.deecaad.weaponmechanics.weapon.projectile.HitBox) Configuration(me.deecaad.core.file.Configuration) LinkedConfig(me.deecaad.core.file.LinkedConfig) ArrayList(java.util.ArrayList) YAMLException(org.yaml.snakeyaml.error.YAMLException) IOException(java.io.IOException) URISyntaxException(java.net.URISyntaxException) IValidator(me.deecaad.core.file.IValidator) FileReader(me.deecaad.core.file.FileReader) JarFile(java.util.jar.JarFile) File(java.io.File)

Aggregations

IOException (java.io.IOException)2 JarFile (java.util.jar.JarFile)2 Configuration (me.deecaad.core.file.Configuration)2 FileReader (me.deecaad.core.file.FileReader)2 IValidator (me.deecaad.core.file.IValidator)2 LinkedConfig (me.deecaad.core.file.LinkedConfig)2 File (java.io.File)1 URISyntaxException (java.net.URISyntaxException)1 ArrayList (java.util.ArrayList)1 DuplicateKeyException (me.deecaad.core.file.DuplicateKeyException)1 JarInstancer (me.deecaad.core.file.JarInstancer)1 Serializer (me.deecaad.core.file.Serializer)1 SerializerInstancer (me.deecaad.core.file.SerializerInstancer)1 HitBox (me.deecaad.weaponmechanics.weapon.projectile.HitBox)1 YAMLException (org.yaml.snakeyaml.error.YAMLException)1