diff --git a/Mage.Server/src/main/java/mage/server/Main.java b/Mage.Server/src/main/java/mage/server/Main.java index b603e88069b..51f43b87591 100644 --- a/Mage.Server/src/main/java/mage/server/Main.java +++ b/Mage.Server/src/main/java/mage/server/Main.java @@ -4,7 +4,9 @@ import mage.cards.ExpansionSet; import mage.cards.RateCard; import mage.cards.Sets; import mage.cards.decks.DeckValidatorFactory; -import mage.cards.repository.*; +import mage.cards.repository.CardScanner; +import mage.cards.repository.PluginClassloaderRegistery; +import mage.cards.repository.RepositoryUtil; import mage.game.match.MatchType; import mage.game.tournament.TournamentType; import mage.interfaces.MageServer; @@ -507,8 +509,19 @@ public final class Main { private static Class loadPlugin(Plugin plugin) { try { - classLoader.addURL(new File(pluginFolder, plugin.getJar()).toURI().toURL()); logger.debug("Loading plugin: " + plugin.getClassName()); + if (plugin.getName() == null || plugin.getName().isEmpty() + || plugin.getJar() == null || plugin.getJar().isEmpty() + || plugin.getClassName() == null || plugin.getClassName().isEmpty() + ) { + logger.error(String.format("Can't load plugin, found miss fields in config.xml: %s, %s, %s", + plugin.getName(), + plugin.getJar(), + plugin.getClassName() + )); + return null; + } + classLoader.addURL(new File(pluginFolder, plugin.getJar()).toURI().toURL()); return Class.forName(plugin.getClassName(), true, classLoader); } catch (ClassNotFoundException ex) { logger.warn(new StringBuilder("Plugin not Found: ").append(plugin.getClassName()).append(" - ").append(plugin.getJar()).append(" - check plugin folder"), ex);