diff --git a/src/main/java/fr/xephi/authme/AuthMe.java b/src/main/java/fr/xephi/authme/AuthMe.java index 8ed9ffb3..128e9693 100644 --- a/src/main/java/fr/xephi/authme/AuthMe.java +++ b/src/main/java/fr/xephi/authme/AuthMe.java @@ -135,6 +135,7 @@ public class AuthMe extends JavaPlugin { initialize(); } catch (Exception e) { ConsoleLogger.logException("Aborting initialization of AuthMe:", e); + OnStartupTasks.displayLegacyJarHint(e); stopOrUnload(); return; } diff --git a/src/main/java/fr/xephi/authme/initialization/OnStartupTasks.java b/src/main/java/fr/xephi/authme/initialization/OnStartupTasks.java index e803fafa..34996508 100644 --- a/src/main/java/fr/xephi/authme/initialization/OnStartupTasks.java +++ b/src/main/java/fr/xephi/authme/initialization/OnStartupTasks.java @@ -1,5 +1,6 @@ package fr.xephi.authme.initialization; +import ch.jalu.injector.exceptions.InjectorReflectionException; import fr.xephi.authme.AuthMe; import fr.xephi.authme.ConsoleLogger; import fr.xephi.authme.data.auth.PlayerAuth; @@ -21,6 +22,7 @@ import org.bukkit.Bukkit; import org.bukkit.entity.Player; import javax.inject.Inject; +import java.util.Optional; import java.util.logging.Logger; import static fr.xephi.authme.service.BukkitService.TICKS_PER_MINUTE; @@ -111,4 +113,23 @@ public class OnStartupTasks { } }, 1, TICKS_PER_MINUTE * settings.getProperty(EmailSettings.DELAY_RECALL)); } + + /** + * Displays a hint to use the legacy AuthMe JAR if AuthMe could not be started + * because Gson was not found. + * + * @param e the exception to process + */ + public static void displayLegacyJarHint(Exception e) { + if (e instanceof InjectorReflectionException) { + Throwable causeOfCause = Optional.of(e) + .map(Throwable::getCause) + .map(Throwable::getCause).orElse(null); + if (causeOfCause instanceof NoClassDefFoundError + && "Lcom/google/gson/Gson;".equals(causeOfCause.getMessage())) { + ConsoleLogger.warning("YOU MUST DOWNLOAD THE LEGACY JAR TO USE AUTHME ON YOUR SERVER"); + ConsoleLogger.warning("Get authme-legacy.jar from http://ci.xephi.fr/job/AuthMeReloaded/"); + } + } + } }