Fix Reflection
This commit is contained in:
parent
5908428403
commit
ea9a782975
@ -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();
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -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]))
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user