From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: nostalgic853 Date: Tue, 25 Oct 2022 00:57:45 +0800 Subject: [PATCH] Carpet-Fixes: Use optimized RecipeManager Original license: MIT Original project: https://github.com/fxmorin/carpet-fixes Optimized the RecipeManager getFirstMatch call to be up to 3x faster This is a fully vanilla optimization. Improves: [Blast]Furnace/Campfire/Smoker/Stonecutter/Crafting/Sheep Color Choosing This was mostly made for the auto crafting table, since the performance boost is much more visible while using that mod diff --git a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java index 9ffb6999171f602f0b113dac40e0130410cad870..3efac27f360b45e53a11374cf9a051f9eee8ddf3 100644 --- a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java +++ b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java @@ -11,8 +11,8 @@ import com.google.gson.JsonParseException; import com.google.gson.JsonSyntaxException; import com.mojang.datafixers.util.Pair; import com.mojang.logging.LogUtils; +import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.List; @@ -134,7 +134,7 @@ public class RecipeManager extends SimpleJsonResourceReloadListener { } public > List getAllRecipesFor(RecipeType type) { - return List.copyOf(this.byType(type).values()); + return (List)new ArrayList<>(this.byType(type).values()); // KeYi // Leaf } public > List getRecipesFor(RecipeType type, C inventory, Level world) {