From dbd85ae23847f9c291e2f7b51fd580fdbbbd0493 Mon Sep 17 00:00:00 2001 From: Light_Quanta Date: Wed, 5 Mar 2025 23:58:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E4=BF=AE=E5=A4=8DremovePasse?= =?UTF-8?q?nger=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/vehicle/base/VehicleEntity.java | 26 ++++++++++++------- .../resources/META-INF/accesstransformer.cfg | 3 ++- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/VehicleEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/VehicleEntity.java index 8350890c4..ef4d55128 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/VehicleEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/VehicleEntity.java @@ -118,6 +118,22 @@ public abstract class VehicleEntity extends Entity { 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 @Override public LivingEntity getControllingPassenger() { @@ -132,16 +148,6 @@ public abstract class VehicleEntity extends Entity { 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个乘客 * diff --git a/src/main/resources/META-INF/accesstransformer.cfg b/src/main/resources/META-INF/accesstransformer.cfg index 8d7eb8314..c3c2e9ce4 100644 --- a/src/main/resources/META-INF/accesstransformer.cfg +++ b/src/main/resources/META-INF/accesstransformer.cfg @@ -4,4 +4,5 @@ public net.minecraft.server.level.DistanceManager$PlayerTicketTracker public net.minecraft.client.multiplayer.ClientLevel m_142646_()Lnet/minecraft/world/level/entity/LevelEntityGetter; # getEntities public net.minecraft.client.renderer.culling.Frustum f_252406_ # matrix public net.minecraft.client.player.LocalPlayer f_108611_ # handsBusy -public net.minecraft.world.entity.Entity f_19823_ # passengers \ No newline at end of file +public net.minecraft.world.entity.Entity f_19823_ # passengers +public net.minecraft.world.entity.Entity f_19851_ # boardingCooldown \ No newline at end of file