Skip to content

Commit

Permalink
Merge branch 'dev/patch' into fish-examples
Browse files Browse the repository at this point in the history
  • Loading branch information
cheeezburga authored Jan 25, 2025
2 parents d8dff3c + c1c127d commit a30af44
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 4 deletions.
50 changes: 48 additions & 2 deletions src/main/java/ch/njol/skript/classes/data/SkriptClasses.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,19 +25,21 @@
import ch.njol.skript.util.visual.VisualEffect;
import ch.njol.skript.util.visual.VisualEffects;
import ch.njol.yggdrasil.Fields;
import org.skriptlang.skript.lang.util.SkriptQueue;
import org.bukkit.Material;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.Nullable;
import org.skriptlang.skript.lang.script.Script;
import org.skriptlang.skript.lang.util.SkriptQueue;
import org.skriptlang.skript.util.Executable;

import java.io.File;
import java.io.NotSerializableException;
import java.io.StreamCorruptedException;
import java.nio.file.Path;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.regex.Pattern;

Expand Down Expand Up @@ -731,7 +733,51 @@ public void change(SkriptQueue[] what, Object @Nullable [] delta, ChangeMode mod
}
}
})
.serializer(new YggdrasilSerializer<>())
.parser(new Parser<SkriptQueue>() {

@Override
public boolean canParse(ParseContext context) {
return false;
}

@Override
public String toString(SkriptQueue queue, int flags) {
return Classes.toString(queue.toArray(), flags, true);
}

@Override
public String toVariableNameString(SkriptQueue queue) {
return this.toString(queue, 0);
}

})
.serializer(new Serializer<SkriptQueue>() {
@Override
public Fields serialize(SkriptQueue queue) throws NotSerializableException {
Fields fields = new Fields();
fields.putObject("contents", queue.toArray());
return fields;
}

@Override
public void deserialize(SkriptQueue queue, Fields fields)
throws StreamCorruptedException, NotSerializableException {
Object[] contents = fields.getObject("contents", Object[].class);
queue.clear();
if (contents != null)
queue.addAll(List.of(contents));
}

@Override
public boolean mustSyncDeserialization() {
return false;
}

@Override
protected boolean canBeInstantiated() {
return true;
}
})
);


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import ch.njol.skript.lang.util.common.AnyAmount;
import ch.njol.skript.util.Container;
import ch.njol.yggdrasil.YggdrasilSerializable;
import org.jetbrains.annotations.NotNull;

import java.util.*;
Expand All @@ -13,7 +12,7 @@
*/
@Container.ContainerType(Object.class)
public class SkriptQueue extends LinkedList<@NotNull Object>
implements Deque<Object>, Queue<Object>, YggdrasilSerializable, AnyAmount, Container<Object> {
implements Deque<Object>, Queue<Object>, AnyAmount, Container<Object> {

@Override
public boolean add(Object element) {
Expand Down

0 comments on commit a30af44

Please sign in to comment.