Skip to content

Commit 63af585

Browse files
committed
Fix warnings in anvil rename
1 parent d469dbd commit 63af585

File tree

2 files changed

+43
-0
lines changed

2 files changed

+43
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package org.spongepowered.common.event.tracking.context.transaction.inventory;
2+
3+
import com.google.common.collect.ImmutableList;
4+
import net.minecraft.world.inventory.AbstractContainerMenu;
5+
import org.checkerframework.checker.nullness.qual.NonNull;
6+
import org.checkerframework.checker.nullness.qual.Nullable;
7+
import org.spongepowered.api.event.Cause;
8+
import org.spongepowered.api.event.item.inventory.container.ClickContainerEvent;
9+
import org.spongepowered.common.event.tracking.PhaseContext;
10+
import org.spongepowered.common.event.tracking.context.transaction.GameTransaction;
11+
12+
import java.util.Optional;
13+
14+
public class ExplicitInventoryOmittedTransaction extends ContainerBasedTransaction {
15+
public ExplicitInventoryOmittedTransaction(
16+
final AbstractContainerMenu menu
17+
) {
18+
super(menu);
19+
}
20+
21+
@Override
22+
public Optional<ClickContainerEvent> generateEvent(
23+
final PhaseContext<@NonNull ?> context, @Nullable final GameTransaction<@NonNull ?> parent,
24+
final ImmutableList<GameTransaction<ClickContainerEvent>> gameTransactions, final Cause currentCause
25+
) {
26+
return Optional.empty();
27+
}
28+
}

src/mixins/java/org/spongepowered/common/mixin/inventory/event/server/network/ServerGamePacketListenerImplMixin_Inventory.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import net.minecraft.world.entity.item.ItemEntity;
3838
import net.minecraft.world.entity.player.Player;
3939
import net.minecraft.world.inventory.AbstractContainerMenu;
40+
import net.minecraft.world.inventory.AnvilMenu;
4041
import net.minecraft.world.inventory.InventoryMenu;
4142
import net.minecraft.world.inventory.MerchantMenu;
4243
import net.minecraft.world.item.ItemStack;
@@ -54,8 +55,11 @@
5455
import org.spongepowered.common.event.tracking.PhaseContext;
5556
import org.spongepowered.common.event.tracking.PhaseTracker;
5657
import org.spongepowered.common.event.tracking.context.transaction.EffectTransactor;
58+
import org.spongepowered.common.event.tracking.context.transaction.ResultingTransactionBySideEffect;
5759
import org.spongepowered.common.event.tracking.context.transaction.TransactionalCaptureSupplier;
60+
import org.spongepowered.common.event.tracking.context.transaction.effect.InventoryEffect;
5861
import org.spongepowered.common.event.tracking.context.transaction.inventory.PlayerInventoryTransaction;
62+
import org.spongepowered.common.event.tracking.context.transaction.inventory.ExplicitInventoryOmittedTransaction;
5963
import org.spongepowered.common.inventory.custom.SpongeInventoryMenu;
6064
import org.spongepowered.common.item.util.ItemStackUtil;
6165

@@ -152,6 +156,17 @@ public class ServerGamePacketListenerImplMixin_Inventory {
152156
}
153157
}
154158

159+
@Inject(method = "handleRenameItem",
160+
at = @At(value = "INVOKE", target = "Lnet/minecraft/world/inventory/AnvilMenu;setItemName(Ljava/lang/String;)V", shift = At.Shift.BEFORE))
161+
private void impl$onHandleRenameItem(final CallbackInfo ci) {
162+
final PhaseContext<@NonNull ?> context = PhaseTracker.SERVER.getPhaseContext();
163+
final TransactionalCaptureSupplier transactor = context.getTransactor();
164+
final ExplicitInventoryOmittedTransaction transaction = new ExplicitInventoryOmittedTransaction(this.player.containerMenu);
165+
transactor.logTransaction(transaction);
166+
try (EffectTransactor ignored = transactor.pushEffect(new ResultingTransactionBySideEffect(InventoryEffect.getInstance()))) {
167+
}
168+
}
169+
155170
@Inject(method = "handleSelectTrade", at = @At("RETURN"))
156171
private void impl$onHandleSelectTrade(final ServerboundSelectTradePacket param0, final CallbackInfo ci) {
157172
if (this.player.containerMenu instanceof MerchantMenu) {

0 commit comments

Comments
 (0)