Still trying to undestand where is the problem

This commit is contained in:
Marc Baloup 2022-06-23 23:54:52 +02:00
parent 68b6b0d85c
commit e45ac45ac6
Signed by: marcbal
GPG Key ID: BBC0FE3ABC30B893
3 changed files with 14 additions and 3 deletions

View File

@ -40,12 +40,14 @@ public class ThrowableUtil {
* Wraps a {@link SupplierException} into a try catch. * Wraps a {@link SupplierException} into a try catch.
* @param supp the {@link SupplierException} to run and get the value from. * @param supp the {@link SupplierException} to run and get the value from.
* @return the value returned by the provided supplier. * @return the value returned by the provided supplier.
* @throws RuntimeException if the provided {@link SupplierException} throws an exception. * @throws RuntimeException if the provided {@link SupplierException} throws a checked exception.
*/ */
public static <T> T wrapEx(SupplierException<T> supp) { public static <T> T wrapEx(SupplierException<T> supp) {
try { try {
return supp.get(); return supp.get();
} catch (Exception e) { } catch (Exception e) {
if (e instanceof RuntimeException re)
throw re;
throw new RuntimeException(e); throw new RuntimeException(e);
} }
} }
@ -63,12 +65,14 @@ public class ThrowableUtil {
/** /**
* Wraps a {@link RunnableException} into a try catch. * Wraps a {@link RunnableException} into a try catch.
* @param run the {@link RunnableException} to run. * @param run the {@link RunnableException} to run.
* @throws RuntimeException if the provided {@link RunnableException} throws an exception. * @throws RuntimeException if the provided {@link RunnableException} throws a checked exception.
*/ */
public static void wrapEx(RunnableException run) { public static void wrapEx(RunnableException run) {
try { try {
run.run(); run.run();
} catch (Exception e) { } catch (Exception e) {
if (e instanceof RuntimeException re)
throw re;
throw new RuntimeException(e); throw new RuntimeException(e);
} }
} }

View File

@ -51,6 +51,8 @@ public class NMSReflect {
isInit = true; isInit = true;
} }
Log.info("[NMSReflect] Initializing NMS obfuscation mapping...");
try { try {
ReflectClass<?> obfHelperClass; ReflectClass<?> obfHelperClass;
try { try {
@ -115,6 +117,8 @@ public class NMSReflect {
if (exIfUnableToGetInstanceClass != null) if (exIfUnableToGetInstanceClass != null)
throw exIfUnableToGetInstanceClass; throw exIfUnableToGetInstanceClass;
Log.info("[NMSReflect] Obfuscation mapping loaded for " + mappings.size() + " classes.");
} catch (Throwable t) { } catch (Throwable t) {
Log.severe("[NMSReflect] The plugin will not be able to access NMS stuff because the obfuscation mapping couldn't be loaded.", t); Log.severe("[NMSReflect] The plugin will not be able to access NMS stuff because the obfuscation mapping couldn't be loaded.", t);
CLASSES_BY_MOJ.clear(); CLASSES_BY_MOJ.clear();

View File

@ -424,7 +424,7 @@ public class ReflectRegistry {
public static final ReflectField<?> chunks = wrapEx(() -> REFLECT.field("chunks")); public static final ReflectField<?> chunks = wrapEx(() -> REFLECT.field("chunks"));
public static final class Chunks { public static final class Chunks {
public static final ReflectClass<?> REFLECT = wrapEx(() -> Reflect.ofClass("io.papermc.paper.configuration.WorldConfiguration.Chunks")); public static final ReflectClass<?> REFLECT = wrapEx(() -> Reflect.ofClass("io.papermc.paper.configuration.WorldConfiguration$Chunks"));
public static final ReflectField<?> autoSavePeriod = wrapEx(() -> REFLECT.field("autoSaveInterval")); public static final ReflectField<?> autoSavePeriod = wrapEx(() -> REFLECT.field("autoSaveInterval"));
} }
} }
@ -492,6 +492,9 @@ public class ReflectRegistry {
f.get(null); f.get(null);
} }
} catch (Throwable t) { } catch (Throwable t) {
if (t instanceof ExceptionInInitializerError eiie && eiie.getCause() != null) {
t = eiie.getCause();
}
Log.severe("Error while initilizing a ReflectRegistry entry at " + cl.getName(), t); Log.severe("Error while initilizing a ReflectRegistry entry at " + cl.getName(), t);
} }
for (Class<?> declaredClass : cl.getDeclaredClasses()) { for (Class<?> declaredClass : cl.getDeclaredClasses()) {