diff --git a/src/main/java/dev/micle/totemofreviving/event/UpdateRecipesEventHandler.java b/src/main/java/dev/micle/totemofreviving/event/UpdateRecipesEventHandler.java deleted file mode 100644 index e549823..0000000 --- a/src/main/java/dev/micle/totemofreviving/event/UpdateRecipesEventHandler.java +++ /dev/null @@ -1,70 +0,0 @@ -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; -import net.minecraft.item.crafting.RecipeManager; -import net.minecraftforge.api.distmarker.Dist; -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 UpdateRecipesEventHandler { - public static class ModBus { - @SubscribeEvent - @OnlyIn(Dist.CLIENT) - 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; - } - Network.channel.send(PacketDistributor.ALL.noArg(), new UpdateRecipesPacket()); - } - } - - public static class EventBus { - @SubscribeEvent - @OnlyIn(Dist.CLIENT) - public void onPlayerJoinEvent(EntityJoinWorldEvent event) { - if (!(event.getEntity() instanceof PlayerEntity)) { return; } - updateRecipeManager(event.getEntity().level.getRecipeManager()); - } - } - - public static void updateRecipeManager(RecipeManager recipeManager) { - ArrayList> newRecipes = new ArrayList<>(); - for (IRecipe recipe : recipeManager.getRecipes()) { - if (recipe.getResultItem().getItem() instanceof StrawTotemItem) { - StrawTotemItem.setRecipe(recipe); - if (!Config.Server.getStrawTotemConfig().getIsEnabled()) { - continue; - } - } - newRecipes.add(recipe); - } - - if (!newRecipes.contains(StrawTotemItem.getRecipe()) && Config.Server.getStrawTotemConfig().getIsEnabled()) { - newRecipes.add(StrawTotemItem.getRecipe()); - } - - recipeManager.replaceRecipes(newRecipes); - } -} diff --git a/src/main/java/dev/micle/totemofreviving/network/UpdateRecipesPacket.java b/src/main/java/dev/micle/totemofreviving/network/UpdateRecipesPacket.java deleted file mode 100644 index 67667ac..0000000 --- a/src/main/java/dev/micle/totemofreviving/network/UpdateRecipesPacket.java +++ /dev/null @@ -1,37 +0,0 @@ -package dev.micle.totemofreviving.network; - -import dev.micle.totemofreviving.event.UpdateRecipesEventHandler; -import net.minecraft.client.Minecraft; -import net.minecraft.network.PacketBuffer; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.fml.DistExecutor; -import net.minecraftforge.fml.network.NetworkEvent; - -import java.util.function.Supplier; - -public class UpdateRecipesPacket { - public UpdateRecipesPacket() {} - - public static void encode(final UpdateRecipesPacket packet, final PacketBuffer buffer) { - Network.writeVersionInfo(buffer); - } - - public static UpdateRecipesPacket decode(final PacketBuffer buffer) { - Network.checkVersion(buffer); - return new UpdateRecipesPacket(); - } - - public static void handle(final UpdateRecipesPacket packet, final Supplier contextSupplier) { - final NetworkEvent.Context context = contextSupplier.get(); - context.enqueueWork(() -> { - DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> ClientPacketHandler.handle(packet, contextSupplier)); - }); - context.setPacketHandled(true); - } - - private static class ClientPacketHandler { - private static void handle(UpdateRecipesPacket packet, Supplier contextSupplier) { - UpdateRecipesEventHandler.updateRecipeManager(Minecraft.getInstance().getConnection().getRecipeManager()); - } - } -}