|
25 | 25 | import ch.njol.skript.util.visual.VisualEffect;
|
26 | 26 | import ch.njol.skript.util.visual.VisualEffects;
|
27 | 27 | import ch.njol.yggdrasil.Fields;
|
28 |
| -import org.skriptlang.skript.lang.util.SkriptQueue; |
29 | 28 | import org.bukkit.Material;
|
30 | 29 | import org.bukkit.enchantments.Enchantment;
|
31 | 30 | import org.bukkit.inventory.ItemStack;
|
32 | 31 | import org.jetbrains.annotations.Nullable;
|
33 | 32 | import org.skriptlang.skript.lang.script.Script;
|
| 33 | +import org.skriptlang.skript.lang.util.SkriptQueue; |
34 | 34 | import org.skriptlang.skript.util.Executable;
|
35 | 35 |
|
36 | 36 | import java.io.File;
|
| 37 | +import java.io.NotSerializableException; |
37 | 38 | import java.io.StreamCorruptedException;
|
38 | 39 | import java.nio.file.Path;
|
39 | 40 | import java.util.Arrays;
|
40 | 41 | import java.util.Iterator;
|
| 42 | +import java.util.List; |
41 | 43 | import java.util.Locale;
|
42 | 44 | import java.util.regex.Pattern;
|
43 | 45 |
|
@@ -731,7 +733,51 @@ public void change(SkriptQueue[] what, Object @Nullable [] delta, ChangeMode mod
|
731 | 733 | }
|
732 | 734 | }
|
733 | 735 | })
|
734 |
| - .serializer(new YggdrasilSerializer<>()) |
| 736 | + .parser(new Parser<SkriptQueue>() { |
| 737 | + |
| 738 | + @Override |
| 739 | + public boolean canParse(ParseContext context) { |
| 740 | + return false; |
| 741 | + } |
| 742 | + |
| 743 | + @Override |
| 744 | + public String toString(SkriptQueue queue, int flags) { |
| 745 | + return Classes.toString(queue.toArray(), flags, true); |
| 746 | + } |
| 747 | + |
| 748 | + @Override |
| 749 | + public String toVariableNameString(SkriptQueue queue) { |
| 750 | + return this.toString(queue, 0); |
| 751 | + } |
| 752 | + |
| 753 | + }) |
| 754 | + .serializer(new Serializer<SkriptQueue>() { |
| 755 | + @Override |
| 756 | + public Fields serialize(SkriptQueue queue) throws NotSerializableException { |
| 757 | + Fields fields = new Fields(); |
| 758 | + fields.putObject("contents", queue.toArray()); |
| 759 | + return fields; |
| 760 | + } |
| 761 | + |
| 762 | + @Override |
| 763 | + public void deserialize(SkriptQueue queue, Fields fields) |
| 764 | + throws StreamCorruptedException, NotSerializableException { |
| 765 | + Object[] contents = fields.getObject("contents", Object[].class); |
| 766 | + queue.clear(); |
| 767 | + if (contents != null) |
| 768 | + queue.addAll(List.of(contents)); |
| 769 | + } |
| 770 | + |
| 771 | + @Override |
| 772 | + public boolean mustSyncDeserialization() { |
| 773 | + return false; |
| 774 | + } |
| 775 | + |
| 776 | + @Override |
| 777 | + protected boolean canBeInstantiated() { |
| 778 | + return true; |
| 779 | + } |
| 780 | + }) |
735 | 781 | );
|
736 | 782 |
|
737 | 783 |
|
|
0 commit comments