From c050ec7f6b806581085e1b41259a26376a733dd7 Mon Sep 17 00:00:00 2001 From: IzzelAliz Date: Sat, 28 Nov 2020 00:16:43 +0800 Subject: [PATCH] Fix entity not teleporting in portal (#88) --- .../mixin/core/world/server/ServerWorldMixin.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/server/ServerWorldMixin.java b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/server/ServerWorldMixin.java index d5cf76b3..18ac1873 100644 --- a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/server/ServerWorldMixin.java +++ b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/server/ServerWorldMixin.java @@ -168,6 +168,16 @@ public abstract class ServerWorldMixin extends WorldMixin implements ServerWorld ((EntityBridge) entityIn).bridge$setValid(true); } + @Inject(method = "updateEntity", at = @At(value = "INVOKE", shift = At.Shift.AFTER, target = "Lnet/minecraft/entity/Entity;tick()V")) + private void arclight$tickPortal(Entity entityIn, CallbackInfo ci) { + ((EntityBridge) entityIn).bridge$postTick(); + } + + @Inject(method = "tickPassenger", at = @At(value = "INVOKE", shift = At.Shift.AFTER, target = "Lnet/minecraft/entity/Entity;updateRidden()V")) + private void arclight$tickPortalPassenger(Entity ridingEntity, Entity passengerEntity, CallbackInfo ci) { + ((EntityBridge) passengerEntity).bridge$postTick(); + } + @Inject(method = "removeEntityComplete", remap = false, at = @At("RETURN")) private void arclight$invalidEntity(Entity entityIn, boolean keepData, CallbackInfo ci) { ((EntityBridge) entityIn).bridge$setValid(false);