summaryrefslogtreecommitdiffstats
path: root/src/main
diff options
context:
space:
mode:
authormd_5 <git@md-5.net>2017-06-02 18:44:37 +1000
committermd_5 <git@md-5.net>2017-06-02 18:44:37 +1000
commit921ba53556066ee16cb212e564ee9403fb6a73ff (patch)
tree3352ee5d2c08eec4709b7169afc887352c69df4a /src/main
parent9496c2dad17a8fdee3f879fd74a6b4f9008b4b9d (diff)
downloadcraftbukkit-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')
-rw-r--r--src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java13
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;
}