From b7d29ecf2768f19d054e716e7dbf18d0faf02f1b Mon Sep 17 00:00:00 2001 From: Micle Date: Sun, 16 Jan 2022 13:34:18 +0000 Subject: [PATCH] Renamed RecipeUpdateEventHandler to UpdateRecipesEventHandler. Added method for mod config reload event on server-side to send packet to client. --- ...er.java => UpdateRecipesEventHandler.java} | 29 +++++++++++-------- .../totemofreviving/setup/Registration.java | 6 ++-- 2 files changed, 20 insertions(+), 15 deletions(-) rename src/main/java/dev/micle/totemofreviving/event/{RecipeUpdateEventHandler.java => UpdateRecipesEventHandler.java} (68%) diff --git a/src/main/java/dev/micle/totemofreviving/event/RecipeUpdateEventHandler.java b/src/main/java/dev/micle/totemofreviving/event/UpdateRecipesEventHandler.java similarity index 68% rename from src/main/java/dev/micle/totemofreviving/event/RecipeUpdateEventHandler.java rename to src/main/java/dev/micle/totemofreviving/event/UpdateRecipesEventHandler.java index 93544d6..e549823 100644 --- a/src/main/java/dev/micle/totemofreviving/event/RecipeUpdateEventHandler.java +++ b/src/main/java/dev/micle/totemofreviving/event/UpdateRecipesEventHandler.java @@ -3,6 +3,8 @@ package dev.micle.totemofreviving.event; import dev.micle.totemofreviving.TotemOfReviving; import dev.micle.totemofreviving.config.Config; import dev.micle.totemofreviving.item.StrawTotemItem; +import dev.micle.totemofreviving.network.Network; +import dev.micle.totemofreviving.network.UpdateRecipesPacket; import net.minecraft.client.Minecraft; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.crafting.IRecipe; @@ -12,26 +14,29 @@ import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.event.entity.EntityJoinWorldEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.config.ModConfig; +import net.minecraftforge.fml.network.PacketDistributor; import java.util.ArrayList; -public class RecipeUpdateEventHandler { +public class UpdateRecipesEventHandler { public static class ModBus { @SubscribeEvent @OnlyIn(Dist.CLIENT) - public void onModConfigReloadEvent(ModConfig.Reloading event) { + public void onClientModConfigReloadEvent(ModConfig.Reloading event) { + if (!event.getConfig().getModId().equals(TotemOfReviving.MOD_ID) || + Minecraft.getInstance().getSingleplayerServer() == null) { + return; + } + updateRecipeManager(Minecraft.getInstance().getSingleplayerServer().getRecipeManager()); + } + + @SubscribeEvent + @OnlyIn(Dist.DEDICATED_SERVER) + public void onServerModConfigReloadEvent(ModConfig.Reloading event) { if (!event.getConfig().getModId().equals(TotemOfReviving.MOD_ID)) { return; } - if (Minecraft.getInstance().getSingleplayerServer() != null) { - updateRecipeManager(Minecraft.getInstance().getSingleplayerServer().getRecipeManager()); - return; - } - if (Minecraft.getInstance().getConnection() != null) { - updateRecipeManager(Minecraft.getInstance().getConnection().getRecipeManager()); - return; - } - System.out.println("FAILED TO GET RECIPE MANAGER!"); + Network.channel.send(PacketDistributor.ALL.noArg(), new UpdateRecipesPacket()); } } @@ -44,7 +49,7 @@ public class RecipeUpdateEventHandler { } } - private static void updateRecipeManager(RecipeManager recipeManager) { + public static void updateRecipeManager(RecipeManager recipeManager) { ArrayList> newRecipes = new ArrayList<>(); for (IRecipe recipe : recipeManager.getRecipes()) { if (recipe.getResultItem().getItem() instanceof StrawTotemItem) { diff --git a/src/main/java/dev/micle/totemofreviving/setup/Registration.java b/src/main/java/dev/micle/totemofreviving/setup/Registration.java index 4db7989..b4c5a2d 100755 --- a/src/main/java/dev/micle/totemofreviving/setup/Registration.java +++ b/src/main/java/dev/micle/totemofreviving/setup/Registration.java @@ -1,7 +1,7 @@ package dev.micle.totemofreviving.setup; import dev.micle.totemofreviving.TotemOfReviving; -import dev.micle.totemofreviving.event.RecipeUpdateEventHandler; +import dev.micle.totemofreviving.event.UpdateRecipesEventHandler; import net.minecraft.item.Item; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.eventbus.api.IEventBus; @@ -20,9 +20,9 @@ public class Registration { ITEMS.register(modEventBus); ModItems.register(); - modEventBus.register(new RecipeUpdateEventHandler.ModBus()); + modEventBus.register(new UpdateRecipesEventHandler.ModBus()); - MinecraftForge.EVENT_BUS.register(new RecipeUpdateEventHandler.EventBus()); + MinecraftForge.EVENT_BUS.register(new UpdateRecipesEventHandler.EventBus()); } private static > DeferredRegister create(IForgeRegistry registry) {