Skip to content

Commit e11e9df

Browse files
committed
Fix missed phase tracker changes in the Neo module
1 parent 1b07a5e commit e11e9df

File tree

4 files changed

+19
-6
lines changed

4 files changed

+19
-6
lines changed

neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/server/level/ServerPlayerMixin_Neo.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,10 @@
2424
*/
2525
package org.spongepowered.neoforge.mixin.core.server.level;
2626

27+
import net.minecraft.server.level.ServerLevel;
2728
import net.minecraft.server.level.ServerPlayer;
2829
import org.spongepowered.asm.mixin.Mixin;
30+
import org.spongepowered.asm.mixin.Shadow;
2931
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
3032
import org.spongepowered.common.event.tracking.PhaseContext;
3133
import org.spongepowered.common.event.tracking.PhaseTracker;
@@ -37,10 +39,14 @@
3739
@Mixin(ServerPlayer.class)
3840
public abstract class ServerPlayerMixin_Neo extends LivingEntityMixin_Neo {
3941

42+
// @formatter:off
43+
@Shadow public abstract ServerLevel shadow$serverLevel();
44+
// @formatter:on
45+
4046
// override from LivingEntityMixin_Neo
4147
@Override
4248
protected void neo$onElytraUse(final CallbackInfo ci) {
43-
final PhaseContext<?> context = PhaseTracker.SERVER.getPhaseContext();
49+
final PhaseContext<?> context = PhaseTracker.getWorldInstance(this.shadow$serverLevel()).getPhaseContext();
4450
final TransactionalCaptureSupplier transactor = context.getTransactor();
4551
final net.minecraft.server.level.ServerPlayer player = (net.minecraft.server.level.ServerPlayer) (Object) this;
4652
try (final EffectTransactor ignored = transactor.logPlayerInventoryChangeWithEffect(player, PlayerInventoryTransaction.EventCreator.STANDARD)) {

neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/core/server/network/ServerGamePacketListenerImplMixin_Neo.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public abstract class ServerGamePacketListenerImplMixin_Neo implements ServerGam
5454
private RecipeBookMenu.PostPlaceAction neo$onPlaceRecipe(
5555
final RecipeBookMenu recipeBookMenu, final boolean shift, final boolean isCreative, final RecipeHolder<?> recipe,
5656
final ServerLevel serverLevel, final net.minecraft.world.entity.player.Inventory inventory) {
57-
final PhaseContext<@NonNull ?> context = PhaseTracker.SERVER.getPhaseContext();
57+
final PhaseContext<@NonNull ?> context = PhaseTracker.getWorldInstance(this.player.serverLevel()).getPhaseContext();
5858
final TransactionalCaptureSupplier transactor = context.getTransactor();
5959
final var player = this.player;
6060

neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/inventory/event/server/level/ServerPlayerMixin_Inventory_Neo.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,15 @@
2525
package org.spongepowered.neoforge.mixin.inventory.event.server.level;
2626

2727
import net.minecraft.network.RegistryFriendlyByteBuf;
28+
import net.minecraft.server.level.ServerLevel;
2829
import net.minecraft.server.level.ServerPlayer;
2930
import net.minecraft.world.MenuProvider;
3031
import net.minecraft.world.entity.player.Player;
3132
import net.minecraft.world.inventory.AbstractContainerMenu;
3233
import org.checkerframework.checker.nullness.qual.Nullable;
3334
import org.objectweb.asm.Opcodes;
3435
import org.spongepowered.asm.mixin.Mixin;
36+
import org.spongepowered.asm.mixin.Shadow;
3537
import org.spongepowered.asm.mixin.injection.At;
3638
import org.spongepowered.asm.mixin.injection.Inject;
3739
import org.spongepowered.asm.mixin.injection.Redirect;
@@ -43,7 +45,12 @@
4345
import java.util.function.Consumer;
4446

4547
@Mixin(ServerPlayer.class)
46-
public class ServerPlayerMixin_Inventory_Neo {
48+
public abstract class ServerPlayerMixin_Inventory_Neo {
49+
50+
// @formatter:off
51+
@Shadow public abstract ServerLevel shadow$serverLevel();
52+
// @formatter:on
53+
4754
@Nullable private Object inventory$menuProvider;
4855

4956
@Inject(
@@ -56,7 +63,7 @@ public class ServerPlayerMixin_Inventory_Neo {
5663
)
5764
)
5865
private void impl$afterOpenMenu(final CallbackInfoReturnable<OptionalInt> cir) {
59-
PhaseTracker.SERVER.getPhaseContext().getTransactor().logContainerSet((ServerPlayer) (Object) this);
66+
PhaseTracker.getWorldInstance(this.shadow$serverLevel()).getPhaseContext().getTransactor().logContainerSet((ServerPlayer) (Object) this);
6067
}
6168

6269
@Inject(method = "openMenu(Lnet/minecraft/world/MenuProvider;Ljava/util/function/Consumer;)Ljava/util/OptionalInt;", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/level/ServerPlayer;initMenu(Lnet/minecraft/world/inventory/AbstractContainerMenu;)V"))
@@ -75,7 +82,7 @@ public class ServerPlayerMixin_Inventory_Neo {
7582
final MenuProvider menuProvider, final int containerCounter, final net.minecraft.world.entity.player.Inventory inventory,
7683
final Player player
7784
) {
78-
try (final EffectTransactor ignored = PhaseTracker.SERVER.getPhaseContext()
85+
try (final EffectTransactor ignored = PhaseTracker.getWorldInstance(this.shadow$serverLevel()).getPhaseContext()
7986
.getTransactor()
8087
.logOpenInventory((ServerPlayer) (Object) this)
8188
) {

neoforge/src/mixins/java/org/spongepowered/neoforge/mixin/tracker/server/level/ServerPlayerGameModeMixin_Neo_Tracker.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public abstract class ServerPlayerGameModeMixin_Neo_Tracker {
6363
final ItemStack itemStack, final Level level, final BlockState state, final BlockPos pos,
6464
final Player player
6565
) {
66-
final PhaseContext<@NonNull ?> context = PhaseTracker.SERVER.getPhaseContext();
66+
final PhaseContext<@NonNull ?> context = PhaseTracker.getWorldInstance(this.player.serverLevel()).getPhaseContext();
6767
final TransactionalCaptureSupplier transactor = context.getTransactor();
6868
// Log the prepare drops here because Forge rewrites
6969
// this method to call mine block before calling destroy block

0 commit comments

Comments
 (0)