diff --git a/build.gradle.kts b/build.gradle.kts index 711c583..d929735 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -4,7 +4,7 @@ plugins { } group = "org.adrianvictor" -version = "2.0" +version = "2.1.1" val buildEnv = System.getenv("BUILD_CHANNEL") ?: if (System.getenv("JITPACK") != null) "jitpack" else "local" @@ -86,16 +86,10 @@ mcVersions.forEach { ver -> } } -tasks.register("buildAll") { - dependsOn(tasks.withType()) -} - -// Task to merge service files val prepareServiceFiles = tasks.register("prepareServiceFiles") { val outputDir = layout.buildDirectory.dir("generated/service-files") val serviceFile = "META-INF/services/org.adrianvictor.lib.versioning.VersionedServiceRegistrar" - // Define inputs val inputFiles = mcVersions.map { ver -> file("src/$ver/resources/$serviceFile") }.filter { it.exists() } inputs.files(inputFiles) outputs.dir(outputDir) @@ -139,7 +133,7 @@ tasks.named("jar") { tasks.register("bundleAll") { dependsOn("jar") - // This is now redundant but we keep it for compatibility with previous instructions + from(sourceSets["main"].output) mcVersions.forEach { ver -> from(sourceSets[ver].output) { @@ -147,7 +141,6 @@ tasks.register("bundleAll") { } } - // Include the merged service file from(prepareServiceFiles) duplicatesStrategy = DuplicatesStrategy.EXCLUDE @@ -187,7 +180,6 @@ tasks.withType { /* ----------------------------------------- */ tasks.runServer { - minecraftVersion("1.21.1") - // Include ONLY the all-implementations jar as the plugin + minecraftVersion("1.21.11") pluginJars.setFrom(tasks.named("bundleAll")) } \ No newline at end of file diff --git a/src/b1_7_3/java/org/adrianvictor/lib/impl/b1_7_3/configuration/Configuration.java b/src/b1_7_3/java/org/adrianvictor/lib/impl/b1_7_3/configuration/Configuration.java index 9e8c31b..5f3fd89 100644 --- a/src/b1_7_3/java/org/adrianvictor/lib/impl/b1_7_3/configuration/Configuration.java +++ b/src/b1_7_3/java/org/adrianvictor/lib/impl/b1_7_3/configuration/Configuration.java @@ -17,6 +17,7 @@ public class Configuration implements org.adrianvictor.lib.configuration.provide @Override public void load(File file) { config = new org.bukkit.util.config.Configuration(file); + config.load(); } @Override diff --git a/src/b1_7_3/java/org/adrianvictor/lib/impl/b1_7_3/file/File.java b/src/b1_7_3/java/org/adrianvictor/lib/impl/b1_7_3/file/File.java index 943c0b3..5629c8b 100644 --- a/src/b1_7_3/java/org/adrianvictor/lib/impl/b1_7_3/file/File.java +++ b/src/b1_7_3/java/org/adrianvictor/lib/impl/b1_7_3/file/File.java @@ -13,7 +13,6 @@ public class File implements FileProvider { java.io.File file = new java.io.File(plugin.getDataFolder(), resourcePath); if (!file.exists() || replace) { - file.getParentFile().mkdirs(); InputStream in = plugin.getClass().getResourceAsStream("/" + resourcePath); diff --git a/src/b1_7_3/java/org/adrianvictor/lib/impl/b1_7_3/logging/Logger.java b/src/b1_7_3/java/org/adrianvictor/lib/impl/b1_7_3/logging/Logger.java index 183b2ab..41d2f72 100644 --- a/src/b1_7_3/java/org/adrianvictor/lib/impl/b1_7_3/logging/Logger.java +++ b/src/b1_7_3/java/org/adrianvictor/lib/impl/b1_7_3/logging/Logger.java @@ -32,7 +32,7 @@ public class Logger implements LoggerProvider { } @Override - public void error(String text) { + public void severe(String text) { logger.severe(prefix + text); } } diff --git a/src/main/java/org/adrianvictor/lib/Main.java b/src/main/java/org/adrianvictor/lib/Main.java index e7c7760..e13bdb5 100644 --- a/src/main/java/org/adrianvictor/lib/Main.java +++ b/src/main/java/org/adrianvictor/lib/Main.java @@ -34,7 +34,6 @@ public class Main extends JavaPlugin { boolean registered = false; - // 1. Load core registrar based on version mapping String coreRegistrar = version.getRegistrarClass(); if (coreRegistrar != null) { if (loadRegistrar(coreRegistrar)) { @@ -42,12 +41,11 @@ public class Main extends JavaPlugin { } } - // 2. Load registrars via ServiceLoader for extensibility try { java.util.ServiceLoader loader = java.util.ServiceLoader.load(VersionedServiceRegistrar.class, getClassLoader()); for (VersionedServiceRegistrar registrar : loader) { String registrarName = registrar.getClass().getName(); - // Skip if already registered as core + if (registrarName.equals(coreRegistrar)) continue; if (registerRegistrar(registrar)) { diff --git a/src/main/java/org/adrianvictor/lib/loading/ModernRegistrarLoader.java b/src/main/java/org/adrianvictor/lib/loading/ModernRegistrarLoader.java deleted file mode 100644 index e8bb5dc..0000000 --- a/src/main/java/org/adrianvictor/lib/loading/ModernRegistrarLoader.java +++ /dev/null @@ -1,8 +0,0 @@ -package org.adrianvictor.lib.loading; - -import org.adrianvictor.lib.versioning.VersionedServiceFactory; -import org.bukkit.plugin.java.JavaPlugin; - -public interface ModernRegistrarLoader { - void load(VersionedServiceFactory factory, JavaPlugin plugin); -} diff --git a/src/main/java/org/adrianvictor/lib/loading/RegistrarBridge.java b/src/main/java/org/adrianvictor/lib/loading/RegistrarBridge.java deleted file mode 100644 index b0cd5c0..0000000 --- a/src/main/java/org/adrianvictor/lib/loading/RegistrarBridge.java +++ /dev/null @@ -1,8 +0,0 @@ -package org.adrianvictor.lib.loading; - -import org.adrianvictor.lib.versioning.VersionedServiceFactory; -import org.bukkit.plugin.java.JavaPlugin; - -public interface RegistrarBridge { - void load(VersionedServiceFactory factory, JavaPlugin plugin); -} diff --git a/src/main/java/org/adrianvictor/lib/logging/provider/LoggerProvider.java b/src/main/java/org/adrianvictor/lib/logging/provider/LoggerProvider.java index 3747ad9..ad5b342 100644 --- a/src/main/java/org/adrianvictor/lib/logging/provider/LoggerProvider.java +++ b/src/main/java/org/adrianvictor/lib/logging/provider/LoggerProvider.java @@ -9,5 +9,16 @@ public interface LoggerProvider { void info(String text); void warning(String text); - void error(String text); + + /** + * @deprecated + * Does not throw an error. + *

Use {@link LoggerProvider#severe(String)} instead. + */ + @Deprecated + default void error(String text) { + severe(text); + } + + void severe(String text); } diff --git a/src/main/java/org/adrianvictor/lib/versioning/MinecraftVersion.java b/src/main/java/org/adrianvictor/lib/versioning/MinecraftVersion.java index 5ae57be..25539fa 100644 --- a/src/main/java/org/adrianvictor/lib/versioning/MinecraftVersion.java +++ b/src/main/java/org/adrianvictor/lib/versioning/MinecraftVersion.java @@ -4,26 +4,6 @@ import org.bukkit.Bukkit; public enum MinecraftVersion { B1_7_3(0, "b1_7_3", "org.adrianvictor.lib.impl.b1_7_3.B1_7_3Registrar"), - V1_1(1, "r1_1", "org.adrianvictor.lib.impl.r1_21.R1_21Registrar"), - V1_2(2, "r1_1", "org.adrianvictor.lib.impl.r1_21.R1_21Registrar"), - V1_3(3, "r1_1", "org.adrianvictor.lib.impl.r1_21.R1_21Registrar"), - V1_4(4, "r1_1", "org.adrianvictor.lib.impl.r1_21.R1_21Registrar"), - V1_5(5, "r1_1", "org.adrianvictor.lib.impl.r1_21.R1_21Registrar"), - V1_6(6, "r1_1", "org.adrianvictor.lib.impl.r1_21.R1_21Registrar"), - V1_7(7, "r1_1", "org.adrianvictor.lib.impl.r1_21.R1_21Registrar"), - V1_8(8, "r1_1", "org.adrianvictor.lib.impl.r1_21.R1_21Registrar"), - V1_9(9, "r1_1", "org.adrianvictor.lib.impl.r1_21.R1_21Registrar"), - V1_10(10, "r1_1", "org.adrianvictor.lib.impl.r1_21.R1_21Registrar"), - V1_11(11, "r1_1", "org.adrianvictor.lib.impl.r1_21.R1_21Registrar"), - V1_12(12, "r1_1", "org.adrianvictor.lib.impl.r1_21.R1_21Registrar"), - V1_13(13, "r1_1", "org.adrianvictor.lib.impl.r1_21.R1_21Registrar"), - V1_14(14, "r1_1", "org.adrianvictor.lib.impl.r1_21.R1_21Registrar"), - V1_15(15, "r1_1", "org.adrianvictor.lib.impl.r1_21.R1_21Registrar"), - V1_16(16, "r1_16_5", "org.adrianvictor.lib.impl.r1_21.R1_21Registrar"), - V1_17(17, "r1_16_5", "org.adrianvictor.lib.impl.r1_21.R1_21Registrar"), - V1_18(18, "r1_16_5", "org.adrianvictor.lib.impl.r1_21.R1_21Registrar"), - V1_19(19, "r1_16_5", "org.adrianvictor.lib.impl.r1_21.R1_21Registrar"), - V1_20(20, "r1_16_5", "org.adrianvictor.lib.impl.r1_21.R1_21Registrar"), V1_21(21, "r1_21", "org.adrianvictor.lib.impl.r1_21.R1_21Registrar"), UNKNOWN(-1, "unknown"); @@ -64,28 +44,7 @@ public enum MinecraftVersion { String bukkitVersion = Bukkit.getBukkitVersion(); String mcVer = bukkitVersion.split("-")[0]; - if (mcVer.startsWith("1.21")) return V1_21; - if (mcVer.startsWith("1.20")) return V1_20; - if (mcVer.startsWith("1.19")) return V1_19; - if (mcVer.startsWith("1.18")) return V1_18; - if (mcVer.startsWith("1.17")) return V1_17; - if (mcVer.startsWith("1.16")) return V1_16; - if (mcVer.startsWith("1.15")) return V1_15; - if (mcVer.startsWith("1.14")) return V1_14; - if (mcVer.startsWith("1.13")) return V1_13; - if (mcVer.startsWith("1.12")) return V1_12; - if (mcVer.startsWith("1.11")) return V1_11; - if (mcVer.startsWith("1.10")) return V1_10; - if (mcVer.startsWith("1.9")) return V1_9; - if (mcVer.startsWith("1.8")) return V1_8; - if (mcVer.startsWith("1.7")) return V1_7; - if (mcVer.startsWith("1.6")) return V1_6; - if (mcVer.startsWith("1.5")) return V1_5; - if (mcVer.startsWith("1.4")) return V1_4; - if (mcVer.startsWith("1.3")) return V1_3; - if (mcVer.startsWith("1.2")) return V1_2; - if (mcVer.startsWith("1.1")) return V1_1; - - return UNKNOWN; + //if (mcVer.startsWith("1.21")) return V1_21; + return V1_21; } } diff --git a/src/main/java/org/adrianvictor/lib/versioning/VersionMatcher.java b/src/main/java/org/adrianvictor/lib/versioning/VersionMatcher.java index 1e82d04..cfc2e53 100644 --- a/src/main/java/org/adrianvictor/lib/versioning/VersionMatcher.java +++ b/src/main/java/org/adrianvictor/lib/versioning/VersionMatcher.java @@ -16,16 +16,9 @@ public class VersionMatcher { List suffixes = new ArrayList<>(); - // Add suffixes in order of specificity (newest/most specific first) if (version.isAtLeast(MinecraftVersion.V1_21)) { suffixes.add("r1_21"); } - if (version.isAtLeast(MinecraftVersion.V1_16)) { - suffixes.add("r1_16_5"); - } - if (version.isAtLeast(MinecraftVersion.V1_1)) { - suffixes.add("r1_1"); - } if (version == MinecraftVersion.B1_7_3) { suffixes.add("b1_7_3"); } diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 10e821b..1eccf37 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -4,5 +4,5 @@ database: false main: org.adrianvictor.lib.Main startup: startup url: https://adrianvic.github.io -version: '2.0' +version: '2.1.1' api-version: '1.21' \ No newline at end of file diff --git a/src/r1_21/java/org/adrianvictor/lib/impl/r1_21/R1_21Registrar.java b/src/r1_21/java/org/adrianvictor/lib/impl/r1_21/R1_21Registrar.java index dff4d46..5047d4a 100644 --- a/src/r1_21/java/org/adrianvictor/lib/impl/r1_21/R1_21Registrar.java +++ b/src/r1_21/java/org/adrianvictor/lib/impl/r1_21/R1_21Registrar.java @@ -28,8 +28,8 @@ public class R1_21Registrar implements VersionedServiceRegistrar { @Override public void register(VersionedServiceFactory factory) { Logger.setPlugin(this.plugin); - factory.register(ConfigurationProvider.class, "r1_1", Configuration::new); - factory.register(TextColorProvider.class, "r1_16_5", TextColor::new); + factory.register(ConfigurationProvider.class, "r1_21", Configuration::new); // min 1.1 + factory.register(TextColorProvider.class, "r1_21", TextColor::new); // min 1.16.5 factory.register(LoggerProvider.class, "r1_21", Logger::new); factory.register(FileProvider.class, "r1_21", File::new); } diff --git a/src/r1_21/java/org/adrianvictor/lib/impl/r1_21/configuration/Configuration.java b/src/r1_21/java/org/adrianvictor/lib/impl/r1_21/configuration/Configuration.java index 0fe9c3d..57c324f 100644 --- a/src/r1_21/java/org/adrianvictor/lib/impl/r1_21/configuration/Configuration.java +++ b/src/r1_21/java/org/adrianvictor/lib/impl/r1_21/configuration/Configuration.java @@ -6,6 +6,10 @@ import org.bukkit.configuration.file.YamlConfiguration; import java.io.File; import java.io.IOException; import java.io.Reader; +import java.nio.file.Files; +import java.nio.file.Path; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.*; public class Configuration implements org.adrianvictor.lib.configuration.provider.ConfigurationProvider { @@ -24,11 +28,12 @@ public class Configuration implements org.adrianvictor.lib.configuration.provide @Override public void load(String contents) throws IOException, org.adrianvictor.lib.configuration.exception.InvalidConfigurationException { - try { - config.load(contents); - } catch (InvalidConfigurationException e) { - throw new org.adrianvictor.lib.configuration.exception.InvalidConfigurationException(e.getMessage()); - } + String timestamp = LocalDateTime.now() + .format(DateTimeFormatter.ofPattern("HH-mm-dd-MM-yyyy")); + Path temp = Files.createTempFile("tlib-configprovider-tmp-%s".formatted(timestamp), ".yml"); + Files.writeString(temp, contents); + File file = temp.toFile(); + load(file); } @Override diff --git a/src/r1_21/java/org/adrianvictor/lib/impl/r1_21/logging/Logger.java b/src/r1_21/java/org/adrianvictor/lib/impl/r1_21/logging/Logger.java index 818cc5a..16ffc6b 100644 --- a/src/r1_21/java/org/adrianvictor/lib/impl/r1_21/logging/Logger.java +++ b/src/r1_21/java/org/adrianvictor/lib/impl/r1_21/logging/Logger.java @@ -30,7 +30,7 @@ public class Logger implements LoggerProvider { } @Override - public void error(String text) { + public void severe(String text) { logger.severe(text); } }