尝试修复removePassenger的问题

This commit is contained in:
Light_Quanta 2025-03-05 23:58:01 +08:00
parent 84e72e2cfd
commit dbd85ae238
No known key found for this signature in database
GPG key ID: 11A39A1B8C890959
2 changed files with 18 additions and 11 deletions

View file

@ -118,6 +118,22 @@ public abstract class VehicleEntity extends Entity {
this.gameEvent(GameEvent.ENTITY_MOUNT, pPassenger); this.gameEvent(GameEvent.ENTITY_MOUNT, pPassenger);
} }
@Override
protected void removePassenger(@NotNull Entity pPassenger) {
if (pPassenger.getVehicle() == this) {
throw new IllegalStateException("Use x.stopRiding(y), not y.removePassenger(x)");
}
var index = getSeatIndex(pPassenger);
if (index == -1) return;
orderedPassengers.set(index, null);
this.passengers = ImmutableList.copyOf(orderedPassengers.stream().filter(Objects::nonNull).toList());
pPassenger.boardingCooldown = 60;
this.gameEvent(GameEvent.ENTITY_DISMOUNT, pPassenger);
}
@Nullable @Nullable
@Override @Override
public LivingEntity getControllingPassenger() { public LivingEntity getControllingPassenger() {
@ -132,16 +148,6 @@ public abstract class VehicleEntity extends Entity {
return orderedPassengers.get(0); return orderedPassengers.get(0);
} }
@Override
protected void removePassenger(@NotNull Entity pPassenger) {
super.removePassenger(pPassenger);
var index = orderedPassengers.indexOf(pPassenger);
if (index != -1) {
orderedPassengers.set(index, null);
}
}
/** /**
* 获取第index个乘客 * 获取第index个乘客
* *

View file

@ -5,3 +5,4 @@ public net.minecraft.client.multiplayer.ClientLevel m_142646_()Lnet/minecraft/wo
public net.minecraft.client.renderer.culling.Frustum f_252406_ # matrix public net.minecraft.client.renderer.culling.Frustum f_252406_ # matrix
public net.minecraft.client.player.LocalPlayer f_108611_ # handsBusy public net.minecraft.client.player.LocalPlayer f_108611_ # handsBusy
public net.minecraft.world.entity.Entity f_19823_ # passengers public net.minecraft.world.entity.Entity f_19823_ # passengers
public net.minecraft.world.entity.Entity f_19851_ # boardingCooldown