Compare commits

..

No commits in common. "63cab14792a8dccb8df275aaf1145d6af1ed7c88" and "c307d065d10028c1d231fbcdcd7627eef47c22b9" have entirely different histories.

5 changed files with 16 additions and 65 deletions

View File

@ -1,10 +1,7 @@
package com.io.yutian.aulib.serialize;
import com.io.yutian.aulib.exception.SerializeException;
import com.io.yutian.aulib.serialize.serializers.ItemStackSerializer;
import com.io.yutian.aulib.serialize.serializers.UUIDSerializer;
import com.io.yutian.aulib.util.ReflectionUtil;
import org.bukkit.inventory.ItemStack;
import org.json.JSONArray;
import org.json.JSONObject;
import sun.misc.Unsafe;
@ -19,7 +16,7 @@ public class SerializeHelper {
private static Map<Class<?>, Serializer> serializers = new HashMap<>();
public static <T, V> void registerSerializer(Class<T> clazz, Serializer<T> serializer) {
public static <T, V> void registerSerializer(Class<T> clazz, Serializer<T, V> serializer) {
serializers.put(clazz, serializer);
}
@ -180,8 +177,17 @@ public class SerializeHelper {
WRAPPER_TO_PRIMITIVE.put(Float.class, float.class);
WRAPPER_TO_PRIMITIVE.put(Double.class, double.class);
registerSerializer(UUID.class, new UUIDSerializer());
registerSerializer(ItemStack.class, new ItemStackSerializer());
registerSerializer(UUID.class, new Serializer<>() {
@Override
public Object serialize(UUID value) {
return value.toString();
}
@Override
public UUID deserialize(Object value) {
return UUID.fromString((String) value);
}
});
}
}

View File

@ -1,9 +1,9 @@
package com.io.yutian.aulib.serialize;
public interface Serializer<T> {
public interface Serializer<K, V> {
Object serialize(T value);
V serialize(K value);
T deserialize(Object value);
K deserialize(V value);
}

View File

@ -1,37 +0,0 @@
package com.io.yutian.aulib.serialize.serializers;
import com.io.yutian.aulib.serialize.Serializer;
import com.mojang.brigadier.exceptions.CommandSyntaxException;
import net.minecraft.nbt.NBTTagCompound;
import org.bukkit.craftbukkit.v1_18_R2.inventory.CraftItemStack;
import org.bukkit.inventory.ItemStack;
import org.json.JSONObject;
public class ItemStackSerializer implements Serializer<ItemStack> {
@Override
public Object serialize(ItemStack value) {
JSONObject jsonObject = new JSONObject();
net.minecraft.world.item.ItemStack nmsItemStack = CraftItemStack.asNMSCopy(value);
jsonObject.put("Type", nmsItemStack.c().k().g().a());
jsonObject.put("Count", nmsItemStack.J());
NBTTagCompound nbtTagCompound = nmsItemStack.u();
jsonObject.put("Tag", nbtTagCompound.toString());
return null;
}
@Override
public ItemStack deserialize(Object value) {
JSONObject jsonObject = (JSONObject) value;
String arg = jsonObject.toString();
NBTTagCompound nbtTagCompound;
try {
nbtTagCompound = net.minecraft.nbt.MojangsonParser.a(arg);
} catch (CommandSyntaxException e) {
e.printStackTrace();
return null;
}
return CraftItemStack.asBukkitCopy(net.minecraft.world.item.ItemStack.a(nbtTagCompound));
}
}

View File

@ -1,17 +0,0 @@
package com.io.yutian.aulib.serialize.serializers;
import com.io.yutian.aulib.serialize.Serializer;
import java.util.UUID;
public class UUIDSerializer implements Serializer<UUID> {
@Override
public Object serialize(UUID value) {
return value.toString();
}
@Override
public UUID deserialize(Object value) {
return UUID.fromString((String) value);
}
}

View File

@ -1,5 +1,4 @@
name: AuLib
main: com.io.yutian.aulib.AuLib
version: 1.5.1
api-version: 1.18
version: 1.4.1
author: SuperYuTian