Skip to content
Snippets Groups Projects
Commit 9e7a68f0 authored by Griefed's avatar Griefed :joystick:
Browse files

fix(Addon Suite): Do not base BaseInformation off of ExtensionPoint

parent a3ec359e
No related branches found
No related tags found
2 merge requests!315Overhaul addon suite. Fix and improve a couple of other things,!313fix(Addon Suite): Do not base BaseInformation off of ExtensionPoint
......@@ -4,6 +4,7 @@
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" />
<option name="MAIN_CLASS_NAME" value="de.griefed.serverpackcreator.ServerPackCreator" />
<module name="ServerPackCreator.main" />
<option name="PROGRAM_PARAMETERS" value="-Dpf4j.mode=development" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/testruns" />
<extension name="coverage">
<pattern>
......
......@@ -81,6 +81,7 @@ public final class ApplicationAddons extends JarPluginManager {
public ApplicationAddons(TomlParser tomlParser,
ApplicationProperties injectedApplicationProperties, VersionMeta injectedVersionMeta,
Utilities injectedUtilities) {
super();
APPLICATIONPROPERTIES = injectedApplicationProperties;
VERSIONMETA = injectedVersionMeta;
......@@ -118,14 +119,16 @@ public final class ApplicationAddons extends JarPluginManager {
getPlugins().forEach(
plugin -> {
String configFile = "plugins/config/" + plugin.getPluginId() + ".toml";
String path = "./plugins/config";
String addonConfig = plugin.getPluginId() + ".toml";
if (!new File(configFile).exists()) {
if (!new File(path + "/" + addonConfig).exists()) {
try (ZipFile addonJar = new ZipFile(plugin.getPluginPath().toFile())) {
addonJar.extractFile("config.toml", configFile);
registerAddonConfig(tomlParser, plugin.getPluginId(), new File(configFile));
addonJar.extractFile("config.toml", path, addonConfig);
registerAddonConfig(tomlParser, plugin.getPluginId(),
new File(path + "/" + addonConfig));
} catch (Exception ex) {
LOG.error(
......@@ -505,8 +508,7 @@ public final class ApplicationAddons extends JarPluginManager {
encounteredErrors,
getAddonConfig(plugin.getPluginId()),
getExtensionConfigs(plugin, configurationModel,
configCheckExt.getExtensionId())))
{
configCheckExt.getExtensionId()))) {
hasError.set(true);
}
} catch (Exception | Error ex) {
......
......@@ -19,9 +19,7 @@
*/
package de.griefed.serverpackcreator.addons;
import org.pf4j.ExtensionPoint;
public interface BaseInformation extends ExtensionPoint {
public interface BaseInformation {
/**
* Get the name of this addon.
......
package de.griefed.serverpackcreator.addons;
public interface ExtensionInformation extends BaseInformation {
import org.pf4j.ExtensionPoint;
public interface ExtensionInformation extends BaseInformation, ExtensionPoint {
/**
* Get the if of this extension. Used by ServerPackCreator to determine which configuration, if any,
......
......@@ -32,7 +32,7 @@ import org.pf4j.PluginManager;
import org.pf4j.PluginRuntimeException;
import org.pf4j.PluginWrapper;
public class ServerPackCreatorAddon extends Plugin implements BaseInformation {
public abstract class ServerPackCreatorAddon extends Plugin implements BaseInformation {
protected static final Logger LOG_ADDONS = LogManager.getLogger("AddonsLogger");
private static final Logger LOG = LogManager.getLogger(ServerPackCreatorAddon.class);
......@@ -69,12 +69,6 @@ public class ServerPackCreatorAddon extends Plugin implements BaseInformation {
public void start() throws PluginRuntimeException {
super.start();
if (!new File("plugins/config/" + getId() + ".toml").exists()) {
ServerPackCreator.getInstance().getUtilities().JarUtils()
.copyFileFromJar("config.toml", new File("plugins/config/" + getId() + ".toml"), false,
this.getClass());
}
LOG.info("Addon-ID: " + getId());
LOG.info("Addon-Name: " + NAME);
LOG.info("Addon-Description: " + DESCRIPTION);
......
......@@ -22,6 +22,7 @@ package de.griefed.serverpackcreator.addons.swinggui;
import com.electronwill.nightconfig.core.CommentedConfig;
import de.griefed.serverpackcreator.ApplicationProperties;
import de.griefed.serverpackcreator.addons.BaseInformation;
import de.griefed.serverpackcreator.addons.ExtensionInformation;
import de.griefed.serverpackcreator.swing.TabCreateServerPack;
import de.griefed.serverpackcreator.utilities.common.Utilities;
import de.griefed.serverpackcreator.versionmeta.VersionMeta;
......@@ -35,7 +36,7 @@ import javax.swing.JPanel;
* @author Griefed
*/
@SuppressWarnings("OptionalUsedAsFieldOrParameterType")
public interface ConfigPanelExtension extends BaseInformation {
public interface ConfigPanelExtension extends ExtensionInformation {
/**
* This method gets called when an extension of this type is run. All parameters are provided by
......
......@@ -22,6 +22,7 @@ package de.griefed.serverpackcreator.addons.swinggui;
import com.electronwill.nightconfig.core.CommentedConfig;
import de.griefed.serverpackcreator.ApplicationProperties;
import de.griefed.serverpackcreator.addons.BaseInformation;
import de.griefed.serverpackcreator.addons.ExtensionInformation;
import de.griefed.serverpackcreator.utilities.common.Utilities;
import de.griefed.serverpackcreator.versionmeta.VersionMeta;
import java.io.File;
......@@ -36,7 +37,7 @@ import javax.swing.JPanel;
* @author Griefed
*/
@SuppressWarnings("OptionalUsedAsFieldOrParameterType")
public interface TabExtension extends BaseInformation {
public interface TabExtension extends ExtensionInformation {
/**
* @param versionMeta Instance of {@link VersionMeta} so you can work with available
......
......@@ -850,33 +850,6 @@ public final class ConfigurationEditor {
return modLoaderVersion;
}
/**
* Get the path to the Java installation to use in the modloader server installation.
*
* @param scanner Used for reading the users input.
* @return The path to the Java installation to use during modloader server installation, as per
* the users input.
* @author Griefed
*/
private String getJavaPath(Scanner scanner) {
String javaPath;
printToFileAndConsole(
"Specify the path to your Java installation. Must end with \"java\" on Linux, or \"java.exe\" on Windows.");
printToFileAndConsole(
"If you leave this empty, ServerPackCreator will try to determine the path for you.");
printToFileAndConsole(
"Example Linux: /usr/bin/java | Example Windows: C:/Program Files/AdoptOpenJDK/jdk-8.0.275.1-hotspot/jre/bin/java.exe");
printToFileAndConsole("Path to your Java installation: ", false);
javaPath = CONFIGURATIONHANDLER.getJavaPath(getNextLine(scanner));
printToFileAndConsole("Automatically acquired path to Java installation: " + javaPath);
printToFileAndConsole();
return javaPath;
}
/**
* Get the users decision on whether they want to include the server-icon.
*
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment