From 361b2ed7c7c31298fde16ca30f5f3d9eaab42a13 Mon Sep 17 00:00:00 2001 From: Mohamad82Bz Date: Tue, 25 May 2021 11:43:52 +0430 Subject: [PATCH] EnginePlayer is now running async --- .../com/volmit/iris/object/IrisEffect.java | 23 ++++++++++++++++--- .../iris/scaffold/engine/EnginePlayer.java | 2 +- src/main/java/com/volmit/iris/util/J.java | 11 +++++++++ 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/volmit/iris/object/IrisEffect.java b/src/main/java/com/volmit/iris/object/IrisEffect.java index 3da85454c..e1b625912 100644 --- a/src/main/java/com/volmit/iris/object/IrisEffect.java +++ b/src/main/java/com/volmit/iris/object/IrisEffect.java @@ -228,7 +228,10 @@ public class IrisEffect if(sound != null) { Location part = p.getLocation().clone().add(RNG.r.i(-soundDistance, soundDistance), RNG.r.i(-soundDistance, soundDistance), RNG.r.i(-soundDistance, soundDistance)); - p.playSound(part, getSound(), (float) volume, (float) RNG.r.d(minPitch, maxPitch)); + + J.sr(() -> { + p.playSound(part, getSound(), (float) volume, (float) RNG.r.d(minPitch, maxPitch)); + }); } if(particleEffect != null) @@ -239,12 +242,26 @@ public class IrisEffect part.add(RNG.r.d(), 0, RNG.r.d()); if(extra != 0) { - p.spawnParticle(particleEffect, part.getX(), part.getY() + RNG.r.i(particleOffset), part.getZ(), particleCount, randomAltX ? RNG.r.d(-particleAltX, particleAltX) : particleAltX, randomAltY ? RNG.r.d(-particleAltY, particleAltY) : particleAltY, randomAltZ ? RNG.r.d(-particleAltZ, particleAltZ) : particleAltZ, extra); + J.sr(() -> { + p.spawnParticle(particleEffect, part.getX(), part.getY() + RNG.r.i(particleOffset), + part.getZ(), + particleCount, + randomAltX ? RNG.r.d(-particleAltX, particleAltX) : particleAltX, + randomAltY ? RNG.r.d(-particleAltY, particleAltY) : particleAltY, + randomAltZ ? RNG.r.d(-particleAltZ, particleAltZ) : particleAltZ, + extra); + }); } else { - p.spawnParticle(particleEffect, part.getX(), part.getY() + RNG.r.i(particleOffset), part.getZ(), particleCount, randomAltX ? RNG.r.d(-particleAltX, particleAltX) : particleAltX, randomAltY ? RNG.r.d(-particleAltY, particleAltY) : particleAltY, randomAltZ ? RNG.r.d(-particleAltZ, particleAltZ) : particleAltZ); + J.sr(() -> { + p.spawnParticle(particleEffect, part.getX(), part.getY() + RNG.r.i(particleOffset), part.getZ(), + particleCount, + randomAltX ? RNG.r.d(-particleAltX, particleAltX) : particleAltX, + randomAltY ? RNG.r.d(-particleAltY, particleAltY) : particleAltY, + randomAltZ ? RNG.r.d(-particleAltZ, particleAltZ) : particleAltZ); + }); } } diff --git a/src/main/java/com/volmit/iris/scaffold/engine/EnginePlayer.java b/src/main/java/com/volmit/iris/scaffold/engine/EnginePlayer.java index 1dbad0e09..65c9d50e4 100644 --- a/src/main/java/com/volmit/iris/scaffold/engine/EnginePlayer.java +++ b/src/main/java/com/volmit/iris/scaffold/engine/EnginePlayer.java @@ -31,7 +31,7 @@ public class EnginePlayer { { sample(); - J.s(() -> { + J.a(() -> { if(region != null) { for(IrisEffect j : region.getEffects()) diff --git a/src/main/java/com/volmit/iris/util/J.java b/src/main/java/com/volmit/iris/util/J.java index 197041fbb..ee5b0e6f5 100644 --- a/src/main/java/com/volmit/iris/util/J.java +++ b/src/main/java/com/volmit/iris/util/J.java @@ -235,6 +235,17 @@ public class J Bukkit.getScheduler().scheduleSyncDelayedTask(Iris.instance, r); } + /** + * Run a sync task + * + * @param r + * the runnable + */ + public static void sr(Runnable r) + { + Bukkit.getScheduler().runTask(Iris.instance, r); + } + /** * Queue a sync task *