Skip to content

Commit ff475dd

Browse files
committed
修复bug
1 parent 0ca346c commit ff475dd

File tree

5 files changed

+48
-6
lines changed

5 files changed

+48
-6
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ dependencies {
230230
compileOnly(rfg.deobf("curse.maven:industrialcraft-2-242638:3078604"))
231231
compileOnly(rfg.deobf("curse.maven:mekanism-ce-399904:5351260"))
232232
compileOnly(rfg.deobf("curse.maven:mekeng-1027681:5775101"))
233-
implementation(rfg.deobf("curse.maven:had-enough-items-557549:7282920"))
233+
implementation(rfg.deobf("curse.maven:had-enough-items-557549:7340288"))
234234
implementation(rfg.deobf("curse.maven:thaumic-223628:2629023"))
235235
implementation(rfg.deobf("curse.maven:thaumic-energistics-extended-life-849094:6321322"))
236236
implementation(rfg.deobf("curse.maven:nae2-884359:5380800"))

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ show_testing_output = false
1616

1717
# Mod Information
1818
# HIGHLY RECOMMEND complying with SemVer for mod_version: https://semver.org/
19-
mod_version = 1.8.7
19+
mod_version = 1.8.8
2020
root_package = com.circulation
2121
mod_id = random_complement
2222
mod_name = RandomComplement

src/main/java/com/circulation/random_complement/mixin/ae2/container/MixinAEBaseContainer.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,18 @@
22

33
import appeng.container.AEBaseContainer;
44
import com.circulation.random_complement.common.interfaces.RCAEBaseContainer;
5+
import net.minecraft.entity.player.InventoryPlayer;
56
import net.minecraft.inventory.Container;
67
import org.spongepowered.asm.mixin.Mixin;
8+
import org.spongepowered.asm.mixin.Shadow;
79
import org.spongepowered.asm.mixin.Unique;
810

911
@Mixin(value = AEBaseContainer.class, remap = false)
1012
public abstract class MixinAEBaseContainer extends Container implements RCAEBaseContainer {
1113

14+
@Shadow
15+
public abstract InventoryPlayer getPlayerInv();
16+
1217
@Unique
1318
private Container rc$oldContainer;
1419

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,25 @@
11
package com.circulation.random_complement.mixin.ae2.container;
22

33
import appeng.container.implementations.ContainerCraftConfirm;
4+
import com.circulation.random_complement.RandomComplement;
45
import com.circulation.random_complement.common.interfaces.RCAEBaseContainer;
6+
import com.circulation.random_complement.common.network.ContainerRollBACK;
7+
import net.minecraft.entity.player.EntityPlayerMP;
8+
import net.minecraft.inventory.ContainerPlayer;
59
import org.spongepowered.asm.mixin.Mixin;
610
import org.spongepowered.asm.mixin.Shadow;
711
import org.spongepowered.asm.mixin.injection.At;
812
import org.spongepowered.asm.mixin.injection.Inject;
913
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
1014

1115
@Mixin(value = ContainerCraftConfirm.class, remap = false)
12-
public abstract class MixinContainerCraftConfirm implements RCAEBaseContainer {
16+
public abstract class MixinContainerCraftConfirm extends MixinAEBaseContainer implements RCAEBaseContainer {
1317

1418
@Shadow
1519
public abstract void setAutoStart(boolean autoStart);
1620

1721
@Inject(
18-
method = "startJob()V",
22+
method = "startJob",
1923
at = @At(
2024
value = "INVOKE",
2125
target = "Lappeng/api/networking/crafting/ICraftingGrid;submitJob(Lappeng/api/networking/crafting/ICraftingJob;Lappeng/api/networking/crafting/ICraftingRequester;Lappeng/api/networking/crafting/ICraftingCPU;ZLappeng/api/networking/security/IActionSource;)Lappeng/api/networking/crafting/ICraftingLink;",
@@ -25,7 +29,23 @@ public abstract class MixinContainerCraftConfirm implements RCAEBaseContainer {
2529
public void startJob0(CallbackInfo ci) {
2630
if (this.rc$getOldContainer() != null) {
2731
this.setAutoStart(false);
32+
if (this.getPlayerInv().player instanceof EntityPlayerMP entityPlayerMP) {
33+
var oldContainer = this.rc$getOldContainer();
34+
if (oldContainer != null) {
35+
if (oldContainer instanceof ContainerPlayer) {
36+
entityPlayerMP.closeContainer();
37+
} else {
38+
entityPlayerMP.getNextWindowId();
39+
entityPlayerMP.closeContainer();
40+
int windowId = entityPlayerMP.currentWindowId;
41+
entityPlayerMP.openContainer = oldContainer;
42+
entityPlayerMP.openContainer.windowId = windowId;
43+
}
44+
}
45+
RandomComplement.NET_CHANNEL.sendTo(new ContainerRollBACK(), entityPlayerMP);
46+
}
2847
ci.cancel();
2948
}
3049
}
50+
3151
}

src/main/java/com/circulation/random_complement/mixin/ae2/gui/MixinGuiCraftConfirm.java

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
package com.circulation.random_complement.mixin.ae2.gui;
22

3+
import appeng.api.storage.ITerminalHost;
34
import appeng.api.storage.data.IAEItemStack;
45
import appeng.api.storage.data.IItemList;
56
import appeng.client.gui.AEBaseGui;
67
import appeng.client.gui.implementations.GuiCraftConfirm;
78
import appeng.core.AELog;
9+
import appeng.core.sync.GuiBridge;
810
import appeng.core.sync.network.NetworkHandler;
911
import appeng.core.sync.packets.PacketValueConfig;
12+
import appeng.tile.misc.TileSecurityStation;
1013
import appeng.util.Platform;
1114
import appeng.util.item.AEItemStack;
1215
import com.circulation.random_complement.RandomComplement;
@@ -25,6 +28,7 @@
2528
import net.minecraft.client.gui.GuiScreen;
2629
import net.minecraft.client.resources.I18n;
2730
import net.minecraft.client.util.ITooltipFlag;
31+
import net.minecraft.entity.player.InventoryPlayer;
2832
import net.minecraft.inventory.Container;
2933
import net.minecraft.item.ItemStack;
3034
import net.minecraftforge.fml.common.Loader;
@@ -53,6 +57,9 @@ public MixinGuiCraftConfirm(Container container) {
5357
super(container);
5458
}
5559

60+
@Shadow(remap = false)
61+
private GuiBridge OriginalGui;
62+
5663
@Unique
5764
private static String randomComplement$getItemInformation(final Object o) {
5865
String dspToolTip = "";
@@ -100,6 +107,14 @@ public void drawFG(int offsetX, int offsetY, int mouseX, int mouseY) {
100107

101108
}
102109

110+
@Inject(method = "<init>", at = @At("TAIL"))
111+
public void onInit(InventoryPlayer inventoryPlayer, ITerminalHost te, CallbackInfo ci) {
112+
if (te instanceof TileSecurityStation) {
113+
this.OriginalGui = GuiBridge.GUI_SECURITY;
114+
}
115+
116+
}
117+
103118
@Inject(method = "drawFG", at = @At("TAIL"), remap = false)
104119
private void onDrawFG(int offsetX, int offsetY, int mouseX, int mouseY, CallbackInfo ci) {
105120
if (r$getCancel().isMouseOver() && Loader.isModLoaded("jei")) {
@@ -108,7 +123,7 @@ private void onDrawFG(int offsetX, int offsetY, int mouseX, int mouseY, Callback
108123
}
109124

110125
@Inject(method = "actionPerformed", at = @At("HEAD"), cancellable = true)
111-
public void onActionPerformed1(GuiButton btn, CallbackInfo ci) {
126+
public void onActionPerformed(GuiButton btn, CallbackInfo ci) {
112127
if (Loader.isModLoaded("jei") && btn == r$getCancel() && isShiftKeyDown()) rc$addMissBookmark();
113128
if (RCInputHandler.getOldGui() == null) return;
114129
if (btn == this.start || btn == r$getCancel()) {
@@ -123,7 +138,9 @@ public void onActionPerformed1(GuiButton btn, CallbackInfo ci) {
123138
GuiScreen oldGui;
124139
if ((oldGui = RCInputHandler.getOldGui()) != null) {
125140
RCInputHandler.setDelayMethod(() -> Minecraft.getMinecraft().displayGuiScreen(oldGui));
126-
RandomComplement.NET_CHANNEL.sendToServer(new ContainerRollBACK());
141+
if (btn == r$getCancel()) {
142+
RandomComplement.NET_CHANNEL.sendToServer(new ContainerRollBACK());
143+
}
127144
}
128145
ci.cancel();
129146
}

0 commit comments

Comments
 (0)