From 623e581623f73563f74eed51e8e601c701ddcf27 Mon Sep 17 00:00:00 2001 From: Adrian Victor Date: Sat, 23 May 2026 15:09:19 -0300 Subject: [PATCH] Fix ImplementationRegistry --- .../b1_7_3}/configuration/Configuration.java | 2 +- .../lib/{ => impl/b1_7_3}/text/TextColor.java | 2 +- .../lib/configuration/Configuration.java | 2 +- .../reflection/ImplementationRegistry.java | 28 +++++++++++++------ .../org/adrianvictor/lib/text/TextColor.java | 2 +- .../r1_21}/configuration/Configuration.java | 2 +- .../lib/{ => impl/r1_21}/text/TextColor.java | 2 +- 7 files changed, 26 insertions(+), 14 deletions(-) rename src/b1_7_3/java/org/adrianvictor/lib/{ => impl/b1_7_3}/configuration/Configuration.java (98%) rename src/b1_7_3/java/org/adrianvictor/lib/{ => impl/b1_7_3}/text/TextColor.java (83%) rename src/r1_21/java/org/adrianvictor/lib/{ => impl/r1_21}/configuration/Configuration.java (98%) rename src/r1_21/java/org/adrianvictor/lib/{ => impl/r1_21}/text/TextColor.java (86%) diff --git a/src/b1_7_3/java/org/adrianvictor/lib/configuration/Configuration.java b/src/b1_7_3/java/org/adrianvictor/lib/impl/b1_7_3/configuration/Configuration.java similarity index 98% rename from src/b1_7_3/java/org/adrianvictor/lib/configuration/Configuration.java rename to src/b1_7_3/java/org/adrianvictor/lib/impl/b1_7_3/configuration/Configuration.java index 04a8461..9e8c31b 100644 --- a/src/b1_7_3/java/org/adrianvictor/lib/configuration/Configuration.java +++ b/src/b1_7_3/java/org/adrianvictor/lib/impl/b1_7_3/configuration/Configuration.java @@ -1,4 +1,4 @@ -package org.adrianvictor.lib.configuration; +package org.adrianvictor.lib.impl.b1_7_3.configuration; import java.io.BufferedWriter; import java.io.File; diff --git a/src/b1_7_3/java/org/adrianvictor/lib/text/TextColor.java b/src/b1_7_3/java/org/adrianvictor/lib/impl/b1_7_3/text/TextColor.java similarity index 83% rename from src/b1_7_3/java/org/adrianvictor/lib/text/TextColor.java rename to src/b1_7_3/java/org/adrianvictor/lib/impl/b1_7_3/text/TextColor.java index c150502..8fa20ce 100644 --- a/src/b1_7_3/java/org/adrianvictor/lib/text/TextColor.java +++ b/src/b1_7_3/java/org/adrianvictor/lib/impl/b1_7_3/text/TextColor.java @@ -1,4 +1,4 @@ -package org.adrianvictor.lib.text; +package org.adrianvictor.lib.impl.b1_7_3.text; import org.bukkit.ChatColor; diff --git a/src/main/java/org/adrianvictor/lib/configuration/Configuration.java b/src/main/java/org/adrianvictor/lib/configuration/Configuration.java index 9bb76b5..fa005b5 100644 --- a/src/main/java/org/adrianvictor/lib/configuration/Configuration.java +++ b/src/main/java/org/adrianvictor/lib/configuration/Configuration.java @@ -5,6 +5,6 @@ import org.adrianvictor.lib.reflection.ImplementationRegistry; public class Configuration { public static ConfigurationProvider create(ImplementationRegistry registry) { - return registry.getInstance(ConfigurationProvider.class, "org.adrianvictor.lib.configuraion"); + return registry.getInstance(ConfigurationProvider.class); } } \ No newline at end of file diff --git a/src/main/java/org/adrianvictor/lib/reflection/ImplementationRegistry.java b/src/main/java/org/adrianvictor/lib/reflection/ImplementationRegistry.java index fcdf626..c9afd44 100644 --- a/src/main/java/org/adrianvictor/lib/reflection/ImplementationRegistry.java +++ b/src/main/java/org/adrianvictor/lib/reflection/ImplementationRegistry.java @@ -8,17 +8,29 @@ public class ImplementationRegistry { this.classSuffix = classSuffix; } - public T getInstance(Class interfaceClass, String packagePath) { - String implClassName = packagePath.replace( - "org.adrianvictor.lib", - "org.adrianvictor.lib.impl." + classSuffix - ); + public T getInstance(Class apiClass, String target, String replacement) { + String implName = + apiClass.getName() + .replace( + target, + replacement + classSuffix + "." + ); try { - Class implClass = Class.forName(implClassName); - return interfaceClass.cast(implClass.getDeclaredConstructor().newInstance()); + Class implClass = Class.forName(implName); + + return apiClass.cast( + implClass.getDeclaredConstructor().newInstance() + ); } catch (ReflectiveOperationException e) { - throw new IllegalStateException("Cannot load " + implClassName, e); + throw new IllegalStateException( + "Cannot load " + implName, + e + ); } } + + public T getInstance(Class apiClass) { + return getInstance(apiClass, "org.adrianvictor.lib", "org.adrianvictor.lib.impl."); + } } diff --git a/src/main/java/org/adrianvictor/lib/text/TextColor.java b/src/main/java/org/adrianvictor/lib/text/TextColor.java index 67629a5..9252de4 100644 --- a/src/main/java/org/adrianvictor/lib/text/TextColor.java +++ b/src/main/java/org/adrianvictor/lib/text/TextColor.java @@ -5,6 +5,6 @@ import org.adrianvictor.lib.text.provider.TextColorProvider; public class TextColor { public static TextColorProvider create(ImplementationRegistry registry) { - return registry.getInstance(TextColorProvider.class, "org.adrianvictor.lib.text"); + return registry.getInstance(TextColorProvider.class); } } diff --git a/src/r1_21/java/org/adrianvictor/lib/configuration/Configuration.java b/src/r1_21/java/org/adrianvictor/lib/impl/r1_21/configuration/Configuration.java similarity index 98% rename from src/r1_21/java/org/adrianvictor/lib/configuration/Configuration.java rename to src/r1_21/java/org/adrianvictor/lib/impl/r1_21/configuration/Configuration.java index a6eb3d0..0fe9c3d 100644 --- a/src/r1_21/java/org/adrianvictor/lib/configuration/Configuration.java +++ b/src/r1_21/java/org/adrianvictor/lib/impl/r1_21/configuration/Configuration.java @@ -1,4 +1,4 @@ -package org.adrianvictor.lib.configuration; +package org.adrianvictor.lib.impl.r1_21.configuration; import org.bukkit.configuration.InvalidConfigurationException; import org.bukkit.configuration.file.YamlConfiguration; diff --git a/src/r1_21/java/org/adrianvictor/lib/text/TextColor.java b/src/r1_21/java/org/adrianvictor/lib/impl/r1_21/text/TextColor.java similarity index 86% rename from src/r1_21/java/org/adrianvictor/lib/text/TextColor.java rename to src/r1_21/java/org/adrianvictor/lib/impl/r1_21/text/TextColor.java index f1b76dc..68fa062 100644 --- a/src/r1_21/java/org/adrianvictor/lib/text/TextColor.java +++ b/src/r1_21/java/org/adrianvictor/lib/impl/r1_21/text/TextColor.java @@ -1,4 +1,4 @@ -package org.adrianvictor.lib.text; +package org.adrianvictor.lib.impl.r1_21.text; import net.kyori.adventure.text.format.NamedTextColor;