Skip to content

Commit d3061c7

Browse files
committed
没隔离干净,继续隔离
1 parent 499d255 commit d3061c7

File tree

3 files changed

+27
-17
lines changed

3 files changed

+27
-17
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,35 @@
11
package com.hexagram2021.real_peaceful_mode.client;
22

33
import com.hexagram2021.real_peaceful_mode.client.screens.MissionListScreen;
4+
import com.hexagram2021.real_peaceful_mode.common.crafting.MessagedMission;
5+
import com.hexagram2021.real_peaceful_mode.common.crafting.menu.MissionMessageMenu;
46
import com.hexagram2021.real_peaceful_mode.common.mission.MissionManager;
7+
import com.hexagram2021.real_peaceful_mode.common.util.RPMLogger;
58
import net.minecraft.client.Minecraft;
9+
import net.minecraft.client.player.LocalPlayer;
10+
import net.minecraft.world.entity.player.Player;
11+
import net.minecraft.world.inventory.AbstractContainerMenu;
612

713
import java.util.List;
14+
import java.util.Objects;
815

916
public final class ScreenManager {
1017
public static void openMissionListScreen(List<MissionManager.Mission> activeMissions, List<MissionManager.Mission> finishedMissions) {
1118
Minecraft.getInstance().setScreen(new MissionListScreen(activeMissions, finishedMissions));
1219
}
20+
21+
public static void openMissionMessageScreen(MessagedMission mission, int containerId) {
22+
LocalPlayer player = Minecraft.getInstance().player;
23+
RPMLogger.debug(mission.createTag());
24+
if(player != null) {
25+
AbstractContainerMenu menu = player.containerMenu;
26+
if(menu.containerId == containerId && menu instanceof MissionMessageMenu missionMessageMenu) {
27+
missionMessageMenu.setMission(mission);
28+
}
29+
}
30+
}
31+
32+
public static Player getLocalPlayer() {
33+
return Objects.requireNonNull(Minecraft.getInstance().player);
34+
}
1335
}

src/main/java/com/hexagram2021/real_peaceful_mode/common/crafting/MessagedMissionInstance.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package com.hexagram2021.real_peaceful_mode.common.crafting;
22

33
import com.google.common.collect.ImmutableList;
4+
import com.hexagram2021.real_peaceful_mode.client.ScreenManager;
45
import com.hexagram2021.real_peaceful_mode.common.mission.MissionManager;
5-
import net.minecraft.client.Minecraft;
66
import net.minecraft.nbt.CompoundTag;
77
import net.minecraft.nbt.ListTag;
88
import net.minecraft.nbt.Tag;
@@ -11,7 +11,6 @@
1111

1212
import javax.annotation.Nullable;
1313
import java.util.List;
14-
import java.util.Objects;
1514

1615
public class MessagedMissionInstance implements MessagedMission {
1716
private final Player player;
@@ -26,11 +25,11 @@ public MessagedMissionInstance(Player player, @Nullable LivingEntity npc, List<M
2625
}
2726

2827
public MessagedMissionInstance(CompoundTag nbt) {
29-
this.player = Minecraft.getInstance().player;
28+
this.player = ScreenManager.getLocalPlayer();
3029
LivingEntity npc = null;
3130
if(nbt.contains(NPC_ID, Tag.TAG_INT)) {
3231
int npcId = nbt.getInt(NPC_ID);
33-
npc = (LivingEntity) Objects.requireNonNull(this.player).level().getEntity(npcId);
32+
npc = (LivingEntity) this.player.level().getEntity(npcId);
3433
}
3534
this.npc = npc;
3635
ListTag list = nbt.getList(MESSAGE_LIST, Tag.TAG_COMPOUND);

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

+2-13
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,9 @@
11
package com.hexagram2021.real_peaceful_mode.network;
22

3+
import com.hexagram2021.real_peaceful_mode.client.ScreenManager;
34
import com.hexagram2021.real_peaceful_mode.common.crafting.MessagedMission;
45
import com.hexagram2021.real_peaceful_mode.common.crafting.MessagedMissionInstance;
5-
import com.hexagram2021.real_peaceful_mode.common.crafting.menu.MissionMessageMenu;
6-
import com.hexagram2021.real_peaceful_mode.common.util.RPMLogger;
7-
import net.minecraft.client.Minecraft;
8-
import net.minecraft.client.player.LocalPlayer;
96
import net.minecraft.network.FriendlyByteBuf;
10-
import net.minecraft.world.inventory.AbstractContainerMenu;
117
import net.minecraftforge.network.NetworkEvent;
128

139
import java.util.Objects;
@@ -34,13 +30,6 @@ public void write(FriendlyByteBuf buf) {
3430

3531
@Override
3632
public void handle(NetworkEvent.Context context) {
37-
LocalPlayer player = Minecraft.getInstance().player;
38-
RPMLogger.debug(this.mission.createTag());
39-
if(player != null) {
40-
AbstractContainerMenu menu = player.containerMenu;
41-
if(menu.containerId == this.containerId && menu instanceof MissionMessageMenu missionMessageMenu) {
42-
missionMessageMenu.setMission(mission);
43-
}
44-
}
33+
ScreenManager.openMissionMessageScreen(this.mission, this.containerId);
4534
}
4635
}

0 commit comments

Comments
 (0)