File tree 2 files changed +22
-5
lines changed
common/src/main/java/dev/dubhe/anvilcraft/network
forge/src/main/java/dev/dubhe/anvilcraft/event/forge
2 files changed +22
-5
lines changed Original file line number Diff line number Diff line change 8
8
import dev .dubhe .anvilcraft .data .recipe .anvil .RecipeOutcome ;
9
9
import dev .dubhe .anvilcraft .data .recipe .anvil .RecipePredicate ;
10
10
import dev .dubhe .anvilcraft .init .ModNetworks ;
11
+ import dev .emi .emi .runtime .EmiReloadManager ;
11
12
import lombok .Getter ;
13
+ import me .shedaniel .rei .api .client .REIRuntime ;
14
+ import me .shedaniel .rei .api .common .registry .ReloadStage ;
12
15
import net .fabricmc .api .EnvType ;
13
16
import net .fabricmc .api .Environment ;
14
17
import net .minecraft .client .Minecraft ;
23
26
public class ClientRecipeManagerSyncPack implements Packet {
24
27
private final List <AnvilRecipe > anvilRecipes ;
25
28
29
+ private boolean isLoaded (String clazz ) {
30
+ return ClientRecipeManagerSyncPack .class .getClassLoader ().getResource (clazz ) != null ;
31
+ }
32
+
26
33
/**
27
34
* 电网同步
28
35
*/
@@ -80,5 +87,11 @@ public void encode(@NotNull FriendlyByteBuf buf) {
80
87
@ Environment (EnvType .CLIENT )
81
88
public void handler () {
82
89
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
+ }
83
96
}
84
97
}
Original file line number Diff line number Diff line change 5
5
import dev .dubhe .anvilcraft .api .recipe .AnvilRecipeManager ;
6
6
import dev .dubhe .anvilcraft .event .TooltipEventListener ;
7
7
import dev .dubhe .anvilcraft .network .ClientRecipeManagerSyncPack ;
8
+ import net .minecraft .server .level .ServerPlayer ;
8
9
import net .minecraft .world .InteractionResult ;
9
10
import net .minecraftforge .event .entity .player .ItemTooltipEvent ;
10
11
import net .minecraftforge .event .entity .player .PlayerInteractEvent ;
11
12
import net .minecraftforge .eventbus .api .SubscribeEvent ;
12
13
import net .minecraftforge .fml .common .Mod ;
13
- import net .minecraftforge .network .NetworkEvent ;
14
14
import org .jetbrains .annotations .NotNull ;
15
15
16
16
@@ -37,11 +37,15 @@ public static void itemTooltip(@NotNull ItemTooltipEvent event) {
37
37
TooltipEventListener .addTooltip (event .getItemStack (), event .getToolTip ());
38
38
}
39
39
40
+ /**
41
+ * 服务器玩家登陆事件
42
+ */
40
43
@ 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
43
46
) {
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 );
46
50
}
47
51
}
You can’t perform that action at this time.
0 commit comments