1
0
mirror of https://github.com/GeyserMC/Floodgate.git synced 2026-01-06 15:42:03 +00:00

Also include CraftServer and CraftOfflinePlayer

This commit is contained in:
Aurora
2025-06-20 19:28:16 +01:00
committed by Aurora
parent 2f9ecc8792
commit 1a9302bd80
2 changed files with 14 additions and 4 deletions

View File

@@ -162,6 +162,12 @@ public final class ReflectionUtils {
return clazz;
}
@Nullable
@SuppressWarnings("unchecked")
public static <T> Class<T> getCastedClassOrFallback(String className, String fallbackClassName) {
return (Class<T>) getClassOrFallback(className, fallbackClassName);
}
@Nullable
public static <T> Constructor<T> getConstructor(Class<T> clazz, boolean declared, Class<?>... parameters) {
try {

View File

@@ -143,10 +143,14 @@ public class ClassNames {
);
// WhitelistUtils
Class<?> craftServerClass = ReflectionUtils.getClass(
"org.bukkit.craftbukkit.CraftServer");
Class<OfflinePlayer> craftOfflinePlayerClass = ReflectionUtils.getCastedClass(
"org.bukkit.craftbukkit.CraftOfflinePlayer");
Class<?> craftServerClass = getClassOrFallback(
"org.bukkit.craftbukkit.CraftServer",
"org.bukkit.craftbukkit." + version + "CraftServer"
);
Class<OfflinePlayer> craftOfflinePlayerClass = ReflectionUtils.getCastedClassOrFallback(
"org.bukkit.craftbukkit.CraftOfflinePlayer",
"org.bukkit.craftbukkit." + version + "CraftOfflinePlayer"
);
CRAFT_OFFLINE_PLAYER_CONSTRUCTOR = ReflectionUtils.getConstructor(
craftOfflinePlayerClass, true, craftServerClass, GameProfile.class);