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;