Skip to content

Commit 499d255

Browse files
committed
隔离客户端与服务端的Screen
1 parent 8469150 commit 499d255

File tree

3 files changed

+18
-3
lines changed

3 files changed

+18
-3
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.hexagram2021.real_peaceful_mode.client;
2+
3+
import com.hexagram2021.real_peaceful_mode.client.screens.MissionListScreen;
4+
import com.hexagram2021.real_peaceful_mode.common.mission.MissionManager;
5+
import net.minecraft.client.Minecraft;
6+
7+
import java.util.List;
8+
9+
public final class ScreenManager {
10+
public static void openMissionListScreen(List<MissionManager.Mission> activeMissions, List<MissionManager.Mission> finishedMissions) {
11+
Minecraft.getInstance().setScreen(new MissionListScreen(activeMissions, finishedMissions));
12+
}
13+
}

src/main/java/com/hexagram2021/real_peaceful_mode/client/screens/MissionListScreen.java

+3
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,16 @@
1212
import net.minecraft.util.FormattedCharSequence;
1313
import net.minecraft.util.Mth;
1414
import net.minecraft.util.Tuple;
15+
import net.minecraftforge.api.distmarker.Dist;
16+
import net.minecraftforge.api.distmarker.OnlyIn;
1517

1618
import javax.annotation.Nullable;
1719
import java.util.List;
1820
import java.util.stream.Collectors;
1921

2022
import static com.hexagram2021.real_peaceful_mode.RealPeacefulMode.MODID;
2123

24+
@OnlyIn(Dist.CLIENT)
2225
public class MissionListScreen extends Screen {
2326
private static final int MAX_MISSIONS_PER_SCREEN = 6;
2427

src/main/java/com/hexagram2021/real_peaceful_mode/network/GetMissionsPacket.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@
22

33
import com.google.common.collect.Lists;
44
import com.hexagram2021.real_peaceful_mode.RealPeacefulMode;
5-
import com.hexagram2021.real_peaceful_mode.client.screens.MissionListScreen;
5+
import com.hexagram2021.real_peaceful_mode.client.ScreenManager;
66
import com.hexagram2021.real_peaceful_mode.common.ForgeEventHandler;
77
import com.hexagram2021.real_peaceful_mode.common.mission.IPlayerListWithMissions;
88
import com.hexagram2021.real_peaceful_mode.common.mission.MissionManager;
99
import com.hexagram2021.real_peaceful_mode.common.mission.PlayerMissions;
10-
import net.minecraft.client.Minecraft;
1110
import net.minecraft.network.FriendlyByteBuf;
1211
import net.minecraft.resources.ResourceLocation;
1312
import net.minecraft.server.level.ServerPlayer;
@@ -85,7 +84,7 @@ public void handle(NetworkEvent.Context context) {
8584
assert (sender == null) ^ (this.type == PacketType.REQUEST);
8685
context.enqueueWork(() -> {
8786
if(sender == null) {
88-
Minecraft.getInstance().setScreen(new MissionListScreen(this.activeMissions, this.finishedMissions));
87+
ScreenManager.openMissionListScreen(this.activeMissions, this.finishedMissions);
8988
} else {
9089
PlayerMissions playerMissions = ((IPlayerListWithMissions) Objects.requireNonNull(sender.getServer()).getPlayerList()).getPlayerMissions(sender);
9190
List<MissionManager.Mission> activeMissions = playerMissions.activeMissions()

0 commit comments

Comments
 (0)