Compare commits

...

5 Commits
6.0.4 ... 6.0.6

Author SHA1 Message Date
Auxilor
70a4a06d4f Updated to 6.0.6 2021-07-24 01:12:55 +01:00
Auxilor
bbee18fd8a JSON config files now have same deletion behaviour as yaml config files 2021-07-24 01:12:46 +01:00
Auxilor
26ab9a327d Added warnings to invalid extensions 2021-07-23 22:14:14 +01:00
Auxilor
0676f5fa33 Updated to 6.0.5 2021-07-23 22:11:41 +01:00
Auxilor
051b95ad88 Extension loading change 2021-07-23 22:11:32 +01:00
3 changed files with 30 additions and 21 deletions

View File

@@ -116,9 +116,10 @@ public class EcoLoadableJSONConfig extends EcoJSONConfigWrapper implements Loada
@Override
public void save() throws IOException {
configFile.delete();
if (configFile.delete()) {
Files.write(configFile.toPath(), this.toPlaintext().getBytes(), StandardOpenOption.CREATE, StandardOpenOption.WRITE);
}
}
public void init(@NotNull final File file) throws FileNotFoundException {

View File

@@ -3,11 +3,12 @@ package com.willfp.eco.internal.extensions;
import com.willfp.eco.core.EcoPlugin;
import com.willfp.eco.core.PluginDependent;
import com.willfp.eco.core.config.interfaces.Config;
import com.willfp.eco.core.config.yaml.YamlTransientConfig;
import com.willfp.eco.core.extensions.Extension;
import com.willfp.eco.core.extensions.ExtensionLoader;
import com.willfp.eco.core.extensions.ExtensionMetadata;
import com.willfp.eco.core.extensions.MalformedExtensionException;
import org.apache.commons.lang.Validate;
import org.bukkit.configuration.file.YamlConfiguration;
import org.jetbrains.annotations.NotNull;
@@ -17,8 +18,6 @@ import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
@@ -50,12 +49,12 @@ public class EcoExtensionLoader extends PluginDependent<EcoPlugin> implements Ex
try {
loadExtension(extensionJar);
} catch (MalformedExtensionException e) {
this.getPlugin().getLogger().severe(extensionJar.getName() + " caused MalformedExtensionException: " + e.getMessage());
this.getPlugin().getLogger().warning(extensionJar.getName() + " caused an error!");
}
}
}
private void loadExtension(@NotNull final File extensionJar) {
private void loadExtension(@NotNull final File extensionJar) throws MalformedExtensionException {
URL url = null;
try {
url = extensionJar.toURI().toURL();
@@ -71,22 +70,31 @@ public class EcoExtensionLoader extends PluginDependent<EcoPlugin> implements Ex
throw new MalformedExtensionException("No extension.yml found in " + extensionJar.getName());
}
YamlConfiguration extensionYml = YamlConfiguration.loadConfiguration(new InputStreamReader(ymlIn));
Config extensionYml = new YamlTransientConfig(YamlConfiguration.loadConfiguration(new InputStreamReader(ymlIn)));
Set<String> keys = extensionYml.getKeys(false);
ArrayList<String> required = new ArrayList<>(Arrays.asList("main", "name", "version"));
required.removeAll(keys);
if (!required.isEmpty()) {
throw new MalformedExtensionException("Invalid extension.yml found in " + extensionJar.getName() + " - Missing: " + String.join(", ", required));
String mainClass = extensionYml.getStringOrNull("main");
String name = extensionYml.getStringOrNull("name");
String version = extensionYml.getStringOrNull("version");
String author = extensionYml.getStringOrNull("author");
if (mainClass == null) {
throw new MalformedExtensionException("Invalid extension.yml found in " + extensionJar.getName());
}
String mainClass = extensionYml.getString("main");
String name = extensionYml.getString("name");
String version = extensionYml.getString("version");
String author = extensionYml.getString("author");
Validate.notNull(name, "Name is missing!");
Validate.notNull(version, "Version is missing!");
Validate.notNull(author, "Author is missing!");
if (name == null) {
this.getPlugin().getLogger().warning(extensionJar.getName() + " doesn't have a name!");
name = "Unnamed Extension " + extensionJar.getName();
}
if (version == null) {
this.getPlugin().getLogger().warning(extensionJar.getName() + " doesn't have a version!");
version = "1.0.0";
}
if (author == null) {
this.getPlugin().getLogger().warning(extensionJar.getName() + " doesn't have an author!");
author = "Unnamed Author";
}
ExtensionMetadata metadata = new ExtensionMetadata(version, name, author);

View File

@@ -1,2 +1,2 @@
version = 6.0.4
version = 6.0.6
plugin-name = eco