Fix bugs
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package io.izzel.taboolib.module.lite;
|
||||
|
||||
import com.google.common.collect.Maps;
|
||||
import com.google.common.collect.Sets;
|
||||
import io.izzel.taboolib.TabooLibAPI;
|
||||
import io.izzel.taboolib.module.locale.logger.TLogger;
|
||||
import io.izzel.taboolib.util.Ref;
|
||||
@@ -10,6 +11,7 @@ import java.lang.reflect.ParameterizedType;
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.Arrays;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* @Author 坏黑
|
||||
@@ -18,6 +20,7 @@ import java.util.Map;
|
||||
public class SimpleReflection {
|
||||
|
||||
private static Map<String, Map<String, Field>> fieldCached = Maps.newHashMap();
|
||||
private static Set<String> fieldLogger = Sets.newHashSet();
|
||||
|
||||
public static boolean isExists(Class<?> nmsClass) {
|
||||
return fieldCached.containsKey(nmsClass.getName());
|
||||
@@ -66,11 +69,15 @@ public class SimpleReflection {
|
||||
public static void setFieldValue(Class<?> nmsClass, Object instance, String fieldName, Object value) {
|
||||
Map<String, Field> fields = fieldCached.get(nmsClass.getName());
|
||||
if (fields == null) {
|
||||
TLogger.getGlobalLogger().error("Field Not Found: " + nmsClass.getName());
|
||||
if (fieldLogger.add(nmsClass.getName() + "$" + fieldName)) {
|
||||
TLogger.getGlobalLogger().error("Field Not Found: " + nmsClass.getName() + "$" + fieldName);
|
||||
}
|
||||
}
|
||||
Field field = fields.get(fieldName);
|
||||
if (value == null) {
|
||||
TLogger.getGlobalLogger().error("Field Not Found: " + nmsClass.getName());
|
||||
if (fieldLogger.add(nmsClass.getName() + "$" + fieldName)) {
|
||||
TLogger.getGlobalLogger().error("Field Not Found: " + nmsClass.getName() + "$" + fieldName);
|
||||
}
|
||||
}
|
||||
try {
|
||||
field.set(instance, value);
|
||||
@@ -82,11 +89,15 @@ public class SimpleReflection {
|
||||
public static Object getFieldValue(Class<?> nmsClass, Object instance, String fieldName) {
|
||||
Map<String, Field> fields = fieldCached.get(nmsClass.getName());
|
||||
if (fields == null) {
|
||||
TLogger.getGlobalLogger().error("Field Not Found: " + nmsClass.getName());
|
||||
if (fieldLogger.add(nmsClass.getName() + "$" + fieldName)) {
|
||||
TLogger.getGlobalLogger().error("Field Not Found: " + nmsClass.getName() + "$" + fieldName);
|
||||
}
|
||||
}
|
||||
Field field = fields.get(fieldName);
|
||||
if (field == null) {
|
||||
TLogger.getGlobalLogger().error("Field Not Found: " + nmsClass.getName());
|
||||
if (fieldLogger.add(nmsClass.getName() + "$" + fieldName)) {
|
||||
TLogger.getGlobalLogger().error("Field Not Found: " + nmsClass.getName() + "$" + fieldName);
|
||||
}
|
||||
}
|
||||
try {
|
||||
return field.get(instance);
|
||||
@@ -99,11 +110,15 @@ public class SimpleReflection {
|
||||
public static <T> T getFieldValue(Class<?> nmsClass, Object instance, String fieldName, T def) {
|
||||
Map<String, Field> fields = fieldCached.get(nmsClass.getName());
|
||||
if (fields == null) {
|
||||
TLogger.getGlobalLogger().error("Field Not Found: " + nmsClass.getName());
|
||||
if (fieldLogger.add(nmsClass.getName() + "$" + fieldName)) {
|
||||
TLogger.getGlobalLogger().error("Field Not Found: " + nmsClass.getName() + "$" + fieldName);
|
||||
}
|
||||
}
|
||||
Field field = fields.get(fieldName);
|
||||
if (field == null) {
|
||||
TLogger.getGlobalLogger().error("Field Not Found: " + nmsClass.getName());
|
||||
if (fieldLogger.add(nmsClass.getName() + "$" + fieldName)) {
|
||||
TLogger.getGlobalLogger().error("Field Not Found: " + nmsClass.getName() + "$" + fieldName);
|
||||
}
|
||||
}
|
||||
try {
|
||||
return (T) field.get(instance);
|
||||
|
||||
Reference in New Issue
Block a user