diff --git a/Bukkit/src/main/java/net/frankheijden/serverutils/bukkit/reflection/RDedicatedServer.java b/Bukkit/src/main/java/net/frankheijden/serverutils/bukkit/reflection/RDedicatedServer.java index f6bd72f..e5a4576 100644 --- a/Bukkit/src/main/java/net/frankheijden/serverutils/bukkit/reflection/RDedicatedServer.java +++ b/Bukkit/src/main/java/net/frankheijden/serverutils/bukkit/reflection/RDedicatedServer.java @@ -7,6 +7,7 @@ import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; +import java.lang.invoke.MethodType; import java.util.Properties; public class RDedicatedServer { @@ -124,7 +125,12 @@ public static Object getConfigValue(Object config, String key) { public static void setConfigValue(Object config, Object console, String getMethod, String setMethod, String configMethod, String key) { Object defaultValue = reflection.invoke(console, getMethod); - Object configValue = RPropertyManager.getReflection().invoke(config, configMethod, key, defaultValue); - reflection.invoke(console, setMethod, configValue); + Class defaultValueClass = MethodType.methodType(defaultValue.getClass()).unwrap().returnType(); + Object configValue = RPropertyManager.getReflection().invoke( + config, + configMethod, + ClassObject.of(key), + ClassObject.of(defaultValueClass, defaultValue)); + reflection.invoke(console, setMethod, ClassObject.of(defaultValueClass, configValue)); } } diff --git a/Bukkit/src/main/java/net/frankheijden/serverutils/bukkit/reflection/RPropertyManager.java b/Bukkit/src/main/java/net/frankheijden/serverutils/bukkit/reflection/RPropertyManager.java index 2c9519f..2744d52 100644 --- a/Bukkit/src/main/java/net/frankheijden/serverutils/bukkit/reflection/RPropertyManager.java +++ b/Bukkit/src/main/java/net/frankheijden/serverutils/bukkit/reflection/RPropertyManager.java @@ -12,6 +12,6 @@ public static MinecraftReflection getReflection() { } public static Object newInstance(Object options) { - return ROptionSet.getReflection().newInstance(options); + return getReflection().newInstance(options); } }