9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-30 20:39:10 +00:00

Update BukkitReflectionUtils.java

This commit is contained in:
XiaoMoMi
2025-04-26 18:02:39 +08:00
parent b5308b77bd
commit 9182acbe79

View File

@@ -7,6 +7,7 @@ import org.bukkit.Bukkit;
import java.lang.reflect.Method;
import java.util.List;
import java.util.Objects;
import java.util.function.Function;
public final class BukkitReflectionUtils {
private static final String PREFIX_MC = "net.minecraft.";
@@ -70,22 +71,40 @@ public final class BukkitReflectionUtils {
}
public static Class<?> findReobfOrMojmapClass(String reobf, String mojmap) {
if (VersionHelper.isMojmap()) return ReflectionUtils.getClazz(mojmap);
else return ReflectionUtils.getClazz(reobf);
return findReobfOrMojmapClass(reobf, mojmap, BukkitReflectionUtils::assembleMCClass);
}
public static Class<?> findReobfOrMojmapClass(String reobf, String mojmap, Function<String, String> classDecorator) {
if (VersionHelper.isMojmap()) return ReflectionUtils.getClazz(classDecorator.apply(reobf));
else return ReflectionUtils.getClazz(classDecorator.apply(mojmap));
}
public static Class<?> findReobfOrMojmapClass(List<String> reobf, String mojmap) {
if (VersionHelper.isMojmap()) return ReflectionUtils.getClazz(mojmap);
else return ReflectionUtils.getClazz(reobf.toArray(new String[0]));
return findReobfOrMojmapClass(reobf, mojmap, BukkitReflectionUtils::assembleMCClass);
}
public static Class<?> findReobfOrMojmapClass(List<String> reobf, String mojmap, Function<String, String> classDecorator) {
if (VersionHelper.isMojmap()) return ReflectionUtils.getClazz(classDecorator.apply(mojmap));
else return ReflectionUtils.getClazz(reobf.stream().map(classDecorator).toList().toArray(new String[0]));
}
public static Class<?> findReobfOrMojmapClass(String reobf, List<String> mojmap) {
if (VersionHelper.isMojmap()) return ReflectionUtils.getClazz(mojmap.toArray(new String[0]));
else return ReflectionUtils.getClazz(reobf);
return findReobfOrMojmapClass(reobf, mojmap, BukkitReflectionUtils::assembleMCClass);
}
public static Class<?> findReobfOrMojmapClass(String reobf, List<String> mojmap, Function<String, String> classDecorator) {
if (VersionHelper.isMojmap()) return ReflectionUtils.getClazz(mojmap.stream().map(classDecorator).toList().toArray(new String[0]));
else return ReflectionUtils.getClazz(classDecorator.apply(reobf));
}
public static Class<?> findReobfOrMojmapClass(List<String> reobf, List<String> mojmap) {
if (VersionHelper.isMojmap()) return ReflectionUtils.getClazz(mojmap.toArray(new String[0]));
else return ReflectionUtils.getClazz(reobf.toArray(new String[0]));
return findReobfOrMojmapClass(reobf, mojmap, BukkitReflectionUtils::assembleMCClass);
}
public static Class<?> findReobfOrMojmapClass(List<String> reobf, List<String> mojmap, Function<String, String> classDecorator) {
String[] classes = VersionHelper.isMojmap()
? mojmap.stream().map(classDecorator).toList().toArray(new String[0])
: reobf.stream().map(classDecorator).toList().toArray(new String[0]);
return ReflectionUtils.getClazz(classes);
}
}