Update 5.21

This commit is contained in:
sky
2020-03-13 14:19:38 +08:00
parent 32ee9705ac
commit 6623ae5594
4 changed files with 36 additions and 15 deletions

View File

@@ -110,16 +110,32 @@ class THologramHandler implements Listener {
List item = THologramHandler.getPacketName().read("b", List.class);
for (Object element : item) {
SimpleReflection.checkAndSave(element.getClass());
Object a = SimpleReflection.getFieldValue(element.getClass(), element, "a");
Object c = SimpleReflection.getFieldValue(element.getClass(), element, "c");
try {
Object i = Ref.getUnsafe().allocateInstance(element.getClass());
SimpleReflection.setFieldValue(element.getClass(), i, "a", a);
SimpleReflection.setFieldValue(element.getClass(), i, "b", name);
SimpleReflection.setFieldValue(element.getClass(), i, "c", c);
copy.add(i);
} catch (InstantiationException e) {
e.printStackTrace();
if (Version.isAfter(Version.v1_9)) {
Object a = SimpleReflection.getFieldValue(element.getClass(), element, "a");
Object c = SimpleReflection.getFieldValue(element.getClass(), element, "c");
try {
Object i = Ref.getUnsafe().allocateInstance(element.getClass());
SimpleReflection.setFieldValue(element.getClass(), i, "a", a);
SimpleReflection.setFieldValue(element.getClass(), i, "b", name);
SimpleReflection.setFieldValue(element.getClass(), i, "c", c);
copy.add(i);
} catch (InstantiationException e) {
e.printStackTrace();
}
} else {
Object a = SimpleReflection.getFieldValue(element.getClass(), element, "a");
Object b = SimpleReflection.getFieldValue(element.getClass(), element, "b");
Object d = SimpleReflection.getFieldValue(element.getClass(), element, "d");
try {
Object i = Ref.getUnsafe().allocateInstance(element.getClass());
SimpleReflection.setFieldValue(element.getClass(), i, "a", a);
SimpleReflection.setFieldValue(element.getClass(), i, "b", b);
SimpleReflection.setFieldValue(element.getClass(), i, "c", name);
SimpleReflection.setFieldValue(element.getClass(), i, "d", d);
copy.add(i);
} catch (InstantiationException e) {
e.printStackTrace();
}
}
}
packet.write("b", copy);

View File

@@ -472,7 +472,7 @@ public class NMSImpl extends NMS {
} else {
Object createEntity = ((CraftWorld) location.getWorld()).createEntity(location, entity);
try {
e.accept((T) createEntity);
e.accept((T) ((net.minecraft.server.v1_13_R2.Entity) createEntity).getBukkitEntity());
} catch (Throwable t) {
t.printStackTrace();
}

View File

@@ -89,6 +89,10 @@ public class TSerializer {
}
public static String write(TSerializable serializable) {
return writeJson(serializable).toString();
}
public static JsonObject writeJson(TSerializable serializable) {
JsonObject jsonObject = new JsonObject();
JsonObject serializeObject = new JsonObject();
for (Field declaredField : serializable.getClass().getDeclaredFields()) {
@@ -147,7 +151,7 @@ public class TSerializer {
}
}
jsonObject.add("serializeObject", serializeObject);
return jsonObject.toString();
return jsonObject;
}
public static void readMap(Map map, String serializedString, TSerializerElementGeneral elementKey, TSerializerElementGeneral elementValue) {