Fix Reflection

master
sky 2019-12-21 20:35:35 +08:00
parent 5908428403
commit ea9a782975
4 changed files with 29 additions and 29 deletions

View File

@ -31,6 +31,7 @@ public class LocalPlayer {
files.forEach((name, file) -> { files.forEach((name, file) -> {
try { try {
file.save(toFile(name)); file.save(toFile(name));
} catch (NullPointerException ignored) {
} catch (Throwable t) { } catch (Throwable t) {
t.printStackTrace(); t.printStackTrace();
} }
@ -43,6 +44,7 @@ public class LocalPlayer {
if (toPlayer(name) == null) { if (toPlayer(name) == null) {
try { try {
files.remove(name).save(toFile(name)); files.remove(name).save(toFile(name));
} catch (NullPointerException ignored) {
} catch (Throwable t) { } catch (Throwable t) {
t.printStackTrace(); t.printStackTrace();
} }

View File

@ -63,50 +63,50 @@ public class SimpleReflection {
} }
public static void setFieldValue(Class<?> nmsClass, Object instance, String fieldName, Object value) { public static void setFieldValue(Class<?> nmsClass, Object instance, String fieldName, Object value) {
Map<String, Field> fields = fieldCached.get(nmsClass.getName());
if (fields == null) {
throw new RuntimeException("Not Found Cache.");
}
Field field = fields.get(fieldName);
if (value == null) {
throw new RuntimeException("Not Found Field.");
}
try { try {
Map<String, Field> fields = fieldCached.get(nmsClass.getName());
if (fields == null) {
throw new RuntimeException("Not Found Cache.");
}
Field field = fields.get(fieldName);
if (value == null) {
throw new RuntimeException("Not Found Field.");
}
field.set(instance, value); field.set(instance, value);
} catch (Exception e) { } catch (IllegalAccessException e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
public static Object getFieldValue(Class<?> nmsClass, Object instance, String fieldName) { public static Object getFieldValue(Class<?> nmsClass, Object instance, String fieldName) {
Map<String, Field> fields = fieldCached.get(nmsClass.getName());
if (fields == null) {
throw new RuntimeException("Not Found Cache.");
}
Field field = fields.get(fieldName);
if (field == null) {
throw new RuntimeException("Not Found Field.");
}
try { try {
Map<String, Field> fields = fieldCached.get(nmsClass.getName());
if (fields == null) {
throw new RuntimeException("Not Found Cache.");
}
Field field = fields.get(fieldName);
if (field == null) {
throw new RuntimeException("Not Found Field.");
}
return field.get(instance); return field.get(instance);
} catch (Exception e) { } catch (IllegalAccessException e) {
e.printStackTrace(); e.printStackTrace();
} }
return null; return null;
} }
public static <T> T getFieldValue(Class<?> nmsClass, Object instance, String fieldName, T def) { public static <T> T getFieldValue(Class<?> nmsClass, Object instance, String fieldName, T def) {
Map<String, Field> fields = fieldCached.get(nmsClass.getName());
if (fields == null) {
throw new RuntimeException("Not Found Cache.");
}
Field field = fields.get(fieldName);
if (field == null) {
throw new RuntimeException("Not Found Field.");
}
try { try {
Map<String, Field> fields = fieldCached.get(nmsClass.getName());
if (fields == null) {
throw new RuntimeException("Not Found Cache.");
}
Field field = fields.get(fieldName);
if (field == null) {
throw new RuntimeException("Not Found Field.");
}
return (T) field.get(instance); return (T) field.get(instance);
} catch (Exception e) { } catch (IllegalAccessException e) {
e.printStackTrace(); e.printStackTrace();
} }
return def; return def;

View File

@ -15,5 +15,4 @@ object AsyncTask {
def apply(init: Long, period: Long)(task: => Any)(implicit plugin: Plugin): Int = { def apply(init: Long, period: Long)(task: => Any)(implicit plugin: Plugin): Int = {
ScalaTaskExecutor(task).runTaskTimerAsynchronously(plugin, init, period).getTaskId ScalaTaskExecutor(task).runTaskTimerAsynchronously(plugin, init, period).getTaskId
} }
} }

View File

@ -29,5 +29,4 @@ class Example extends JavaPlugin with Listener {
class a class a
assert(this == JavaPlugin.getProvidingPlugin(classOf[a])) assert(this == JavaPlugin.getProvidingPlugin(classOf[a]))
} }
} }