mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-27 11:27:35 +01:00
Clone mutables to prevent unexpected issues
There are lots of locations in the API where mutable types are not cloned, either on return or when passed as a parameter and assigned to a field, which can cause unexpected behaviors. Let this be a lesson to use immutable types for simple things Location, Vector, and others.
This commit is contained in:
parent
d19f69b3eb
commit
96f6033450
@ -102,7 +102,7 @@ public class BlockCanBuildEvent extends BlockEvent {
|
|||||||
*/
|
*/
|
||||||
@NotNull
|
@NotNull
|
||||||
public BlockData getBlockData() {
|
public BlockData getBlockData() {
|
||||||
return blockData;
|
return blockData.clone(); // Paper - clone because mutation isn't used
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -61,7 +61,7 @@ public class EntityChangeBlockEvent extends EntityEvent implements Cancellable {
|
|||||||
*/
|
*/
|
||||||
@NotNull
|
@NotNull
|
||||||
public BlockData getBlockData() {
|
public BlockData getBlockData() {
|
||||||
return to;
|
return to.clone(); // Paper - clone because mutation isn't used
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
|
@ -72,7 +72,7 @@ public class EntityExplodeEvent extends EntityEvent implements Cancellable {
|
|||||||
*/
|
*/
|
||||||
@NotNull
|
@NotNull
|
||||||
public Location getLocation() {
|
public Location getLocation() {
|
||||||
return location;
|
return location.clone(); // Paper - clone to avoid changes
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -35,7 +35,7 @@ public class EntityPortalEnterEvent extends EntityEvent implements org.bukkit.ev
|
|||||||
*/
|
*/
|
||||||
@NotNull
|
@NotNull
|
||||||
public Location getLocation() {
|
public Location getLocation() {
|
||||||
return location;
|
return location.clone(); // Paper - clone to avoid changes
|
||||||
}
|
}
|
||||||
|
|
||||||
// Paper start
|
// Paper start
|
||||||
|
@ -46,7 +46,7 @@ public class ItemDespawnEvent extends EntityEvent implements Cancellable {
|
|||||||
*/
|
*/
|
||||||
@NotNull
|
@NotNull
|
||||||
public Location getLocation() {
|
public Location getLocation() {
|
||||||
return location;
|
return location.clone(); // Paper - clone to avoid changes
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
|
@ -31,7 +31,7 @@ public class VehicleBlockCollisionEvent extends VehicleCollisionEvent {
|
|||||||
*/
|
*/
|
||||||
@NotNull
|
@NotNull
|
||||||
public org.bukkit.util.Vector getVelocity() {
|
public org.bukkit.util.Vector getVelocity() {
|
||||||
return velocity;
|
return velocity.clone();
|
||||||
}
|
}
|
||||||
// Paper end
|
// Paper end
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ public class VehicleMoveEvent extends VehicleEvent {
|
|||||||
*/
|
*/
|
||||||
@NotNull
|
@NotNull
|
||||||
public Location getFrom() {
|
public Location getFrom() {
|
||||||
return from;
|
return from.clone(); // Paper - clone to avoid changes
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -37,7 +37,7 @@ public class VehicleMoveEvent extends VehicleEvent {
|
|||||||
*/
|
*/
|
||||||
@NotNull
|
@NotNull
|
||||||
public Location getTo() {
|
public Location getTo() {
|
||||||
return to;
|
return to.clone(); // Paper - clone to avoid changes
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ public class GenericGameEvent extends WorldEvent implements Cancellable {
|
|||||||
*/
|
*/
|
||||||
@NotNull
|
@NotNull
|
||||||
public Location getLocation() {
|
public Location getLocation() {
|
||||||
return location;
|
return location.clone(); // Paper - clone to avoid changes
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -25,7 +25,7 @@ public class SpawnChangeEvent extends WorldEvent {
|
|||||||
*/
|
*/
|
||||||
@NotNull
|
@NotNull
|
||||||
public Location getPreviousLocation() {
|
public Location getPreviousLocation() {
|
||||||
return previousLocation;
|
return previousLocation.clone(); // Paper - clone to avoid changes
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
|
@ -39,7 +39,7 @@ public class StructureGrowEvent extends WorldEvent implements Cancellable {
|
|||||||
*/
|
*/
|
||||||
@NotNull
|
@NotNull
|
||||||
public Location getLocation() {
|
public Location getLocation() {
|
||||||
return location;
|
return location.clone(); // Paper - clone to avoid changes
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user