diff --git a/build.gradle.kts b/build.gradle.kts index d71a0b9..51d2127 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -103,12 +103,18 @@ val prepareServiceFiles = tasks.register("prepareServiceFiles") { doLast { val registrars = mutableSetOf() inputFiles.forEach { file -> - registrars.addAll(file.readLines().filter { it.isNotBlank() }) + println("Checking file: ${file.absolutePath}, exists: ${file.exists()}") + if (file.exists()) { + val lines = file.readLines().filter { it.isNotBlank() } + println("Found lines: $lines") + registrars.addAll(lines) + } } val mergedFile = outputDir.get().file(serviceFile).asFile mergedFile.parentFile.mkdirs() mergedFile.writeText(registrars.joinToString("\n")) + println("Merged service file content: \n${registrars.joinToString("\n")}") } } @@ -122,9 +128,10 @@ tasks.register("bundleAll") { from(prepareServiceFiles) { into("META-INF/services") include("org.adrianvictor.lib.versioning.VersionedServiceRegistrar") + duplicatesStrategy = DuplicatesStrategy.INCLUDE } - duplicatesStrategy = DuplicatesStrategy.EXCLUDE + duplicatesStrategy = DuplicatesStrategy.INCLUDE archiveClassifier.set("all-implementations") archiveVersion.set(project.version.toString()) @@ -162,5 +169,6 @@ tasks.withType { tasks.runServer { minecraftVersion("1.21.1") - pluginJars.from(tasks.named("jarR1_21")) + // Include ONLY the all-implementations jar as the plugin + pluginJars.setFrom(tasks.named("bundleAll")) } \ No newline at end of file diff --git a/src/main/java/org/adrianvictor/lib/Main.java b/src/main/java/org/adrianvictor/lib/Main.java index 6190da1..d10d7fd 100644 --- a/src/main/java/org/adrianvictor/lib/Main.java +++ b/src/main/java/org/adrianvictor/lib/Main.java @@ -10,19 +10,29 @@ import java.util.ServiceLoader; public class Main extends JavaPlugin { + static { + System.out.println("Main class loaded!"); + } + private static VersionedServiceFactory versionedServiceFactory; private static VersionMatcher versionMatcher; @Override public void onEnable() { versionMatcher = new VersionMatcher(); - versionedServiceFactory = new DefaultVersionedServiceFactory(versionMatcher); - ServiceLoader registrars = ServiceLoader.load(VersionedServiceRegistrar.class, getClassLoader()); + ClassLoader cl = getClassLoader(); + getLogger().info("Plugin ClassLoader: " + cl.getClass().getName()); + String serviceFile = "META-INF/services/org.adrianvictor.lib.versioning.VersionedServiceRegistrar"; + java.net.URL res = cl.getResource(serviceFile); + getLogger().info("Service file resource: " + res); + + ServiceLoader registrars = ServiceLoader.load(VersionedServiceRegistrar.class, cl); int count = 0; for (VersionedServiceRegistrar registrar : registrars) { registrar.register(versionedServiceFactory); + getLogger().info("Registered registrar: " + registrar.getClass().getName()); count++; } getLogger().info("Registered " + count + " version-specific registrars.");