Class PaperApplicationBuilder

java.lang.Object
io.github.slimjar.app.builder.ApplicationBuilder<PaperApplicationBuilder>
io.github.slimjar.app.builder.InjectingApplicationBuilder<PaperApplicationBuilder>
io.github.slimjar.app.builder.PaperApplicationBuilder

public class PaperApplicationBuilder extends io.github.slimjar.app.builder.InjectingApplicationBuilder<PaperApplicationBuilder>
A builder class for creating and configuring a paper-based application.

The PaperApplicationBuilder provides methods for customizing the behavior of the application, such as enabling debug mode, configuring dependency remapping, and injecting dependencies into the application. This builder is specifically designed to work in the context of a Paper plugin environment, utilizing plugin-specific resources such as the logger, data folder.

The builder ensures that dependencies are properly loaded and optionally remapped, enabling advanced use cases like dependency isolation or custom dependency management for Paper plugins.

This class is immutable and can only be configured through fluent methods. Once configuration is complete, calling ApplicationBuilder.build() will create and return the configured application instance.

  • Field Summary

    Fields inherited from class io.github.slimjar.app.builder.InjectingApplicationBuilder

    injectableFactory, injectableSupplier

    Fields inherited from class io.github.slimjar.app.builder.ApplicationBuilder

    self
  • Constructor Summary

    Constructors
    Constructor
    Description
    PaperApplicationBuilder(@NotNull io.papermc.paper.plugin.loader.PluginClasspathBuilder builder)
    Constructs an instance of PaperApplicationBuilder which extends the InjectingApplicationBuilder.
  • Method Summary

    Modifier and Type
    Method
    Description
    logger(@NotNull org.slf4j.Logger logger)
     
    logger(@NotNull org.slf4j.Logger logger, boolean debug)
     
    remap(boolean remap)
     

    Methods inherited from class io.github.slimjar.app.builder.InjectingApplicationBuilder

    buildApplication, create, create, create, getInjectableFactory, injectableFactory

    Methods inherited from class io.github.slimjar.app.builder.ApplicationBuilder

    appending, build, createInjector, dataProviderFactory, dependencyFileUrl, downloadDirectoryPath, downloaderFactory, enquirerFactory, getApplicationName, getDataProviderFactory, getDependencyFileUrl, getDownloadDirectoryPath, getDownloaderFactory, getEnquirerFactory, getInjectorFactory, getLogger, getMirrorSelector, getPreResolutionDataProviderFactory, getPreResolutionFileUrl, getRelocationHelperFactory, getRelocatorFactory, getResolverFactory, getVerifierFactory, injecting, injectorFactory, isolated, logger, mirrorSelector, preResolutionDataProviderFactory, preResolutionFileUrl, relocationHelperFactory, relocatorFactory, resolverFactory, verifierFactory

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • PaperApplicationBuilder

      public PaperApplicationBuilder(@NotNull @NotNull io.papermc.paper.plugin.loader.PluginClasspathBuilder builder)
      Constructs an instance of PaperApplicationBuilder which extends the InjectingApplicationBuilder. This constructor initializes the application context, configures the logger, sets the download directory path, and adds the necessary library injection functionality.
      Parameters:
      builder - an instance of PluginClasspathBuilder used to configure the Paper application by providing classpath dependencies and initializing the injectable supplier. The builder provides the context with necessary configurations and access to the logger.
  • Method Details

    • remap

      @Contract(value="_ -> this", mutates="this") public PaperApplicationBuilder remap(boolean remap)
    • logger

      @Contract(value="_ -> this", mutates="this") @NotNull public @NotNull PaperApplicationBuilder logger(@NotNull @NotNull org.slf4j.Logger logger)
    • logger

      @Contract(value="_, _ -> this", mutates="this") @NotNull public @NotNull PaperApplicationBuilder logger(@NotNull @NotNull org.slf4j.Logger logger, boolean debug)