mirror of
https://github.com/NoCheatPlus/NoCheatPlus.git
synced 2024-09-27 14:13:11 +02:00
[BLEEDING] Try to update passive player passengers data in a useful way.
When the captain leaves the boat, the vehicle data of a passive player passenger may be set now, so it won't set them back to where they entered the vehicle. Likely other places still need adjusting.
This commit is contained in:
parent
f518371208
commit
1ac29ee052
@ -544,6 +544,11 @@ public class VehicleChecks extends CheckListener {
|
||||
|
||||
// Schedule a set back?
|
||||
if (newTo == null) {
|
||||
// Update vehicle data for passive player passengers.
|
||||
final List<Entity> passengers = passengerUtil.handleVehicle.getHandle().getEntityPassengers(vehicle);
|
||||
if (passengers.size() > 1) {
|
||||
updateVehicleData(player, data, vehicle, moveInfo, passengers);
|
||||
}
|
||||
// Increase time since set back.
|
||||
data.timeSinceSetBack ++;
|
||||
// Finally finish processing the current move and move it to past ones.
|
||||
@ -555,6 +560,22 @@ public class VehicleChecks extends CheckListener {
|
||||
useLoc1.setWorld(null);
|
||||
}
|
||||
|
||||
private void updateVehicleData(final Player player, final MovingData data, final Entity vehicle,
|
||||
final VehicleMoveInfo moveInfo, final List<Entity> passengers) {
|
||||
for (final Entity passenger : passengers) {
|
||||
if ((passenger instanceof Player) && !player.equals(passenger)) {
|
||||
final Player otherPlayer = (Player) passenger;
|
||||
final MovingData otherData = MovingData.getData(otherPlayer);
|
||||
otherData.resetVehiclePositions(moveInfo.to);
|
||||
// TODO: Reset all precisely to what there is or this or what not.
|
||||
otherData.vehicleSetBacks.resetAllLazily(data.vehicleSetBacks.getOldestValidEntry());
|
||||
otherData.wasInVehicle = true;
|
||||
// TODO: VehicleMoves: should adjust fully ?
|
||||
otherData.vehicleMoves.invalidate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Called if the default set back entry isn't valid.
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user