diff --git a/src/main/java/com/extendedae_plus/client/InputEvents.java b/src/main/java/com/extendedae_plus/client/InputEvents.java index e45e7dd..9bae0b6 100644 --- a/src/main/java/com/extendedae_plus/client/InputEvents.java +++ b/src/main/java/com/extendedae_plus/client/InputEvents.java @@ -1,19 +1,16 @@ package com.extendedae_plus.client; -import java.util.Optional; - -import org.lwjgl.glfw.GLFW; - +import appeng.api.stacks.GenericStack; +import appeng.client.gui.me.common.MEStorageScreen; +import appeng.integration.modules.jei.GenericEntryStackHelper; import com.extendedae_plus.ExtendedAEPlus; import com.extendedae_plus.integration.jei.JeiRuntimeProxy; +import com.extendedae_plus.mixin.ae2.accessor.MEStorageScreenAccessor; import com.extendedae_plus.network.ModNetwork; import com.extendedae_plus.network.OpenCraftFromJeiC2SPacket; import com.extendedae_plus.network.PullFromJeiOrCraftC2SPacket; - -import appeng.api.stacks.GenericStack; -import appeng.integration.modules.jei.GenericEntryStackHelper; -import mezz.jei.api.ingredients.ITypedIngredient; import mezz.jei.api.constants.VanillaTypes; +import mezz.jei.api.ingredients.ITypedIngredient; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.screens.Screen; import net.minecraft.world.item.ItemStack; @@ -21,8 +18,9 @@ import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.client.event.ScreenEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; -import appeng.client.gui.me.common.MEStorageScreen; -import com.extendedae_plus.mixin.accessor.MEStorageScreenAccessor; +import org.lwjgl.glfw.GLFW; + +import java.util.Optional; @Mod.EventBusSubscriber(modid = ExtendedAEPlus.MODID, value = Dist.CLIENT, bus = Mod.EventBusSubscriber.Bus.FORGE) public final class InputEvents { diff --git a/src/main/java/com/extendedae_plus/mixin/ContainerPatternEncodingTermMenuMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/ContainerPatternEncodingTermMenuMixin.java similarity index 99% rename from src/main/java/com/extendedae_plus/mixin/ContainerPatternEncodingTermMenuMixin.java rename to src/main/java/com/extendedae_plus/mixin/ae2/ContainerPatternEncodingTermMenuMixin.java index 40f6266..0cd3947 100644 --- a/src/main/java/com/extendedae_plus/mixin/ContainerPatternEncodingTermMenuMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/ContainerPatternEncodingTermMenuMixin.java @@ -1,18 +1,18 @@ -package com.extendedae_plus.mixin; +package com.extendedae_plus.mixin.ae2; +import appeng.api.crafting.PatternDetailsHelper; import appeng.menu.me.items.PatternEncodingTermMenu; import appeng.menu.slot.RestrictedInputSlot; -import appeng.api.crafting.PatternDetailsHelper; import appeng.parts.encoding.EncodingMode; +import com.extendedae_plus.util.ExtendedAEPatternUploadUtil; import com.glodblock.github.glodium.network.packet.sync.IActionHolder; import com.glodblock.github.glodium.network.packet.sync.Paras; -import com.extendedae_plus.util.ExtendedAEPatternUploadUtil; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.player.Player; import org.jetbrains.annotations.NotNull; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; diff --git a/src/main/java/com/extendedae_plus/mixin/MEStorageMenuMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/MEStorageMenuMixin.java similarity index 97% rename from src/main/java/com/extendedae_plus/mixin/MEStorageMenuMixin.java rename to src/main/java/com/extendedae_plus/mixin/ae2/MEStorageMenuMixin.java index 73c083b..bb1d402 100644 --- a/src/main/java/com/extendedae_plus/mixin/MEStorageMenuMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/MEStorageMenuMixin.java @@ -1,21 +1,20 @@ -package com.extendedae_plus.mixin; +package com.extendedae_plus.mixin.ae2; +import appeng.api.config.Setting; +import appeng.api.util.IConfigManager; +import appeng.menu.me.common.MEStorageMenu; +import com.extendedae_plus.mixin.ae2.accessor.MEStorageMenuAccessor; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import appeng.api.util.IConfigManager; -import appeng.menu.me.common.MEStorageMenu; -import com.extendedae_plus.mixin.accessor.MEStorageMenuAccessor; -import appeng.api.config.Setting; - /** * 修复:当服务端 ConfigManager 注册了额外设置(例如 TERMINAL_SHOW_PATTERN_PROVIDERS) * 而客户端 clientCM 未注册时,AE2 在同步环节会对 clientCM 执行 getSetting, * 进而抛出 UnsupportedSettingException。 - * + *

* 方案:在服务端首次 broadcastChanges 时,仅为“客户端缺失”的设置执行注册补齐,且占位值与服务端不同, * 以确保 AE2 后续仍会发送 ConfigValuePacket 完成真正的值同步,避免影响排序等行为。 */ diff --git a/src/main/java/com/extendedae_plus/mixin/PatternEncodingTermMenuMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/PatternEncodingTermMenuMixin.java similarity index 97% rename from src/main/java/com/extendedae_plus/mixin/PatternEncodingTermMenuMixin.java rename to src/main/java/com/extendedae_plus/mixin/ae2/PatternEncodingTermMenuMixin.java index d17f475..cd01f0e 100644 --- a/src/main/java/com/extendedae_plus/mixin/PatternEncodingTermMenuMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/PatternEncodingTermMenuMixin.java @@ -1,30 +1,25 @@ -package com.extendedae_plus.mixin; +package com.extendedae_plus.mixin.ae2; +import appeng.api.inventories.InternalInventory; +import appeng.api.networking.energy.IEnergySource; +import appeng.api.stacks.AEItemKey; +import appeng.api.stacks.AEKey; +import appeng.api.storage.MEStorage; +import appeng.api.storage.StorageHelper; +import appeng.core.definitions.AEItems; +import appeng.helpers.IPatternTerminalMenuHost; +import appeng.menu.me.common.MEStorageMenu; +import appeng.menu.me.items.PatternEncodingTermMenu; +import appeng.menu.slot.RestrictedInputSlot; +import com.extendedae_plus.mixin.ae2.accessor.MEStorageMenuAccessor; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.inventory.MenuType; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import org.jetbrains.annotations.Nullable; - -import net.minecraft.world.entity.player.Inventory; -import net.minecraft.world.inventory.MenuType; - -import appeng.api.inventories.InternalInventory; -import appeng.api.networking.energy.IEnergySource; -import appeng.api.storage.MEStorage; -import appeng.api.storage.StorageHelper; -import appeng.api.stacks.AEItemKey; -import appeng.api.stacks.AEKey; -import appeng.core.definitions.AEItems; -import appeng.helpers.IPatternTerminalMenuHost; -import appeng.menu.me.items.PatternEncodingTermMenu; -import appeng.api.networking.security.IActionSource; -import appeng.menu.slot.RestrictedInputSlot; -import appeng.menu.me.common.MEStorageMenu; -import com.extendedae_plus.mixin.accessor.MEStorageMenuAccessor; - @Mixin(PatternEncodingTermMenu.class) public abstract class PatternEncodingTermMenuMixin { diff --git a/src/main/java/com/extendedae_plus/mixin/PatternEncodingTermScreenMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/PatternEncodingTermScreenMixin.java similarity index 98% rename from src/main/java/com/extendedae_plus/mixin/PatternEncodingTermScreenMixin.java rename to src/main/java/com/extendedae_plus/mixin/ae2/PatternEncodingTermScreenMixin.java index 09ac8be..4743df6 100644 --- a/src/main/java/com/extendedae_plus/mixin/PatternEncodingTermScreenMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/PatternEncodingTermScreenMixin.java @@ -1,28 +1,25 @@ -package com.extendedae_plus.mixin; +package com.extendedae_plus.mixin.ae2; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -import net.minecraft.client.gui.components.Tooltip; -import net.minecraft.client.gui.GuiGraphics; -import net.minecraft.client.renderer.Rect2i; -import net.minecraft.network.chat.Component; - -import appeng.client.gui.Icon; import appeng.client.gui.AEBaseScreen; +import appeng.client.gui.Icon; import appeng.client.gui.me.items.PatternEncodingTermScreen; import appeng.client.gui.style.ScreenStyle; import appeng.client.gui.style.WidgetStyle; import appeng.client.gui.widgets.IconButton; import appeng.menu.AEBaseMenu; - -import com.extendedae_plus.network.ModNetwork; -import com.extendedae_plus.mixin.accessor.AEBaseScreenAccessor; import com.extendedae_plus.mixin.accessor.AbstractContainerScreenAccessor; import com.extendedae_plus.mixin.accessor.ScreenAccessor; +import com.extendedae_plus.mixin.ae2.accessor.AEBaseScreenAccessor; +import com.extendedae_plus.network.ModNetwork; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.components.Tooltip; +import net.minecraft.client.renderer.Rect2i; +import net.minecraft.network.chat.Component; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Unique; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; /** * 在图样编码终端界面加入一个上传按钮: diff --git a/src/main/java/com/extendedae_plus/mixin/ae2/PatternProviderScreenMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/PatternProviderScreenMixin.java index 29f1bc9..4b749bf 100644 --- a/src/main/java/com/extendedae_plus/mixin/ae2/PatternProviderScreenMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/PatternProviderScreenMixin.java @@ -6,6 +6,12 @@ import appeng.client.gui.implementations.PatternProviderScreen; import appeng.client.gui.style.ScreenStyle; import appeng.client.gui.widgets.ToggleButton; import appeng.menu.implementations.PatternProviderMenu; +import com.extendedae_plus.api.PatternProviderMenuAdvancedSync; +import com.extendedae_plus.client.ClientAdvancedBlockingState; +import com.extendedae_plus.mixin.ae2.accessor.PatternProviderLogicAccessor; +import com.extendedae_plus.mixin.ae2.accessor.PatternProviderMenuAdvancedAccessor; +import com.extendedae_plus.network.ModNetwork; +import com.extendedae_plus.network.ToggleAdvancedBlockingC2SPacket; import net.minecraft.network.chat.Component; import net.minecraft.world.entity.player.Inventory; import org.spongepowered.asm.mixin.Mixin; @@ -14,13 +20,6 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import com.extendedae_plus.api.PatternProviderMenuAdvancedSync; -import com.extendedae_plus.network.ModNetwork; -import com.extendedae_plus.network.ToggleAdvancedBlockingC2SPacket; -import com.extendedae_plus.client.ClientAdvancedBlockingState; -import com.extendedae_plus.mixin.accessor.PatternProviderMenuAdvancedAccessor; -import com.extendedae_plus.mixin.accessor.PatternProviderLogicAccessor; - /** * 为 AE2 原版样板供应器界面添加“高级阻挡模式”按钮(仅客户端UI反馈)。 * - 位于左侧工具栏 diff --git a/src/main/java/com/extendedae_plus/mixin/SlotGridLayoutMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/SlotGridLayoutMixin.java similarity index 97% rename from src/main/java/com/extendedae_plus/mixin/SlotGridLayoutMixin.java rename to src/main/java/com/extendedae_plus/mixin/ae2/SlotGridLayoutMixin.java index 705b720..e4a9eff 100644 --- a/src/main/java/com/extendedae_plus/mixin/SlotGridLayoutMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/SlotGridLayoutMixin.java @@ -1,7 +1,7 @@ -package com.extendedae_plus.mixin; +package com.extendedae_plus.mixin.ae2; -import appeng.client.gui.layout.SlotGridLayout; import appeng.client.Point; +import appeng.client.gui.layout.SlotGridLayout; import net.minecraft.client.Minecraft; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; diff --git a/src/main/java/com/extendedae_plus/mixin/accessor/AEBaseScreenAccessor.java b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/AEBaseScreenAccessor.java similarity index 89% rename from src/main/java/com/extendedae_plus/mixin/accessor/AEBaseScreenAccessor.java rename to src/main/java/com/extendedae_plus/mixin/ae2/accessor/AEBaseScreenAccessor.java index bdcad30..d9aa61a 100644 --- a/src/main/java/com/extendedae_plus/mixin/accessor/AEBaseScreenAccessor.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/AEBaseScreenAccessor.java @@ -1,11 +1,10 @@ -package com.extendedae_plus.mixin.accessor; - -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; +package com.extendedae_plus.mixin.ae2.accessor; import appeng.client.gui.AEBaseScreen; import appeng.client.gui.style.ScreenStyle; import appeng.menu.AEBaseMenu; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; @Mixin(value = AEBaseScreen.class, remap = false) public interface AEBaseScreenAccessor { diff --git a/src/main/java/com/extendedae_plus/mixin/accessor/AEBaseScreenInvoker.java b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/AEBaseScreenInvoker.java similarity index 86% rename from src/main/java/com/extendedae_plus/mixin/accessor/AEBaseScreenInvoker.java rename to src/main/java/com/extendedae_plus/mixin/ae2/accessor/AEBaseScreenInvoker.java index 46317d3..0ec30f9 100644 --- a/src/main/java/com/extendedae_plus/mixin/accessor/AEBaseScreenInvoker.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/AEBaseScreenInvoker.java @@ -1,9 +1,8 @@ -package com.extendedae_plus.mixin.accessor; - -import org.spongepowered.asm.mixin.Mixin; +package com.extendedae_plus.mixin.ae2.accessor; import appeng.client.gui.AEBaseScreen; import appeng.menu.AEBaseMenu; +import org.spongepowered.asm.mixin.Mixin; @Mixin(AEBaseScreen.class) public interface AEBaseScreenInvoker { diff --git a/src/main/java/com/extendedae_plus/mixin/accessor/MEStorageMenuAccessor.java b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/MEStorageMenuAccessor.java similarity index 94% rename from src/main/java/com/extendedae_plus/mixin/accessor/MEStorageMenuAccessor.java rename to src/main/java/com/extendedae_plus/mixin/ae2/accessor/MEStorageMenuAccessor.java index 0d7a184..a3662ac 100644 --- a/src/main/java/com/extendedae_plus/mixin/accessor/MEStorageMenuAccessor.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/MEStorageMenuAccessor.java @@ -1,14 +1,12 @@ -package com.extendedae_plus.mixin.accessor; - -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; - -import org.jetbrains.annotations.Nullable; +package com.extendedae_plus.mixin.ae2.accessor; import appeng.api.networking.energy.IEnergySource; import appeng.api.storage.MEStorage; -import appeng.menu.me.common.MEStorageMenu; import appeng.api.util.IConfigManager; +import appeng.menu.me.common.MEStorageMenu; +import org.jetbrains.annotations.Nullable; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; @Mixin(MEStorageMenu.class) public interface MEStorageMenuAccessor { diff --git a/src/main/java/com/extendedae_plus/mixin/accessor/MEStorageScreenAccessor.java b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/MEStorageScreenAccessor.java similarity index 90% rename from src/main/java/com/extendedae_plus/mixin/accessor/MEStorageScreenAccessor.java rename to src/main/java/com/extendedae_plus/mixin/ae2/accessor/MEStorageScreenAccessor.java index d16ef19..e277e1a 100644 --- a/src/main/java/com/extendedae_plus/mixin/accessor/MEStorageScreenAccessor.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/MEStorageScreenAccessor.java @@ -1,11 +1,10 @@ -package com.extendedae_plus.mixin.accessor; - -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; -import org.spongepowered.asm.mixin.gen.Invoker; +package com.extendedae_plus.mixin.ae2.accessor; import appeng.client.gui.me.common.MEStorageScreen; import appeng.client.gui.widgets.AETextField; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; +import org.spongepowered.asm.mixin.gen.Invoker; @Mixin(value = MEStorageScreen.class, remap = false) public interface MEStorageScreenAccessor { diff --git a/src/main/java/com/extendedae_plus/mixin/accessor/PatternEncodingTermMenuAccessor.java b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternEncodingTermMenuAccessor.java similarity index 90% rename from src/main/java/com/extendedae_plus/mixin/accessor/PatternEncodingTermMenuAccessor.java rename to src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternEncodingTermMenuAccessor.java index 2070091..a65aac2 100644 --- a/src/main/java/com/extendedae_plus/mixin/accessor/PatternEncodingTermMenuAccessor.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternEncodingTermMenuAccessor.java @@ -1,4 +1,4 @@ -package com.extendedae_plus.mixin.accessor; +package com.extendedae_plus.mixin.ae2.accessor; import appeng.menu.me.items.PatternEncodingTermMenu; import appeng.menu.slot.RestrictedInputSlot; diff --git a/src/main/java/com/extendedae_plus/mixin/accessor/PatternProviderLogicAccessor.java b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternProviderLogicAccessor.java similarity index 88% rename from src/main/java/com/extendedae_plus/mixin/accessor/PatternProviderLogicAccessor.java rename to src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternProviderLogicAccessor.java index 7818382..732c3fc 100644 --- a/src/main/java/com/extendedae_plus/mixin/accessor/PatternProviderLogicAccessor.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternProviderLogicAccessor.java @@ -1,10 +1,9 @@ -package com.extendedae_plus.mixin.accessor; - -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; +package com.extendedae_plus.mixin.ae2.accessor; import appeng.helpers.patternprovider.PatternProviderLogic; import appeng.helpers.patternprovider.PatternProviderLogicHost; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; @Mixin(PatternProviderLogic.class) public interface PatternProviderLogicAccessor { diff --git a/src/main/java/com/extendedae_plus/mixin/accessor/PatternProviderLogicPatternInputsAccessor.java b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternProviderLogicPatternInputsAccessor.java similarity index 88% rename from src/main/java/com/extendedae_plus/mixin/accessor/PatternProviderLogicPatternInputsAccessor.java rename to src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternProviderLogicPatternInputsAccessor.java index 1c6701c..a7f1158 100644 --- a/src/main/java/com/extendedae_plus/mixin/accessor/PatternProviderLogicPatternInputsAccessor.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternProviderLogicPatternInputsAccessor.java @@ -1,13 +1,12 @@ -package com.extendedae_plus.mixin.accessor; +package com.extendedae_plus.mixin.ae2.accessor; +import appeng.api.stacks.AEKey; +import appeng.helpers.patternprovider.PatternProviderLogic; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; import java.util.Set; -import appeng.api.stacks.AEKey; -import appeng.helpers.patternprovider.PatternProviderLogic; - @Mixin(PatternProviderLogic.class) public interface PatternProviderLogicPatternInputsAccessor { @Accessor("patternInputs") diff --git a/src/main/java/com/extendedae_plus/mixin/accessor/PatternProviderMenuAdvancedAccessor.java b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternProviderMenuAdvancedAccessor.java similarity index 88% rename from src/main/java/com/extendedae_plus/mixin/accessor/PatternProviderMenuAdvancedAccessor.java rename to src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternProviderMenuAdvancedAccessor.java index af5c494..2f62d09 100644 --- a/src/main/java/com/extendedae_plus/mixin/accessor/PatternProviderMenuAdvancedAccessor.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/accessor/PatternProviderMenuAdvancedAccessor.java @@ -1,11 +1,10 @@ -package com.extendedae_plus.mixin.accessor; +package com.extendedae_plus.mixin.ae2.accessor; +import appeng.helpers.patternprovider.PatternProviderLogic; +import appeng.menu.implementations.PatternProviderMenu; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; -import appeng.menu.implementations.PatternProviderMenu; -import appeng.helpers.patternprovider.PatternProviderLogic; - @Mixin(PatternProviderMenu.class) public interface PatternProviderMenuAdvancedAccessor { @Accessor("logic") diff --git a/src/main/java/com/extendedae_plus/mixin/ContainerUWirelessExPatternTerminalMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2WTlib/ContainerUWirelessExPatternTerminalMixin.java similarity index 96% rename from src/main/java/com/extendedae_plus/mixin/ContainerUWirelessExPatternTerminalMixin.java rename to src/main/java/com/extendedae_plus/mixin/ae2WTlib/ContainerUWirelessExPatternTerminalMixin.java index 83178e8..ac08574 100644 --- a/src/main/java/com/extendedae_plus/mixin/ContainerUWirelessExPatternTerminalMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2WTlib/ContainerUWirelessExPatternTerminalMixin.java @@ -1,6 +1,5 @@ -package com.extendedae_plus.mixin; +package com.extendedae_plus.mixin.ae2WTlib; -import appeng.api.util.IConfigurableObject; import com.extendedae_plus.util.ExtendedAEPatternUploadUtil; import com.glodblock.github.extendedae.xmod.wt.ContainerUWirelessExPAT; import com.glodblock.github.extendedae.xmod.wt.HostUWirelessExPAT; diff --git a/src/main/java/com/extendedae_plus/mixin/ContainerExPatternProviderMixin.java b/src/main/java/com/extendedae_plus/mixin/extendedae/ContainerExPatternProviderMixin.java similarity index 98% rename from src/main/java/com/extendedae_plus/mixin/ContainerExPatternProviderMixin.java rename to src/main/java/com/extendedae_plus/mixin/extendedae/ContainerExPatternProviderMixin.java index 9ed0c22..540d9c5 100644 --- a/src/main/java/com/extendedae_plus/mixin/ContainerExPatternProviderMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/extendedae/ContainerExPatternProviderMixin.java @@ -1,28 +1,27 @@ -package com.extendedae_plus.mixin; +package com.extendedae_plus.mixin.extendedae; +import appeng.api.crafting.PatternDetailsHelper; +import appeng.api.stacks.GenericStack; +import appeng.crafting.pattern.AEProcessingPattern; +import appeng.crafting.pattern.EncodedPatternItem; import appeng.helpers.patternprovider.PatternProviderLogicHost; import appeng.menu.SlotSemantics; import appeng.menu.guisync.GuiSync; import appeng.menu.implementations.PatternProviderMenu; import appeng.menu.slot.AppEngSlot; -import appeng.crafting.pattern.EncodedPatternItem; -import appeng.crafting.pattern.AEProcessingPattern; -import appeng.api.stacks.GenericStack; -import appeng.api.crafting.PatternDetailsHelper; import com.glodblock.github.extendedae.container.ContainerExPatternProvider; import com.glodblock.github.glodium.network.packet.sync.IActionHolder; import com.glodblock.github.glodium.network.packet.sync.Paras; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.inventory.MenuType; import net.minecraft.world.inventory.Slot; +import org.jetbrains.annotations.NotNull; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import org.jetbrains.annotations.NotNull; -import java.lang.reflect.Field; import java.util.List; import java.util.Map; import java.util.function.Consumer; diff --git a/src/main/java/com/extendedae_plus/mixin/ContainerExPatternTerminalMixin.java b/src/main/java/com/extendedae_plus/mixin/extendedae/ContainerExPatternTerminalMixin.java similarity index 98% rename from src/main/java/com/extendedae_plus/mixin/ContainerExPatternTerminalMixin.java rename to src/main/java/com/extendedae_plus/mixin/extendedae/ContainerExPatternTerminalMixin.java index 566c413..ff94b52 100644 --- a/src/main/java/com/extendedae_plus/mixin/ContainerExPatternTerminalMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/extendedae/ContainerExPatternTerminalMixin.java @@ -1,12 +1,13 @@ -package com.extendedae_plus.mixin; +package com.extendedae_plus.mixin.extendedae; +import appeng.api.util.IConfigurableObject; import appeng.menu.guisync.GuiSync; import com.extendedae_plus.util.ExtendedAEPatternUploadUtil; -import appeng.api.util.IConfigurableObject; import com.glodblock.github.extendedae.container.ContainerExPatternTerminal; import com.glodblock.github.glodium.network.packet.sync.IActionHolder; import com.glodblock.github.glodium.network.packet.sync.Paras; import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.player.Player; import org.jetbrains.annotations.NotNull; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; @@ -16,7 +17,6 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import java.util.Map; import java.util.function.Consumer; -import net.minecraft.world.entity.player.Player; @Mixin(ContainerExPatternTerminal.class) public abstract class ContainerExPatternTerminalMixin implements IActionHolder { diff --git a/src/main/java/com/extendedae_plus/mixin/ContainerWirelessExPatternTerminalMixin.java b/src/main/java/com/extendedae_plus/mixin/extendedae/ContainerWirelessExPatternTerminalMixin.java similarity index 96% rename from src/main/java/com/extendedae_plus/mixin/ContainerWirelessExPatternTerminalMixin.java rename to src/main/java/com/extendedae_plus/mixin/extendedae/ContainerWirelessExPatternTerminalMixin.java index 65abf96..168715a 100644 --- a/src/main/java/com/extendedae_plus/mixin/ContainerWirelessExPatternTerminalMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/extendedae/ContainerWirelessExPatternTerminalMixin.java @@ -1,9 +1,8 @@ -package com.extendedae_plus.mixin; +package com.extendedae_plus.mixin.extendedae; -import appeng.api.util.IConfigurableObject; import com.extendedae_plus.util.ExtendedAEPatternUploadUtil; -import com.glodblock.github.extendedae.container.ContainerWirelessExPAT; import com.glodblock.github.extendedae.common.me.itemhost.HostWirelessExPAT; +import com.glodblock.github.extendedae.container.ContainerWirelessExPAT; import com.glodblock.github.glodium.network.packet.sync.IActionHolder; import com.glodblock.github.glodium.network.packet.sync.Paras; import net.minecraft.server.level.ServerPlayer; diff --git a/src/main/java/com/extendedae_plus/mixin/GuiExPatternProviderMixin.java b/src/main/java/com/extendedae_plus/mixin/extendedae/GuiExPatternProviderMixin.java similarity index 99% rename from src/main/java/com/extendedae_plus/mixin/GuiExPatternProviderMixin.java rename to src/main/java/com/extendedae_plus/mixin/extendedae/GuiExPatternProviderMixin.java index 752c06d..22990b7 100644 --- a/src/main/java/com/extendedae_plus/mixin/GuiExPatternProviderMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/extendedae/GuiExPatternProviderMixin.java @@ -1,18 +1,16 @@ -package com.extendedae_plus.mixin; +package com.extendedae_plus.mixin.extendedae; import appeng.client.gui.Icon; import appeng.client.gui.implementations.PatternProviderScreen; import appeng.client.gui.style.PaletteColor; import appeng.client.gui.style.ScreenStyle; -import appeng.client.gui.widgets.VerticalButtonBar; import appeng.menu.SlotSemantics; import com.extendedae_plus.NewIcon; -import com.extendedae_plus.util.PatternProviderUIHelper; import com.glodblock.github.extendedae.client.button.ActionEPPButton; -import com.glodblock.github.extendedae.network.EPPNetworkHandler; -import com.glodblock.github.glodium.network.packet.CGenericPacket; import com.glodblock.github.extendedae.client.gui.GuiExPatternProvider; import com.glodblock.github.extendedae.container.ContainerExPatternProvider; +import com.glodblock.github.extendedae.network.EPPNetworkHandler; +import com.glodblock.github.glodium.network.packet.CGenericPacket; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; import net.minecraft.client.gui.GuiGraphics; diff --git a/src/main/java/com/extendedae_plus/mixin/GuiExPatternTerminalMixin.java b/src/main/java/com/extendedae_plus/mixin/extendedae/GuiExPatternTerminalMixin.java similarity index 98% rename from src/main/java/com/extendedae_plus/mixin/GuiExPatternTerminalMixin.java rename to src/main/java/com/extendedae_plus/mixin/extendedae/GuiExPatternTerminalMixin.java index 1214f00..4143ffc 100644 --- a/src/main/java/com/extendedae_plus/mixin/GuiExPatternTerminalMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/extendedae/GuiExPatternTerminalMixin.java @@ -1,22 +1,19 @@ -package com.extendedae_plus.mixin; +package com.extendedae_plus.mixin.extendedae; -import appeng.client.gui.Icon; +import appeng.api.crafting.PatternDetailsHelper; import appeng.client.gui.AEBaseScreen; +import appeng.client.gui.Icon; import appeng.client.gui.style.ScreenStyle; import appeng.client.gui.widgets.IconButton; -import com.extendedae_plus.util.ExtendedAEPatternUploadUtil; +import com.glodblock.github.extendedae.client.gui.GuiExPatternTerminal; +import com.glodblock.github.extendedae.container.ContainerExPatternTerminal; import com.glodblock.github.extendedae.network.EPPNetworkHandler; import com.glodblock.github.glodium.network.packet.CGenericPacket; -import com.glodblock.github.extendedae.client.gui.GuiExPatternTerminal; -import com.glodblock.github.extendedae.client.gui.GuiWirelessExPAT; -import com.glodblock.github.extendedae.container.ContainerExPatternTerminal; import net.minecraft.client.gui.components.Tooltip; import net.minecraft.network.chat.Component; -import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.inventory.Slot; import net.minecraft.world.item.ItemStack; -import appeng.api.crafting.PatternDetailsHelper; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; diff --git a/src/main/java/com/extendedae_plus/mixin/HighlightButtonMixin.java b/src/main/java/com/extendedae_plus/mixin/extendedae/HighlightButtonMixin.java similarity index 98% rename from src/main/java/com/extendedae_plus/mixin/HighlightButtonMixin.java rename to src/main/java/com/extendedae_plus/mixin/extendedae/HighlightButtonMixin.java index 135d4d7..8d69174 100644 --- a/src/main/java/com/extendedae_plus/mixin/HighlightButtonMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/extendedae/HighlightButtonMixin.java @@ -1,4 +1,4 @@ -package com.extendedae_plus.mixin; +package com.extendedae_plus.mixin.extendedae; import com.glodblock.github.extendedae.client.button.HighlightButton; import com.glodblock.github.extendedae.client.gui.GuiExPatternTerminal; diff --git a/src/main/java/com/extendedae_plus/mixin/PartExPatternProviderMixin.java b/src/main/java/com/extendedae_plus/mixin/extendedae/PartExPatternProviderMixin.java similarity index 95% rename from src/main/java/com/extendedae_plus/mixin/PartExPatternProviderMixin.java rename to src/main/java/com/extendedae_plus/mixin/extendedae/PartExPatternProviderMixin.java index b6e4997..5b69fb6 100644 --- a/src/main/java/com/extendedae_plus/mixin/PartExPatternProviderMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/extendedae/PartExPatternProviderMixin.java @@ -1,4 +1,4 @@ -package com.extendedae_plus.mixin; +package com.extendedae_plus.mixin.extendedae; import com.extendedae_plus.config.ModConfigs; import com.glodblock.github.extendedae.common.parts.PartExPatternProvider; diff --git a/src/main/java/com/extendedae_plus/mixin/TileExPatternProviderMixin.java b/src/main/java/com/extendedae_plus/mixin/extendedae/TileExPatternProviderMixin.java similarity index 95% rename from src/main/java/com/extendedae_plus/mixin/TileExPatternProviderMixin.java rename to src/main/java/com/extendedae_plus/mixin/extendedae/TileExPatternProviderMixin.java index 5dd0d12..1740b24 100644 --- a/src/main/java/com/extendedae_plus/mixin/TileExPatternProviderMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/extendedae/TileExPatternProviderMixin.java @@ -1,4 +1,4 @@ -package com.extendedae_plus.mixin; +package com.extendedae_plus.mixin.extendedae; import com.extendedae_plus.config.ModConfigs; import com.glodblock.github.extendedae.common.tileentities.TileExPatternProvider; diff --git a/src/main/java/com/extendedae_plus/network/ToggleAdvancedBlockingC2SPacket.java b/src/main/java/com/extendedae_plus/network/ToggleAdvancedBlockingC2SPacket.java index 100cf9d..070e2ff 100644 --- a/src/main/java/com/extendedae_plus/network/ToggleAdvancedBlockingC2SPacket.java +++ b/src/main/java/com/extendedae_plus/network/ToggleAdvancedBlockingC2SPacket.java @@ -1,17 +1,16 @@ package com.extendedae_plus.network; +import appeng.menu.implementations.PatternProviderMenu; +import com.extendedae_plus.api.AdvancedBlockingHolder; +import com.extendedae_plus.mixin.ae2.accessor.PatternProviderLogicAccessor; +import com.extendedae_plus.mixin.ae2.accessor.PatternProviderMenuAdvancedAccessor; import net.minecraft.network.FriendlyByteBuf; -import net.minecraftforge.network.NetworkEvent; import net.minecraft.server.level.ServerPlayer; import net.minecraftforge.network.NetworkDirection; +import net.minecraftforge.network.NetworkEvent; import java.util.function.Supplier; -import appeng.menu.implementations.PatternProviderMenu; -import com.extendedae_plus.mixin.accessor.PatternProviderMenuAdvancedAccessor; -import com.extendedae_plus.api.AdvancedBlockingHolder; -import com.extendedae_plus.mixin.accessor.PatternProviderLogicAccessor; - /** * C2S:切换高级阻挡模式。 * 不含额外负载,直接基于玩家当前打开的 PatternProviderMenu 进行切换。 diff --git a/src/main/java/com/extendedae_plus/util/ExtendedAEPatternUploadUtil.java b/src/main/java/com/extendedae_plus/util/ExtendedAEPatternUploadUtil.java index ef505b8..14923c8 100644 --- a/src/main/java/com/extendedae_plus/util/ExtendedAEPatternUploadUtil.java +++ b/src/main/java/com/extendedae_plus/util/ExtendedAEPatternUploadUtil.java @@ -1,46 +1,40 @@ package com.extendedae_plus.util; -import appeng.api.inventories.InternalInventory; -import appeng.api.crafting.PatternDetailsHelper; import appeng.api.crafting.IPatternDetails; +import appeng.api.crafting.PatternDetailsHelper; +import appeng.api.inventories.InternalInventory; import appeng.api.networking.IGrid; import appeng.api.networking.IGridNode; +import appeng.core.definitions.AEItems; +import appeng.crafting.pattern.AECraftingPattern; import appeng.helpers.patternprovider.PatternContainer; import appeng.menu.implementations.PatternAccessTermMenu; import appeng.menu.me.items.PatternEncodingTermMenu; -import appeng.crafting.pattern.AECraftingPattern; -import appeng.core.definitions.AEItems; import appeng.util.inv.FilteredInternalInventory; import appeng.util.inv.filter.IAEItemFilter; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.world.item.ItemStack; -import net.minecraft.network.chat.Component; - -import java.lang.reflect.Field; -import java.util.Map; -import java.util.Set; -import java.util.List; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.concurrent.ConcurrentHashMap; -import java.nio.file.Path; -import java.nio.file.Files; -import java.io.IOException; - +import com.extendedae_plus.mixin.ae2.accessor.PatternEncodingTermMenuAccessor; import com.glodblock.github.extendedae.common.tileentities.matrix.TileAssemblerMatrixBase; -import net.minecraftforge.common.capabilities.ForgeCapabilities; -import net.minecraftforge.fml.loading.FMLPaths; -import net.minecraftforge.items.IItemHandler; - -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.crafting.Recipe; -import net.minecraft.world.item.crafting.RecipeType; - import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonElement; import com.google.gson.JsonObject; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.Recipe; +import net.minecraft.world.item.crafting.RecipeType; +import net.minecraftforge.common.capabilities.ForgeCapabilities; +import net.minecraftforge.fml.loading.FMLPaths; +import net.minecraftforge.items.IItemHandler; + +import java.io.IOException; +import java.lang.reflect.Field; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; /** * ExtendedAE扩展样板管理终端专用的样板上传工具类 @@ -431,7 +425,7 @@ public class ExtendedAEPatternUploadUtil { } // 读取已编码槽位的物品 - var encodedSlot = ((com.extendedae_plus.mixin.accessor.PatternEncodingTermMenuAccessor) (Object) menu) + var encodedSlot = ((PatternEncodingTermMenuAccessor) (Object) menu) .epp$getEncodedPatternSlot(); ItemStack stack = encodedSlot.getItem(); if (stack.isEmpty() || !PatternDetailsHelper.isEncodedPattern(stack)) { @@ -465,7 +459,7 @@ public class ExtendedAEPatternUploadUtil { player.sendSystemMessage(Component.literal("ExtendedAE Plus: 装配矩阵已存在相同样板,已跳过上传并返还空白样板")); } try { - var accessor = (com.extendedae_plus.mixin.accessor.PatternEncodingTermMenuAccessor) (Object) menu; + var accessor = (PatternEncodingTermMenuAccessor) (Object) menu; var blankSlot = accessor.epp$getBlankPatternSlot(); ItemStack blanks = AEItems.BLANK_PATTERN.stack(stack.getCount()); if (blankSlot != null && blankSlot.mayPlace(blanks)) { @@ -982,7 +976,7 @@ public class ExtendedAEPatternUploadUtil { return false; } // 读取已编码槽位的物品(通过 accessor) - var encodedSlot = ((com.extendedae_plus.mixin.accessor.PatternEncodingTermMenuAccessor) (Object) menu) + var encodedSlot = ((PatternEncodingTermMenuAccessor) (Object) menu) .epp$getEncodedPatternSlot(); ItemStack stack = encodedSlot.getItem(); if (stack.isEmpty() || !PatternDetailsHelper.isEncodedPattern(stack)) { @@ -1054,7 +1048,7 @@ public class ExtendedAEPatternUploadUtil { if (player == null || menu == null) { return false; } - var encodedSlot = ((com.extendedae_plus.mixin.accessor.PatternEncodingTermMenuAccessor) (Object) menu) + var encodedSlot = ((PatternEncodingTermMenuAccessor) (Object) menu) .epp$getEncodedPatternSlot(); ItemStack stack = encodedSlot.getItem(); if (stack.isEmpty() || !PatternDetailsHelper.isEncodedPattern(stack)) { @@ -1192,7 +1186,7 @@ public class ExtendedAEPatternUploadUtil { var container = list.get(index); if (container == null) return false; - var encodedSlot = ((com.extendedae_plus.mixin.accessor.PatternEncodingTermMenuAccessor) (Object) menu) + var encodedSlot = ((PatternEncodingTermMenuAccessor) (Object) menu) .epp$getEncodedPatternSlot(); ItemStack stack = encodedSlot.getItem(); if (stack.isEmpty() || !PatternDetailsHelper.isEncodedPattern(stack)) { diff --git a/src/main/resources/extendedae_plus.mixins.json b/src/main/resources/extendedae_plus.mixins.json index 5d011cd..7b3369a 100644 --- a/src/main/resources/extendedae_plus.mixins.json +++ b/src/main/resources/extendedae_plus.mixins.json @@ -4,36 +4,39 @@ "compatibilityLevel": "JAVA_17", "minVersion": "0.8", "client": [ - "GuiExPatternProviderMixin", - "SlotGridLayoutMixin", - "GuiExPatternTerminalMixin", - "HighlightButtonMixin", "PickFromWirelessMixin", - "PatternEncodingTermScreenMixin", - "ae2.PatternProviderScreenMixin", - "jei.EncodePatternTransferHandlerMixin", - "ae2.QuartzCuttingKnifeItemMixin", - "accessor.AEBaseScreenAccessor", "accessor.AbstractContainerScreenAccessor", "accessor.ScreenAccessor", - "accessor.MEStorageScreenAccessor" + "accessor.ScreenInvoker", + "ae2.PatternEncodingTermScreenMixin", + "ae2.PatternProviderScreenMixin", + "ae2.QuartzCuttingKnifeItemMixin", + "ae2.SlotGridLayoutMixin", + "ae2.accessor.AEBaseScreenAccessor", + "ae2.accessor.AEBaseScreenInvoker", + "ae2.accessor.MEStorageScreenAccessor", + "extendedae.GuiExPatternProviderMixin", + "extendedae.GuiExPatternTerminalMixin", + "extendedae.HighlightButtonMixin", + "jei.EncodePatternTransferHandlerMixin" ], "mixins": [ - "ContainerExPatternProviderMixin", - "ContainerExPatternTerminalMixin", - "ContainerWirelessExPatternTerminalMixin", - "ContainerUWirelessExPatternTerminalMixin", - "TileExPatternProviderMixin", - "PartExPatternProviderMixin", - "PatternEncodingTermMenuMixin", - "ContainerPatternEncodingTermMenuMixin", - "MEStorageMenuMixin", - "accessor.MEStorageMenuAccessor", - "accessor.PatternEncodingTermMenuAccessor", + "ae2.ContainerPatternEncodingTermMenuMixin", + "ae2.MEStorageMenuMixin", + "ae2.PatternEncodingTermMenuMixin", "ae2.PatternProviderLogicAdvancedMixin", "ae2.PatternProviderMenuAdvancedMixin", - "accessor.PatternProviderMenuAdvancedAccessor", - "accessor.PatternProviderLogicAccessor" + "ae2.accessor.MEStorageMenuAccessor", + "ae2.accessor.PatternEncodingTermMenuAccessor", + "ae2.accessor.PatternProviderLogicAccessor", + "ae2.accessor.PatternProviderLogicPatternInputsAccessor", + "ae2.accessor.PatternProviderMenuAdvancedAccessor", + "ae2WTlib.ContainerUWirelessExPatternTerminalMixin", + "extendedae.ContainerExPatternProviderMixin", + "extendedae.ContainerExPatternTerminalMixin", + "extendedae.ContainerWirelessExPatternTerminalMixin", + "extendedae.PartExPatternProviderMixin", + "extendedae.TileExPatternProviderMixin" ], "injectors": { "defaultRequire": 1