diff --git a/src/main/java/me/sashegdev/blackknife/BlackKnifeListener.java b/src/main/java/me/sashegdev/blackknife/BlackKnifeListener.java index f3b9c18..b1883d4 100644 --- a/src/main/java/me/sashegdev/blackknife/BlackKnifeListener.java +++ b/src/main/java/me/sashegdev/blackknife/BlackKnifeListener.java @@ -356,6 +356,7 @@ public class BlackKnifeListener implements Listener { d.setViewRange(64); }); EntityTracker.mark(disp); + EntityTracker.smooth(disp); Vector vel = new Vector(0, -0.35 - Math.random() * 0.1, 0); vel.add(new Vector((Math.random() - 0.5) * 0.08, 0, (Math.random() - 0.5) * 0.08)); new BukkitRunnable() { @@ -381,6 +382,7 @@ public class BlackKnifeListener implements Listener { d.setViewRange(64); }); EntityTracker.mark(shard); + EntityTracker.smooth(shard); new BukkitRunnable() { @Override public void run() { if (!shard.isValid()) { cancel(); return; } diff --git a/src/main/java/me/sashegdev/blackknife/DiamondAttack.java b/src/main/java/me/sashegdev/blackknife/DiamondAttack.java index f0222a2..b411e09 100644 --- a/src/main/java/me/sashegdev/blackknife/DiamondAttack.java +++ b/src/main/java/me/sashegdev/blackknife/DiamondAttack.java @@ -26,6 +26,7 @@ public class DiamondAttack { d.setViewRange(64); }); EntityTracker.mark(crystal); + EntityTracker.smooth(crystal); p.getWorld().playSound(spawn, Sound.BLOCK_AMETHYST_BLOCK_PLACE, 1f, 0.9f); p.getWorld().playSound(spawn, Sound.BLOCK_AMETHYST_BLOCK_CHIME, 1f, 1.5f); Vector vel = dir.clone().multiply(1.5); @@ -53,6 +54,7 @@ public class DiamondAttack { s.setViewRange(64); }); EntityTracker.mark(shard); + EntityTracker.smooth(shard); Vector sv = d.clone().multiply(0.4); new BukkitRunnable() { @Override public void run() { @@ -125,6 +127,7 @@ public class DiamondAttack { s.setViewRange(64); }); EntityTracker.mark(shard); + EntityTracker.smooth(shard); Vector sv = d.clone().multiply(0.4); new BukkitRunnable() { @Override public void run() { diff --git a/src/main/java/me/sashegdev/blackknife/DiamondTripleAttack.java b/src/main/java/me/sashegdev/blackknife/DiamondTripleAttack.java index 602531d..989a1eb 100644 --- a/src/main/java/me/sashegdev/blackknife/DiamondTripleAttack.java +++ b/src/main/java/me/sashegdev/blackknife/DiamondTripleAttack.java @@ -48,6 +48,7 @@ public class DiamondTripleAttack { d.setTransformation(new org.bukkit.util.Transformation(new org.joml.Vector3f(-0.45f, -0.45f, -0.45f), new org.joml.AxisAngle4f(), new org.joml.Vector3f(0.9f, 0.9f, 0.9f), new org.joml.AxisAngle4f())); }); EntityTracker.mark(shard); + EntityTracker.smooth(shard); BlackKnifePlugin plugin = BlackKnifePlugin.getPlugin(BlackKnifePlugin.class); Vector initDir = target.clone().subtract(spawn).toVector().normalize().multiply(1.4); new BukkitRunnable() { diff --git a/src/main/java/me/sashegdev/blackknife/EntityTracker.java b/src/main/java/me/sashegdev/blackknife/EntityTracker.java index 9880090..48af02f 100644 --- a/src/main/java/me/sashegdev/blackknife/EntityTracker.java +++ b/src/main/java/me/sashegdev/blackknife/EntityTracker.java @@ -18,6 +18,10 @@ public class EntityTracker { tracked.remove(e.getUniqueId()); } + public static void smooth(Display e) { + try { e.setTeleportDuration(1); } catch (Exception ignored) {} + } + public static int cleanup(BlackKnifePlugin plugin) { int count = 0; for (var world : plugin.getServer().getWorlds()) { diff --git a/src/main/java/me/sashegdev/blackknife/GrenadeAttack.java b/src/main/java/me/sashegdev/blackknife/GrenadeAttack.java index e5db46e..ef0d125 100644 --- a/src/main/java/me/sashegdev/blackknife/GrenadeAttack.java +++ b/src/main/java/me/sashegdev/blackknife/GrenadeAttack.java @@ -55,6 +55,7 @@ public class GrenadeAttack { new org.joml.AxisAngle4f())); }); EntityTracker.mark(nade); + EntityTracker.smooth(nade); p.getWorld().playSound(spawn, Sound.ENTITY_SNOWBALL_THROW, 1f, 0.7f); BlackKnifePlugin plugin = BlackKnifePlugin.getPlugin(BlackKnifePlugin.class); diff --git a/src/main/java/me/sashegdev/blackknife/LungeAttack.java b/src/main/java/me/sashegdev/blackknife/LungeAttack.java index e2fbd57..af0b427 100644 --- a/src/main/java/me/sashegdev/blackknife/LungeAttack.java +++ b/src/main/java/me/sashegdev/blackknife/LungeAttack.java @@ -40,6 +40,7 @@ public class LungeAttack { d.setViewRange(64); }); EntityTracker.mark(catalyst); + EntityTracker.smooth(catalyst); p.getWorld().playSound(start, Sound.BLOCK_SCULK_CATALYST_BLOOM, 1f, 0.7f); double catSpeed = 3.0; @@ -154,6 +155,7 @@ public class LungeAttack { new org.joml.AxisAngle4f())); }); EntityTracker.mark(sword); + EntityTracker.smooth(sword); new BukkitRunnable() { long hold = 5; boolean launched = false; @@ -222,6 +224,7 @@ public class LungeAttack { new org.joml.AxisAngle4f())); }); EntityTracker.mark(sword); + EntityTracker.smooth(sword); p.getWorld().playSound(gazePoint, Sound.ENTITY_PLAYER_ATTACK_SWEEP, 1f, 0.5f); p.getWorld().playSound(gazePoint, Sound.BLOCK_ANVIL_LAND, 0.6f, 1.4f); Vector vel = new Vector(0, -1.2, 0); @@ -370,6 +373,7 @@ public class LungeAttack { new org.joml.AxisAngle4f())); }); EntityTracker.mark(sword); + EntityTracker.smooth(sword); Vector vel = new Vector(0, -fallSpeed, 0); p.getWorld().playSound(spawn, Sound.ENTITY_PLAYER_ATTACK_SWEEP, 0.6f, 0.7f); new BukkitRunnable() { @@ -463,6 +467,7 @@ public class LungeAttack { new org.joml.AxisAngle4f())); }); EntityTracker.mark(sword); + EntityTracker.smooth(sword); spawn.getWorld().playSound(spawn, Sound.ENTITY_PLAYER_ATTACK_SWEEP, 0.8f, 0.5f); new BukkitRunnable() { diff --git a/src/main/java/me/sashegdev/blackknife/PhantomBarrageAttack.java b/src/main/java/me/sashegdev/blackknife/PhantomBarrageAttack.java index 06b836c..9706348 100644 --- a/src/main/java/me/sashegdev/blackknife/PhantomBarrageAttack.java +++ b/src/main/java/me/sashegdev/blackknife/PhantomBarrageAttack.java @@ -34,6 +34,7 @@ public class PhantomBarrageAttack { d.setTransformation(new org.bukkit.util.Transformation(new org.joml.Vector3f(-0.35f,-0.35f,-0.35f),new org.joml.AxisAngle4f(),new org.joml.Vector3f(0.7f,0.7f,0.7f),new org.joml.AxisAngle4f())); }); EntityTracker.mark(orb); + EntityTracker.smooth(orb); new BukkitRunnable() { int ticks = 0; Location cur = spawn.clone(); diff --git a/src/main/java/me/sashegdev/blackknife/SwoonHandler.java b/src/main/java/me/sashegdev/blackknife/SwoonHandler.java index 6bbd6fd..83541fa 100644 --- a/src/main/java/me/sashegdev/blackknife/SwoonHandler.java +++ b/src/main/java/me/sashegdev/blackknife/SwoonHandler.java @@ -169,6 +169,7 @@ public class SwoonHandler implements Listener { d.getPersistentDataContainer().set(SWOONED, PersistentDataType.BYTE, (byte) 1); }); EntityTracker.mark(td); + EntityTracker.smooth(td); displays.put(tp.getUniqueId(), td); }