Make use of paper's new bootstrap/library loader
This commit is contained in:
parent
cc10d4d653
commit
a28521f105
|
@ -0,0 +1,56 @@
|
|||
package us.crazycrew.crazyauctions;
|
||||
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import us.crazycrew.crazycore.CrazyLogger;
|
||||
import us.crazycrew.crazycore.paper.PaperCore;
|
||||
import java.io.File;
|
||||
import java.nio.file.Path;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
public class CrazyAuctions extends JavaPlugin {
|
||||
|
||||
private static CrazyAuctions plugin;
|
||||
|
||||
private final PaperCore paperCore;
|
||||
|
||||
private final File users;
|
||||
|
||||
public CrazyAuctions(PaperCore paperCore) {
|
||||
this.paperCore = paperCore;
|
||||
|
||||
plugin = this;
|
||||
|
||||
this.users = new File(paperCore.getDirectory() + "/userdata");
|
||||
|
||||
if (users.mkdir()) CrazyLogger.info("Created the folder " + users.getName() + ".");
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull Logger getLogger() {
|
||||
return CrazyLogger.getLogger();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
// Enable the player registry.
|
||||
getCrazyCore().createPlayerRegistry(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDisable() {
|
||||
super.onDisable();
|
||||
}
|
||||
|
||||
public static CrazyAuctions getPlugin() {
|
||||
return plugin;
|
||||
}
|
||||
|
||||
public PaperCore getCrazyCore() {
|
||||
return this.paperCore;
|
||||
}
|
||||
|
||||
public Path getUsers() {
|
||||
return users.toPath();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
package us.crazycrew.crazyauctions;
|
||||
|
||||
import io.papermc.paper.plugin.loader.PluginClasspathBuilder;
|
||||
import io.papermc.paper.plugin.loader.PluginLoader;
|
||||
import io.papermc.paper.plugin.loader.library.impl.MavenLibraryResolver;
|
||||
import org.eclipse.aether.artifact.DefaultArtifact;
|
||||
import org.eclipse.aether.graph.Dependency;
|
||||
import org.eclipse.aether.repository.RemoteRepository;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@SuppressWarnings("UnstableApiUsage")
|
||||
public class CrazyLoader implements PluginLoader {
|
||||
|
||||
@Override
|
||||
public void classloader(@NotNull PluginClasspathBuilder classpathBuilder) {
|
||||
MavenLibraryResolver resolver = new MavenLibraryResolver();
|
||||
|
||||
resolver.addDependency(new Dependency(new DefaultArtifact("us.crazycrew.crazycore:crazycore-paper:1.1.0.0"), null));
|
||||
|
||||
// Configs
|
||||
resolver.addDependency(new Dependency(new DefaultArtifact("ch.jalu:configme:1.3.0"), null));
|
||||
|
||||
resolver.addRepository(new RemoteRepository.Builder("maven2", "default", "https://repo1.maven.org/maven2").build());
|
||||
resolver.addRepository(new RemoteRepository.Builder("crazycrew-libraries", "default", "https://repo.crazycrew.us/libraries").build());
|
||||
|
||||
//resolver.addDependency(new Dependency(new DefaultArtifact("us.crazycrew.crazycore:crazycore-core:1.1.0.0"), null));
|
||||
|
||||
//resolver.addRepository(new RemoteRepository.Builder("triumphteam-snapshots", "default", "https://repo.triumphteam.dev/snapshots").build());
|
||||
|
||||
//resolver.addDependency(new Dependency(new DefaultArtifact("dev.triumphteam:triumph-gui:3.1.2"), null));
|
||||
|
||||
classpathBuilder.addLibrary(resolver);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,58 @@
|
|||
package us.crazycrew.crazyauctions;
|
||||
|
||||
import ch.jalu.configme.SettingsManager;
|
||||
import ch.jalu.configme.SettingsManagerBuilder;
|
||||
import io.papermc.paper.plugin.bootstrap.PluginBootstrap;
|
||||
import io.papermc.paper.plugin.bootstrap.PluginProviderContext;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import us.crazycrew.crazyauctions.configs.PluginSettings;
|
||||
import us.crazycrew.crazyauctions.configs.migrations.PluginMigrationService;
|
||||
import us.crazycrew.crazycore.CrazyLogger;
|
||||
import us.crazycrew.crazycore.paper.PaperConsole;
|
||||
import us.crazycrew.crazycore.paper.PaperCore;
|
||||
import us.crazycrew.crazycore.paper.player.PaperPlayerRegistry;
|
||||
import java.io.File;
|
||||
import java.util.logging.LogManager;
|
||||
|
||||
@SuppressWarnings("UnstableApiUsage")
|
||||
public class Starter implements PluginBootstrap {
|
||||
|
||||
private PaperCore paperCore;
|
||||
|
||||
private SettingsManager pluginConfig;
|
||||
|
||||
@Override
|
||||
public void bootstrap(@NotNull PluginProviderContext context) {
|
||||
this.paperCore = new PaperCore(context.getConfiguration().getName(), context.getDataDirectory());
|
||||
|
||||
this.pluginConfig = SettingsManagerBuilder
|
||||
.withYamlFile(new File(context.getDataDirectory().toFile(), "plugin-settings.yml"))
|
||||
.configurationData(PluginSettings.class)
|
||||
.migrationService(new PluginMigrationService()).create();
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull JavaPlugin createPlugin(@NotNull PluginProviderContext context) {
|
||||
// Create the player registry.
|
||||
this.paperCore.setPaperPlayerRegistry(new PaperPlayerRegistry());
|
||||
|
||||
// Create the console instance.
|
||||
this.paperCore.setPaperConsole(new PaperConsole());
|
||||
|
||||
// Set the project prefix.
|
||||
this.paperCore.setProjectPrefix(getPluginConfig().getProperty(PluginSettings.CONSOLE_PREFIX));
|
||||
|
||||
// Set the logger name and create it.
|
||||
CrazyLogger.setName(this.paperCore.getProjectName());
|
||||
|
||||
// Add the logger manager.
|
||||
LogManager.getLogManager().addLogger(CrazyLogger.getLogger());
|
||||
|
||||
return new CrazyAuctions(this.paperCore);
|
||||
}
|
||||
|
||||
public SettingsManager getPluginConfig() {
|
||||
return this.pluginConfig;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
name: ${name}
|
||||
main: ${group}.CrazyAuctions
|
||||
|
||||
version: ${version}
|
||||
api-version: '1.19'
|
||||
description: ${description}
|
||||
|
||||
bootstrapper: ${group}.Starter
|
||||
loader: ${group}.CrazyLoader
|
||||
|
||||
dependencies:
|
||||
- name: CMI
|
||||
required: false
|
||||
bootstrap: false
|
||||
- name: HolographicDisplays
|
||||
required: false
|
||||
bootstrap: false
|
||||
- name: DecentHolograms
|
||||
required: false
|
||||
bootstrap: false
|
||||
- name: PlaceholderAPI
|
||||
required: false
|
||||
bootstrap: false
|
||||
- name: Vault
|
||||
required: false
|
||||
bootstrap: false
|
||||
|
||||
load-after:
|
||||
- name: CMI
|
||||
bootstrap: false
|
||||
- name: HolographicDisplays
|
||||
bootstrap: false
|
||||
- name: DecentHolograms
|
||||
bootstrap: false
|
||||
- name: PlaceholderAPI
|
||||
bootstrap: false
|
||||
- name: Vault
|
||||
bootstrap: false
|
Loading…
Reference in New Issue