From 49397957a24e0cf83339b1c7fb61608f285cfb65 Mon Sep 17 00:00:00 2001 From: themode Date: Mon, 5 Apr 2021 18:24:38 +0200 Subject: [PATCH] Style cleanup, add more information when the server is not run using bootstrap --- .../server/extensions/ExtensionManager.java | 37 ++++++++++--------- 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/src/main/java/net/minestom/server/extensions/ExtensionManager.java b/src/main/java/net/minestom/server/extensions/ExtensionManager.java index 74295d536..2de27ece5 100644 --- a/src/main/java/net/minestom/server/extensions/ExtensionManager.java +++ b/src/main/java/net/minestom/server/extensions/ExtensionManager.java @@ -77,7 +77,7 @@ public class ExtensionManager { /** * Loads all extensions in the extension folder into this server. *

- * + *

* Pipeline: *
* Finds all .jar files in the extensions folder. @@ -88,32 +88,32 @@ public class ExtensionManager { *
* Verifies that all properties of extension.json are correctly set. *

- * + *

* It then sorts all those jars by their load order (making sure that an extension's dependencies load before it) *
* Note: Cyclic dependencies will stop both extensions from being loaded. *

- * + *

* Afterwards, it loads all external dependencies and adds them to the extension's files *

- * + *

* Then removes any invalid extensions (Invalid being its Load Status isn't SUCCESS) *

- * + *

* After that, it set its classloaders so each extension is self-contained, *

- * + *

* Removes invalid extensions again, *

- * + *

* and loads all of those extensions into Minestom *
* (Extension fields are set via reflection after each extension is verified, then loaded.) *

- * + *

* If the extension successfully loads, add it to the global extension Map (Name to Extension) *

- * + *

* And finally make a scheduler to clean observers per extension. */ public void loadExtensions() { @@ -193,7 +193,6 @@ public class ExtensionManager { * Loads an extension into Minestom. * * @param discoveredExtension The extension. Make sure to verify its integrity, set its class loader, and its files. - * * @return An extension object made from this DiscoveredExtension */ @Nullable @@ -213,7 +212,8 @@ public class ExtensionManager { try { jarClass = Class.forName(mainClass, true, loader); } catch (ClassNotFoundException e) { - LOGGER.error("Could not find main class '{}' in extension '{}'.", mainClass, extensionName, e); + LOGGER.error("Could not find main class '{}' in extension '{}'. If it is, be sure to run your server using Bootstrap#bootstrap", + mainClass, extensionName, e); return null; } @@ -295,7 +295,7 @@ public class ExtensionManager { /** * Get all extensions from the extensions folder and make them discovered. - * + *

* It skims the extension folder, discovers and verifies each extension, and returns those created DiscoveredExtensions. * * @return A list of discovered extensions from this folder. @@ -354,7 +354,6 @@ public class ExtensionManager { * Grabs a discovered extension from a jar. * * @param file The jar to grab it from (a .jar is a formatted .zip file) - * * @return The created DiscoveredExtension. */ @Nullable @@ -391,7 +390,8 @@ public class ExtensionManager { extensionMap.put(discoveredExtension.getName().toLowerCase(), discoveredExtension); } - allExtensions: // go through all the discovered extensions and get their dependencies as extensions + allExtensions: + // go through all the discovered extensions and get their dependencies as extensions for (DiscoveredExtension discoveredExtension : discoveredExtensions) { List dependencies = new ArrayList<>(discoveredExtension.getDependencies().length); @@ -481,6 +481,7 @@ public class ExtensionManager { /** * Checks if this list of extensions are loaded + * * @param extensions The list of extensions to check against. * @return If all of these extensions are loaded. */ @@ -603,7 +604,7 @@ public class ExtensionManager { try { for (String codeModifierClass : extension.getCodeModifiers()) { boolean loaded = modifiableClassLoader.loadModifier(extension.files.toArray(new URL[0]), codeModifierClass); - if(!loaded) { + if (!loaded) { extension.addMissingCodeModifier(codeModifierClass); } } @@ -613,17 +614,17 @@ public class ExtensionManager { Mixins.addConfiguration(mixinConfigFile); LOGGER.info("Found mixin in extension {}: {}", extension.getName(), mixinConfigFile); } catch (ServiceNotAvailableError | MixinError | MixinException e) { - if(MinecraftServer.getExceptionManager() != null) { + if (MinecraftServer.getExceptionManager() != null) { MinecraftServer.getExceptionManager().handleException(e); } else { e.printStackTrace(); } - LOGGER.error("Could not load Mixin configuration: "+mixinConfigFile); + LOGGER.error("Could not load Mixin configuration: " + mixinConfigFile); extension.setFailedToLoadMixinFlag(); } } } catch (Exception e) { - if(MinecraftServer.getExceptionManager() != null) { + if (MinecraftServer.getExceptionManager() != null) { MinecraftServer.getExceptionManager().handleException(e); } else { e.printStackTrace();