Search in sources :

Example 1 with Slf4jBootstrapLogger

use of space.arim.libertybans.bootstrap.logger.Slf4jBootstrapLogger in project LibertyBans by A248.

the class UnpackTest method unpack.

private ClassLoader unpack(Platform platform, ClassLoader parentClassLoader) {
    Path jarFile = getJarFile();
    LibertyBansLauncher launcher = new LibertyBansLauncher(new Slf4jBootstrapLogger(LoggerFactory.getLogger(getClass())), platform, Path.of("target/folder"), ForkJoinPool.commonPool(), jarFile);
    assertEquals(DistributionMode.JAR_OF_JARS, launcher.distributionMode());
    System.setProperty("libertybans.relocationbug.disablecheck", "true");
    CompletableFuture<ClassLoader> futureClassLoader = launcher.attemptLaunch(parentClassLoader);
    futureClassLoader.orTimeout(5L, TimeUnit.SECONDS);
    return assertDoesNotThrow(futureClassLoader::join);
}
Also used : Path(java.nio.file.Path) LibertyBansLauncher(space.arim.libertybans.bootstrap.LibertyBansLauncher) Slf4jBootstrapLogger(space.arim.libertybans.bootstrap.logger.Slf4jBootstrapLogger)

Example 2 with Slf4jBootstrapLogger

use of space.arim.libertybans.bootstrap.logger.Slf4jBootstrapLogger in project LibertyBans by A248.

the class DownloadDependenciesIT method runDownloadDependencies.

private void runDownloadDependencies(Platform platform) {
    Path subFolder = folder.resolve("" + folderUniqueifier.getAndIncrement());
    BootstrapLogger logger = new Slf4jBootstrapLogger(LoggerFactory.getLogger(getClass()));
    LibertyBansLauncher launcher = new LibertyBansLauncher(logger, platform, subFolder, ForkJoinPool.commonPool(), Path.of("jar")) {

        @Override
        public DistributionMode distributionMode() {
            return DistributionMode.TESTING;
        }
    };
    ClassLoader classLoader = launcher.attemptLaunch().join();
    assertNotNull(classLoader, "Failed to download dependencies");
}
Also used : Path(java.nio.file.Path) Slf4jBootstrapLogger(space.arim.libertybans.bootstrap.logger.Slf4jBootstrapLogger) Slf4jBootstrapLogger(space.arim.libertybans.bootstrap.logger.Slf4jBootstrapLogger) BootstrapLogger(space.arim.libertybans.bootstrap.logger.BootstrapLogger)

Example 3 with Slf4jBootstrapLogger

use of space.arim.libertybans.bootstrap.logger.Slf4jBootstrapLogger in project LibertyBans by A248.

the class VelocityInitializer method initialize.

BaseFoundation initialize() {
    Platform platform = detectPlatform();
    ProxyServer server = velocityPlugin.server;
    Path folder = velocityPlugin.folder;
    Logger logger = velocityPlugin.logger;
    PluginContainer plugin = server.getPluginManager().fromInstance(velocityPlugin).get();
    Scheduler scheduler = server.getScheduler();
    Executor executor = (cmd) -> scheduler.buildTask(plugin, cmd).schedule();
    Path jarFile = plugin.getDescription().getSource().get();
    LibertyBansLauncher launcher = new LibertyBansLauncher(new Slf4jBootstrapLogger(velocityPlugin.logger), platform, velocityPlugin.folder, executor, jarFile, new VelocityCulpritFinder(server));
    ClassLoader launchLoader = launcher.attemptLaunch().join();
    if (launchLoader == null) {
        logger.warn("Failed to launch LibertyBans");
        return null;
    }
    BaseFoundation base;
    try {
        base = new Instantiator("space.arim.libertybans.env.velocity.VelocityLauncher", launchLoader).invoke(Map.Entry.class, Map.entry(plugin, server), folder);
    } catch (IllegalArgumentException | SecurityException | ReflectiveOperationException ex) {
        logger.warn("Failed to launch LibertyBans", ex);
        return null;
    }
    base.startup();
    return base;
}
Also used : Path(java.nio.file.Path) Platforms(space.arim.libertybans.bootstrap.Platforms) Logger(org.slf4j.Logger) Executor(java.util.concurrent.Executor) LibertyBansLauncher(space.arim.libertybans.bootstrap.LibertyBansLauncher) BaseFoundation(space.arim.libertybans.bootstrap.BaseFoundation) Platform(space.arim.libertybans.bootstrap.Platform) Slf4jBootstrapLogger(space.arim.libertybans.bootstrap.logger.Slf4jBootstrapLogger) Scheduler(com.velocitypowered.api.scheduler.Scheduler) ProxyServer(com.velocitypowered.api.proxy.ProxyServer) Map(java.util.Map) Instantiator(space.arim.libertybans.bootstrap.Instantiator) PluginContainer(com.velocitypowered.api.plugin.PluginContainer) Path(java.nio.file.Path) LibertyBansLauncher(space.arim.libertybans.bootstrap.LibertyBansLauncher) BaseFoundation(space.arim.libertybans.bootstrap.BaseFoundation) PluginContainer(com.velocitypowered.api.plugin.PluginContainer) Platform(space.arim.libertybans.bootstrap.Platform) Scheduler(com.velocitypowered.api.scheduler.Scheduler) Slf4jBootstrapLogger(space.arim.libertybans.bootstrap.logger.Slf4jBootstrapLogger) Instantiator(space.arim.libertybans.bootstrap.Instantiator) Logger(org.slf4j.Logger) Slf4jBootstrapLogger(space.arim.libertybans.bootstrap.logger.Slf4jBootstrapLogger) ProxyServer(com.velocitypowered.api.proxy.ProxyServer) Executor(java.util.concurrent.Executor)

Example 4 with Slf4jBootstrapLogger

use of space.arim.libertybans.bootstrap.logger.Slf4jBootstrapLogger in project LibertyBans by A248.

the class PaperSlf4jTest method detectPlatform.

@Test
public void detectPlatform() {
    JavaPlugin plugin = MockJavaPlugin.create(dataFolder, (server) -> {
        when(server.getVersion()).thenReturn("version");
    });
    BootstrapLogger logger = new Slf4jBootstrapLogger(LoggerFactory.getLogger(getClass()));
    Platform platform = new BaseWrapper.Creator(plugin, logger, dataFolder).detectPlatform();
    assertTrue(platform.hasSlf4jSupport());
    assertFalse(platform.hasKyoriAdventureSupport());
}
Also used : Platform(space.arim.libertybans.bootstrap.Platform) JavaPlugin(org.bukkit.plugin.java.JavaPlugin) Slf4jBootstrapLogger(space.arim.libertybans.bootstrap.logger.Slf4jBootstrapLogger) BootstrapLogger(space.arim.libertybans.bootstrap.logger.BootstrapLogger) Slf4jBootstrapLogger(space.arim.libertybans.bootstrap.logger.Slf4jBootstrapLogger) Test(org.junit.jupiter.api.Test)

Example 5 with Slf4jBootstrapLogger

use of space.arim.libertybans.bootstrap.logger.Slf4jBootstrapLogger in project LibertyBans by A248.

the class BaseWrapperTest method detectPlatform.

@Test
public void detectPlatform() {
    JavaPlugin plugin = MockJavaPlugin.create(dataFolder, (server) -> {
        when(server.getVersion()).thenReturn("version");
    });
    BootstrapLogger logger = new Slf4jBootstrapLogger(LoggerFactory.getLogger(getClass()));
    Platform platform = new BaseWrapper.Creator(plugin, logger, dataFolder).detectPlatform();
    assertFalse(platform.hasSlf4jSupport());
    assertFalse(platform.hasKyoriAdventureSupport());
}
Also used : Platform(space.arim.libertybans.bootstrap.Platform) JavaPlugin(org.bukkit.plugin.java.JavaPlugin) Slf4jBootstrapLogger(space.arim.libertybans.bootstrap.logger.Slf4jBootstrapLogger) Slf4jBootstrapLogger(space.arim.libertybans.bootstrap.logger.Slf4jBootstrapLogger) BootstrapLogger(space.arim.libertybans.bootstrap.logger.BootstrapLogger) Test(org.junit.jupiter.api.Test)

Aggregations

Slf4jBootstrapLogger (space.arim.libertybans.bootstrap.logger.Slf4jBootstrapLogger)8 Platform (space.arim.libertybans.bootstrap.Platform)6 BootstrapLogger (space.arim.libertybans.bootstrap.logger.BootstrapLogger)6 Test (org.junit.jupiter.api.Test)5 Path (java.nio.file.Path)3 JavaPlugin (org.bukkit.plugin.java.JavaPlugin)3 LibertyBansLauncher (space.arim.libertybans.bootstrap.LibertyBansLauncher)2 PluginContainer (com.velocitypowered.api.plugin.PluginContainer)1 ProxyServer (com.velocitypowered.api.proxy.ProxyServer)1 Scheduler (com.velocitypowered.api.scheduler.Scheduler)1 Map (java.util.Map)1 Executor (java.util.concurrent.Executor)1 Logger (org.slf4j.Logger)1 BaseFoundation (space.arim.libertybans.bootstrap.BaseFoundation)1 Instantiator (space.arim.libertybans.bootstrap.Instantiator)1 Platforms (space.arim.libertybans.bootstrap.Platforms)1