Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
66a8feaaaf
|
|
@ -5,6 +5,7 @@ import com.extendedae_plus.network.*;
|
||||||
import com.extendedae_plus.network.crafting.CraftingMonitorJumpC2SPacket;
|
import com.extendedae_plus.network.crafting.CraftingMonitorJumpC2SPacket;
|
||||||
import com.extendedae_plus.network.crafting.CraftingMonitorOpenProviderC2SPacket;
|
import com.extendedae_plus.network.crafting.CraftingMonitorOpenProviderC2SPacket;
|
||||||
import com.extendedae_plus.network.crafting.OpenCraftFromJeiC2SPacket;
|
import com.extendedae_plus.network.crafting.OpenCraftFromJeiC2SPacket;
|
||||||
|
import com.extendedae_plus.network.crafting.SetSearchTextS2CPacket;
|
||||||
import com.extendedae_plus.network.meInterface.InterfaceAdjustConfigAmountC2SPacket;
|
import com.extendedae_plus.network.meInterface.InterfaceAdjustConfigAmountC2SPacket;
|
||||||
import com.extendedae_plus.network.pattern.CancelPendingPatternC2SPacket;
|
import com.extendedae_plus.network.pattern.CancelPendingPatternC2SPacket;
|
||||||
import com.extendedae_plus.network.pattern.CreateCtrlQPatternC2SPacket;
|
import com.extendedae_plus.network.pattern.CreateCtrlQPatternC2SPacket;
|
||||||
|
|
@ -45,6 +46,12 @@ public final class ModNetwork {
|
||||||
.decoder(OpenCraftFromJeiC2SPacket::decode)
|
.decoder(OpenCraftFromJeiC2SPacket::decode)
|
||||||
.consumerNetworkThread(OpenCraftFromJeiC2SPacket::handle)
|
.consumerNetworkThread(OpenCraftFromJeiC2SPacket::handle)
|
||||||
.add();
|
.add();
|
||||||
|
|
||||||
|
CHANNEL.messageBuilder(SetSearchTextS2CPacket.class, nextId(), NetworkDirection.PLAY_TO_CLIENT)
|
||||||
|
.encoder(SetSearchTextS2CPacket::encode)
|
||||||
|
.decoder(SetSearchTextS2CPacket::decode)
|
||||||
|
.consumerNetworkThread(SetSearchTextS2CPacket::handle)
|
||||||
|
.add();
|
||||||
|
|
||||||
CHANNEL.messageBuilder(PullFromJeiOrCraftC2SPacket.class, nextId(), NetworkDirection.PLAY_TO_SERVER)
|
CHANNEL.messageBuilder(PullFromJeiOrCraftC2SPacket.class, nextId(), NetworkDirection.PLAY_TO_SERVER)
|
||||||
.encoder(PullFromJeiOrCraftC2SPacket::encode)
|
.encoder(PullFromJeiOrCraftC2SPacket::encode)
|
||||||
|
|
|
||||||
|
|
@ -3,20 +3,20 @@ package com.extendedae_plus.network.crafting;
|
||||||
import appeng.api.networking.IGrid;
|
import appeng.api.networking.IGrid;
|
||||||
import appeng.api.stacks.AEKey;
|
import appeng.api.stacks.AEKey;
|
||||||
import appeng.api.stacks.GenericStack;
|
import appeng.api.stacks.GenericStack;
|
||||||
import appeng.client.gui.me.common.MEStorageScreen;
|
|
||||||
import appeng.items.tools.powered.WirelessTerminalItem;
|
import appeng.items.tools.powered.WirelessTerminalItem;
|
||||||
import appeng.menu.locator.MenuLocators;
|
import appeng.menu.locator.MenuLocators;
|
||||||
import appeng.menu.me.crafting.CraftAmountMenu;
|
import appeng.menu.me.crafting.CraftAmountMenu;
|
||||||
|
import com.extendedae_plus.init.ModNetwork;
|
||||||
import com.extendedae_plus.menu.locator.CuriosItemLocator;
|
import com.extendedae_plus.menu.locator.CuriosItemLocator;
|
||||||
import com.extendedae_plus.mixin.ae2.accessor.MEStorageScreenAccessor;
|
|
||||||
import com.extendedae_plus.mixin.extendedae.accessor.GuiExPatternTerminalAccessor;
|
|
||||||
import com.extendedae_plus.util.wireless.WirelessTerminalLocator;
|
import com.extendedae_plus.util.wireless.WirelessTerminalLocator;
|
||||||
import com.glodblock.github.extendedae.client.gui.GuiExPatternTerminal;
|
|
||||||
import de.mari_023.ae2wtlib.wut.WUTHandler;
|
import de.mari_023.ae2wtlib.wut.WUTHandler;
|
||||||
import net.minecraft.client.Minecraft;
|
|
||||||
import net.minecraft.network.FriendlyByteBuf;
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
import net.minecraft.server.level.ServerPlayer;
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
import net.minecraftforge.network.NetworkEvent;
|
import net.minecraftforge.network.NetworkEvent;
|
||||||
|
import net.minecraftforge.network.NetworkDirection;
|
||||||
|
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
|
|
@ -74,21 +74,12 @@ public class OpenCraftFromJeiC2SPacket {
|
||||||
String name = what.getDisplayName().getString();
|
String name = what.getDisplayName().getString();
|
||||||
if (name == null || name.isEmpty()) return;
|
if (name == null || name.isEmpty()) return;
|
||||||
|
|
||||||
var screen = Minecraft.getInstance().screen;
|
// 发送 S2C 包让客户端更新搜索框
|
||||||
if (screen instanceof MEStorageScreen<?> me) {
|
ModNetwork.CHANNEL.sendTo(
|
||||||
try {
|
new SetSearchTextS2CPacket(name),
|
||||||
MEStorageScreenAccessor acc = (MEStorageScreenAccessor) me;
|
player.connection.connection,
|
||||||
acc.eap$getSearchField().setValue(name);
|
NetworkDirection.PLAY_TO_CLIENT
|
||||||
acc.eap$setSearchText(name);
|
);
|
||||||
} catch (Throwable ignored) {
|
|
||||||
}
|
|
||||||
} else if (screen instanceof GuiExPatternTerminal<?> gpt) {
|
|
||||||
try {
|
|
||||||
GuiExPatternTerminalAccessor acc = (GuiExPatternTerminalAccessor) gpt;
|
|
||||||
acc.getSearchOutField().setValue(name);
|
|
||||||
} catch (Throwable ignored) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -111,21 +102,12 @@ public class OpenCraftFromJeiC2SPacket {
|
||||||
String name=what.getDisplayName().getString();
|
String name=what.getDisplayName().getString();
|
||||||
if (name == null || name.isEmpty()) return;
|
if (name == null || name.isEmpty()) return;
|
||||||
|
|
||||||
// 写入 AE2 终端的搜索框
|
// 发送 S2C 包让客户端更新搜索框
|
||||||
var screen = Minecraft.getInstance().screen;
|
ModNetwork.CHANNEL.sendTo(
|
||||||
if (screen instanceof MEStorageScreen<?> me) {
|
new SetSearchTextS2CPacket(name),
|
||||||
try {
|
player.connection.connection,
|
||||||
MEStorageScreenAccessor acc = (MEStorageScreenAccessor) me;
|
NetworkDirection.PLAY_TO_CLIENT
|
||||||
acc.eap$getSearchField().setValue(name);
|
);
|
||||||
acc.eap$setSearchText(name); // 同步到 Repo 并刷新
|
|
||||||
} catch (Throwable ignored) {
|
|
||||||
}
|
|
||||||
}else if (screen instanceof GuiExPatternTerminal<?> gpt) {
|
|
||||||
try {
|
|
||||||
GuiExPatternTerminalAccessor acc = (GuiExPatternTerminalAccessor) gpt;
|
|
||||||
acc.getSearchOutField().setValue(name);
|
|
||||||
}catch (Throwable ignored) {}
|
|
||||||
}
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,53 @@
|
||||||
|
package com.extendedae_plus.network.crafting;
|
||||||
|
|
||||||
|
import appeng.client.gui.me.common.MEStorageScreen;
|
||||||
|
import com.extendedae_plus.mixin.ae2.accessor.MEStorageScreenAccessor;
|
||||||
|
import com.extendedae_plus.mixin.extendedae.accessor.GuiExPatternTerminalAccessor;
|
||||||
|
import com.glodblock.github.extendedae.client.gui.GuiExPatternTerminal;
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
|
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||||
|
import net.minecraftforge.network.NetworkEvent;
|
||||||
|
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
|
public class SetSearchTextS2CPacket {
|
||||||
|
private final String text;
|
||||||
|
|
||||||
|
public SetSearchTextS2CPacket(String text) {
|
||||||
|
this.text = text;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void encode(SetSearchTextS2CPacket msg, FriendlyByteBuf buf) {
|
||||||
|
buf.writeUtf(msg.text, 256);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static SetSearchTextS2CPacket decode(FriendlyByteBuf buf) {
|
||||||
|
return new SetSearchTextS2CPacket(buf.readUtf(256));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void handle(SetSearchTextS2CPacket msg, Supplier<NetworkEvent.Context> ctx) {
|
||||||
|
ctx.get().enqueueWork(() -> handleClient(msg));
|
||||||
|
ctx.get().setPacketHandled(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@OnlyIn(Dist.CLIENT)
|
||||||
|
private static void handleClient(SetSearchTextS2CPacket msg) {
|
||||||
|
var screen = Minecraft.getInstance().screen;
|
||||||
|
if (screen instanceof MEStorageScreen<?> me) {
|
||||||
|
try {
|
||||||
|
MEStorageScreenAccessor acc = (MEStorageScreenAccessor) me;
|
||||||
|
acc.eap$getSearchField().setValue(msg.text);
|
||||||
|
acc.eap$setSearchText(msg.text);
|
||||||
|
} catch (Throwable ignored) {
|
||||||
|
}
|
||||||
|
} else if (screen instanceof GuiExPatternTerminal<?> gpt) {
|
||||||
|
try {
|
||||||
|
GuiExPatternTerminalAccessor acc = (GuiExPatternTerminalAccessor) gpt;
|
||||||
|
acc.getSearchOutField().setValue(msg.text);
|
||||||
|
} catch (Throwable ignored) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user