Removed old way of updating recipes based on config reload. Reason: doesn't work on server.

This commit is contained in:
2022-01-16 16:45:27 +00:00
parent 288a034d63
commit 6ecf7c414d
2 changed files with 0 additions and 107 deletions

View File

@ -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<IRecipe<?>> 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);
}
}

View File

@ -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<NetworkEvent.Context> 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<NetworkEvent.Context> contextSupplier) {
UpdateRecipesEventHandler.updateRecipeManager(Minecraft.getInstance().getConnection().getRecipeManager());
}
}
}