diff options
author | md_5 <git@md-5.net> | 2017-06-02 18:44:37 +1000 |
---|---|---|
committer | md_5 <git@md-5.net> | 2017-06-02 18:44:37 +1000 |
commit | 921ba53556066ee16cb212e564ee9403fb6a73ff (patch) | |
tree | 3352ee5d2c08eec4709b7169afc887352c69df4a /src/main/java | |
parent | 9496c2dad17a8fdee3f879fd74a6b4f9008b4b9d (diff) | |
download | craftbukkit-921ba53556066ee16cb212e564ee9403fb6a73ff.tar craftbukkit-921ba53556066ee16cb212e564ee9403fb6a73ff.tar.gz craftbukkit-921ba53556066ee16cb212e564ee9403fb6a73ff.tar.lz craftbukkit-921ba53556066ee16cb212e564ee9403fb6a73ff.tar.xz craftbukkit-921ba53556066ee16cb212e564ee9403fb6a73ff.zip |
SPIGOT-3283: Don't allow plugin induced infinite velocity / position
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java index 2e81ea86..20270268 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -236,10 +236,12 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { return new Vector(entity.motX, entity.motY, entity.motZ); } - public void setVelocity(Vector vel) { - entity.motX = vel.getX(); - entity.motY = vel.getY(); - entity.motZ = vel.getZ(); + public void setVelocity(Vector velocity) { + Preconditions.checkArgument(velocity != null, "velocity"); + velocity.checkFinite(); + entity.motX = velocity.getX(); + entity.motY = velocity.getY(); + entity.motZ = velocity.getZ(); entity.velocityChanged = true; } @@ -269,6 +271,9 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { } public boolean teleport(Location location, TeleportCause cause) { + Preconditions.checkArgument(location != null, "location"); + location.checkFinite(); + if (entity.isVehicle() || entity.dead) { return false; } |