Forgot 1.6.3.1 commit. Whoops!
Added compound serializer to 1.7.10 Fixed a bug that would cause ALL variables to be unused if a single compound variable was invalid
This commit is contained in:
parent
226d0dc931
commit
7140ed1cff
@ -1,6 +1,6 @@
|
|||||||
name: SkStuff
|
name: SkStuff
|
||||||
author: TheBukor
|
author: TheBukor
|
||||||
description: A Skript addon which adds extra functionalities such as NBT and extended WorldEdit support.
|
description: A Skript addon which adds extra functionalities such as NBT and extended WorldEdit support.
|
||||||
version: 1.6.3
|
version: 1.6.3.1
|
||||||
main: me.TheBukor.SkStuff.SkStuff
|
main: me.TheBukor.SkStuff.SkStuff
|
||||||
softdepend: [Skript, WorldEdit, VanishNoPacket]
|
softdepend: [Skript, WorldEdit, VanishNoPacket]
|
@ -316,7 +316,47 @@ public class NMS_v1_7_R4 implements NMSInterface {
|
|||||||
public String toVariableNameString(NBTTagCompound compound) {
|
public String toVariableNameString(NBTTagCompound compound) {
|
||||||
return compound.toString();
|
return compound.toString();
|
||||||
}
|
}
|
||||||
}));
|
}).serializer(new Serializer<NBTTagCompound>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Fields serialize(NBTTagCompound compound) throws NotSerializableException {
|
||||||
|
Fields f = new Fields();
|
||||||
|
f.putObject("asString", compound.toString());
|
||||||
|
return f;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deserialize(NBTTagCompound compound, Fields f) throws StreamCorruptedException, NotSerializableException {
|
||||||
|
assert false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean canBeInstantiated() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected NBTTagCompound deserialize(Fields fields) throws StreamCorruptedException, NotSerializableException {
|
||||||
|
String raw = fields.getObject("asString", String.class);
|
||||||
|
NBTTagCompound compound = parseRawNBT(raw);
|
||||||
|
if (compound == null) {
|
||||||
|
throw new StreamCorruptedException("Unable to parse NBT compound from a variable: " + raw);
|
||||||
|
}
|
||||||
|
return compound;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Nullable
|
||||||
|
public NBTTagCompound deserialize(String s) {
|
||||||
|
NBTTagCompound compound = parseRawNBT(s);
|
||||||
|
return compound;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean mustSyncDeserialization() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -397,6 +437,9 @@ public class NMS_v1_7_R4 implements NMSInterface {
|
|||||||
String s = fields.getObject("asString", String.class);
|
String s = fields.getObject("asString", String.class);
|
||||||
NBTTagCompound tempNBT = parseRawNBT("{SkStuffIsCool:" + s + "}");
|
NBTTagCompound tempNBT = parseRawNBT("{SkStuffIsCool:" + s + "}");
|
||||||
NBTTagList nbtList = (NBTTagList) tempNBT.get("SkStuffIsCool");
|
NBTTagList nbtList = (NBTTagList) tempNBT.get("SkStuffIsCool");
|
||||||
|
if (tempNBT == null || nbtList == null) {
|
||||||
|
throw new StreamCorruptedException("Unable to parse NBT list from a variable: " + s);
|
||||||
|
}
|
||||||
return nbtList;
|
return nbtList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -94,7 +94,7 @@ public class NMS_v1_8_R3 implements NMSInterface {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object getNBTTagValue(Object compound, String tag, byte typeId) {
|
public Object getNBTTagValue(Object compound, String tag, byte typeId) {
|
||||||
if (compound instanceof NBTTagCompound) {
|
if (compound instanceof NBTTagCompound) {
|
||||||
switch (typeId) {
|
switch (typeId) {
|
||||||
@ -351,8 +351,11 @@ public class NMS_v1_8_R3 implements NMSInterface {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected NBTTagCompound deserialize(Fields fields) throws StreamCorruptedException, NotSerializableException {
|
protected NBTTagCompound deserialize(Fields fields) throws StreamCorruptedException, NotSerializableException {
|
||||||
String s = fields.getObject("asString", String.class);
|
String raw = fields.getObject("asString", String.class);
|
||||||
NBTTagCompound compound = parseRawNBT(s);
|
NBTTagCompound compound = parseRawNBT(raw);
|
||||||
|
if (compound == null) {
|
||||||
|
throw new StreamCorruptedException("Unable to parse NBT from a variable: " + raw);
|
||||||
|
}
|
||||||
return compound;
|
return compound;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -448,6 +451,9 @@ public class NMS_v1_8_R3 implements NMSInterface {
|
|||||||
String s = fields.getObject("asString", String.class);
|
String s = fields.getObject("asString", String.class);
|
||||||
NBTTagCompound tempNBT = parseRawNBT("{SkStuffIsCool:" + s + "}");
|
NBTTagCompound tempNBT = parseRawNBT("{SkStuffIsCool:" + s + "}");
|
||||||
NBTTagList nbtList = (NBTTagList) tempNBT.get("SkStuffIsCool");
|
NBTTagList nbtList = (NBTTagList) tempNBT.get("SkStuffIsCool");
|
||||||
|
if (tempNBT == null || nbtList == null) {
|
||||||
|
throw new StreamCorruptedException("Unable to parse NBT list from a variable: " + s);
|
||||||
|
}
|
||||||
return nbtList;
|
return nbtList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -352,8 +352,11 @@ public class NMS_v1_9_R1 implements NMSInterface {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected NBTTagCompound deserialize(Fields fields) throws StreamCorruptedException, NotSerializableException {
|
protected NBTTagCompound deserialize(Fields fields) throws StreamCorruptedException, NotSerializableException {
|
||||||
String s = fields.getObject("asString", String.class);
|
String raw = fields.getObject("asString", String.class);
|
||||||
NBTTagCompound compound = parseRawNBT(s);
|
NBTTagCompound compound = parseRawNBT(raw);
|
||||||
|
if (compound == null) {
|
||||||
|
throw new StreamCorruptedException("Unable to parse NBT from a variable: " + raw);
|
||||||
|
}
|
||||||
return compound;
|
return compound;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -449,6 +452,9 @@ public class NMS_v1_9_R1 implements NMSInterface {
|
|||||||
String s = fields.getObject("asString", String.class);
|
String s = fields.getObject("asString", String.class);
|
||||||
NBTTagCompound tempNBT = parseRawNBT("{SkStuffIsCool:" + s + "}");
|
NBTTagCompound tempNBT = parseRawNBT("{SkStuffIsCool:" + s + "}");
|
||||||
NBTTagList nbtList = (NBTTagList) tempNBT.get("SkStuffIsCool");
|
NBTTagList nbtList = (NBTTagList) tempNBT.get("SkStuffIsCool");
|
||||||
|
if (tempNBT == null || nbtList == null) {
|
||||||
|
throw new StreamCorruptedException("Unable to parse NBT list from a variable: " + s);
|
||||||
|
}
|
||||||
return nbtList;
|
return nbtList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user