Error with EffPush
Closed this issue · 1 comments
TheDGOfficial commented
Describe the bug
If we try to push entities with a high power, it gives errors.
To Reproduce
Try to push entities with a high power.
Expected behavior
Expected no errors.
Screenshots
N/A
Version information:
- Minecraft Version: 1.8.8
- Skript Version: 2.2-Fixes-V12
Additional information
[WARNING] Excessive velocity set detected: tried to set velocity of entity #90 to (-0.27161136342574327,6.465722702417743,-7.9768513681972975).
[WARNING] java.lang.Exception: Stack trace
[WARNING] at java.lang.Thread.dumpStack(Thread.java:1336)
[WARNING] at org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity.setVelocity(CraftEntity.java:213)
[WARNING] at ch.njol.skript.effects.EffPush.execute(EffPush.java:83)
[WARNING] at ch.njol.skript.lang.Effect.run(Effect.java:55)
[WARNING] at ch.njol.skript.lang.TriggerItem.walk(TriggerItem.java:65)
[WARNING] at ch.njol.skript.lang.TriggerItem.walk(TriggerItem.java:93)
[WARNING] at ch.njol.skript.effects.Delay$1.run(Delay.java:94)
[WARNING] at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:59)
[WARNING] at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:349)
[WARNING] at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:785)
[WARNING] at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:378)
[WARNING] at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:715)
[WARNING] at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:618)
[WARNING] at java.lang.Thread.run(Thread.java:748)
Note: This may be a Bukkit problem caused by server version, or it probably a user error, trying to push entities with high values is expected to not work.
TheDGOfficial commented
After a short searching, i found it was a Paper problem. PaperSpigot gives these warnings with a check. It can be disabled from paper.yml by setting warnForExcessiveVelocity
to false
.
The code paper executes is the below, it dumps the thread stack. We can add these checks to Skript itself and warn the user (only if user uses Paper).
if ((PaperSpigotConfig.warnForExcessiveVelocity) && (
(vel.getX() > 4.0D) || (vel.getX() < -4.0D) || (vel.getY() > 4.0D) || (vel.getY() < -4.0D) || (vel.getZ() > 4.0D) || (vel.getZ() < -4.0D)))
{
getServer().getLogger().warning("Excessive velocity set detected: tried to set velocity of entity #" + getEntityId() + " to (" + vel.getX() + "," + vel.getY() + "," + vel.getZ() + ").");
Thread.dumpStack();
}