This commit is contained in:
@@ -1,7 +1,5 @@
|
|||||||
package com.le.teleportmirror;
|
package com.le.teleportmirror;
|
||||||
|
|
||||||
import com.le.teleportmirror.screen.PlayerSelectionScreen;
|
|
||||||
import net.minecraft.client.Minecraft;
|
|
||||||
import net.minecraft.network.FriendlyByteBuf;
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
import net.minecraft.network.codec.StreamCodec;
|
import net.minecraft.network.codec.StreamCodec;
|
||||||
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
|
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
|
||||||
@@ -63,9 +61,13 @@ public class MirrorNetwork {
|
|||||||
|
|
||||||
private static void handleOpenSelection(OpenPlayerSelectionPayload payload, IPayloadContext context) {
|
private static void handleOpenSelection(OpenPlayerSelectionPayload payload, IPayloadContext context) {
|
||||||
context.enqueueWork(() -> {
|
context.enqueueWork(() -> {
|
||||||
Minecraft client = Minecraft.getInstance();
|
try {
|
||||||
MirrorTier tier = MirrorTier.valueOf(payload.tierName.toUpperCase());
|
Class<?> clientHandlerClass = Class.forName("com.le.teleportmirror.MirrorNetworkClient");
|
||||||
client.setScreen(new PlayerSelectionScreen(payload.playerNames, payload.playerUuids, tier));
|
clientHandlerClass.getMethod("openPlayerSelection", OpenPlayerSelectionPayload.class)
|
||||||
|
.invoke(null, payload);
|
||||||
|
} catch (ReflectiveOperationException e) {
|
||||||
|
throw new RuntimeException("Failed to open player selection screen", e);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
16
src/main/java/com/le/teleportmirror/MirrorNetworkClient.java
Normal file
16
src/main/java/com/le/teleportmirror/MirrorNetworkClient.java
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
package com.le.teleportmirror;
|
||||||
|
|
||||||
|
import com.le.teleportmirror.screen.PlayerSelectionScreen;
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.neoforged.api.distmarker.Dist;
|
||||||
|
import net.neoforged.api.distmarker.OnlyIn;
|
||||||
|
|
||||||
|
@OnlyIn(Dist.CLIENT)
|
||||||
|
public class MirrorNetworkClient {
|
||||||
|
|
||||||
|
public static void openPlayerSelection(MirrorNetwork.OpenPlayerSelectionPayload payload) {
|
||||||
|
Minecraft client = Minecraft.getInstance();
|
||||||
|
MirrorTier tier = MirrorTier.valueOf(payload.tierName().toUpperCase());
|
||||||
|
client.setScreen(new PlayerSelectionScreen(payload.playerNames(), payload.playerUuids(), tier));
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user