Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/main/java/ch/njol/skript/effects/Delay.java
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,6 @@ protected TriggerItem walk(Event event) {
long start = Skript.debug() ? System.nanoTime() : 0;
TriggerItem next = getNext();
if (next != null && Skript.getInstance().isEnabled()) { // See https://github.com/SkriptLang/Skript/issues/3702
addDelayedEvent(event);

Timespan duration = this.duration.getSingle(event);
if (duration == null)
Expand All @@ -78,6 +77,7 @@ protected TriggerItem walk(Event event) {
Object localVars = Variables.removeLocals(event);

Bukkit.getScheduler().scheduleSyncDelayedTask(Skript.getInstance(), () -> {
addDelayedEvent(event);
Skript.debug(getIndentation() + "... continuing after " + (System.nanoTime() - start) / 1_000_000_000. + "s");

// Re-set local variables
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/ch/njol/skript/effects/EffTeleport.java
Original file line number Diff line number Diff line change
Expand Up @@ -132,11 +132,11 @@ public boolean init(Expression<?>[] exprs, int matchedPattern, Kleenean isDelaye
}

final Location fixed = location;
Delay.addDelayedEvent(event);
Object localVars = Variables.removeLocals(event);

// This will either fetch the chunk instantly if on Spigot or already loaded or fetch it async if on Paper.
PaperLib.getChunkAtAsync(location).thenAccept(chunk -> {
Delay.addDelayedEvent(event);
// The following is now on the main thread
SkriptTeleportFlag[] teleportFlags = this.teleportFlags == null ? null : this.teleportFlags.getArray(event);
for (Entity entity : entityArray) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ protected TriggerItem walk(Event event) {
TriggerItem next = getNext();

if (next != null && Skript.getInstance().isEnabled()) { // See https://github.com/SkriptLang/Skript/issues/3702
Delay.addDelayedEvent(event);
Timespan duration = this.duration.getSingle(event);
if (duration == null)
return null;
Expand All @@ -32,6 +31,7 @@ protected TriggerItem walk(Event event) {
Object localVars = Variables.removeLocals(event);

Bukkit.getScheduler().scheduleSyncDelayedTask(Skript.getInstance(), () -> {
Delay.addDelayedEvent(event);
Skript.debug(getIndentation() + "... continuing after " + (System.nanoTime() - start) / 1_000_000_000. + "s");

// Re-set local variables
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/ch/njol/skript/util/AsyncEffect.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,14 @@ public abstract class AsyncEffect extends Effect {
@Nullable
protected TriggerItem walk(Event e) {
debug(e, true);

Delay.addDelayedEvent(e); // Mark this event as delayed

Object localVars = Variables.removeLocals(e); // Back up local variables

if (!Skript.getInstance().isEnabled()) // See https://github.com/SkriptLang/Skript/issues/3702
return null;

Bukkit.getScheduler().runTaskAsynchronously(Skript.getInstance(), () -> {
Delay.addDelayedEvent(e); // Mark this event as delayed
// Re-set local variables
if (localVars != null)
Variables.setLocalVariables(e, localVars);
Expand Down