Skip to content

Commit b920364

Browse files
authored
Merge pull request #989 from dmzz-yyhyy/rei_fixed
修正各种i的同步时的reload
2 parents 12b1e85 + 023c71b commit b920364

File tree

2 files changed

+22
-5
lines changed

2 files changed

+22
-5
lines changed

common/src/main/java/dev/dubhe/anvilcraft/network/ClientRecipeManagerSyncPack.java

+13
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@
88
import dev.dubhe.anvilcraft.data.recipe.anvil.RecipeOutcome;
99
import dev.dubhe.anvilcraft.data.recipe.anvil.RecipePredicate;
1010
import dev.dubhe.anvilcraft.init.ModNetworks;
11+
import dev.emi.emi.runtime.EmiReloadManager;
1112
import lombok.Getter;
13+
import me.shedaniel.rei.api.client.REIRuntime;
14+
import me.shedaniel.rei.api.common.registry.ReloadStage;
1215
import net.fabricmc.api.EnvType;
1316
import net.fabricmc.api.Environment;
1417
import net.minecraft.client.Minecraft;
@@ -23,6 +26,10 @@
2326
public class ClientRecipeManagerSyncPack implements Packet {
2427
private final List<AnvilRecipe> anvilRecipes;
2528

29+
private boolean isLoaded(String clazz) {
30+
return ClientRecipeManagerSyncPack.class.getClassLoader().getResource(clazz) != null;
31+
}
32+
2633
/**
2734
* 电网同步
2835
*/
@@ -80,5 +87,11 @@ public void encode(@NotNull FriendlyByteBuf buf) {
8087
@Environment(EnvType.CLIENT)
8188
public void handler() {
8289
Minecraft.getInstance().execute(() -> AnvilRecipeManager.setAnvilRecipeList(this.anvilRecipes));
90+
if (this.isLoaded("me/shedaniel/rei/impl/client/gui/screen/DefaultDisplayViewingScreen.class")) {
91+
REIRuntime.getInstance().startReload(ReloadStage.START);
92+
}
93+
if (this.isLoaded("dev/emi/emi/api/EmiPlugin.class")) {
94+
EmiReloadManager.reload();
95+
}
8396
}
8497
}

forge/src/main/java/dev/dubhe/anvilcraft/event/forge/PlayerEventListener.java

+9-5
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
import dev.dubhe.anvilcraft.api.recipe.AnvilRecipeManager;
66
import dev.dubhe.anvilcraft.event.TooltipEventListener;
77
import dev.dubhe.anvilcraft.network.ClientRecipeManagerSyncPack;
8+
import net.minecraft.server.level.ServerPlayer;
89
import net.minecraft.world.InteractionResult;
910
import net.minecraftforge.event.entity.player.ItemTooltipEvent;
1011
import net.minecraftforge.event.entity.player.PlayerInteractEvent;
1112
import net.minecraftforge.eventbus.api.SubscribeEvent;
1213
import net.minecraftforge.fml.common.Mod;
13-
import net.minecraftforge.network.NetworkEvent;
1414
import org.jetbrains.annotations.NotNull;
1515

1616

@@ -37,11 +37,15 @@ public static void itemTooltip(@NotNull ItemTooltipEvent event) {
3737
TooltipEventListener.addTooltip(event.getItemStack(), event.getToolTip());
3838
}
3939

40+
/**
41+
* 服务器玩家登陆事件
42+
*/
4043
@SubscribeEvent
41-
public static void serverCustomPayloadEvent(
42-
@NotNull NetworkEvent.LoginPayloadEvent event
44+
public static void layerLoggedInEvent(
45+
@NotNull net.minecraftforge.event.entity.player.PlayerEvent.PlayerLoggedInEvent event
4346
) {
44-
new ClientRecipeManagerSyncPack(AnvilRecipeManager.getAnvilRecipeList())
45-
.send(event.getSource().get().getSender());
47+
if (event.getEntity() instanceof ServerPlayer serverPlayer)
48+
new ClientRecipeManagerSyncPack(AnvilRecipeManager.getAnvilRecipeList())
49+
.send(serverPlayer);
4650
}
4751
}

0 commit comments

Comments
 (0)