mirror of
https://github.com/NoCheatPlus/NoCheatPlus.git
synced 2024-06-26 06:14:42 +02:00
Fix NPE with legacy vehicle API. Use a stored list for null passenger.
This commit is contained in:
parent
1ac29ee052
commit
ba4001a0b5
|
@ -1,6 +1,8 @@
|
|||
package fr.neatmonster.nocheatplus.compat.bukkit;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.entity.Entity;
|
||||
|
@ -15,10 +17,19 @@ import fr.neatmonster.nocheatplus.components.entity.IEntityAccessVehicle;
|
|||
*/
|
||||
public class EntityAccessVehicleLegacy implements IEntityAccessVehicle {
|
||||
|
||||
private final List<Entity> nullPassenger;
|
||||
|
||||
public EntityAccessVehicleLegacy() {
|
||||
List<Entity> lst = new ArrayList<Entity>(1);
|
||||
lst.add(null);
|
||||
nullPassenger = Collections.unmodifiableList(lst);
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@Override
|
||||
public List<Entity> getEntityPassengers(final Entity entity) {
|
||||
return Arrays.asList(entity.getPassenger());
|
||||
final Entity passenger = entity.getPassenger();
|
||||
return passenger == null ? nullPassenger : Arrays.asList(passenger);
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
|
|
|
@ -75,7 +75,10 @@ public class PassengerUtil {
|
|||
List<Entity> passengers = handleVehicle.getHandle().getEntityPassengers(entity);
|
||||
while (!passengers.isEmpty()){
|
||||
entity = passengers.get(0); // The one in charge.
|
||||
if (entity instanceof Player){
|
||||
if (entity == null) {
|
||||
break;
|
||||
}
|
||||
else if (entity instanceof Player){
|
||||
return (Player) entity;
|
||||
}
|
||||
passengers = handleVehicle.getHandle().getEntityPassengers(entity);
|
||||
|
|
Loading…
Reference in New Issue
Block a user