瀏覽代碼

Update mappings to 1.14.3

Unknown 6 年之前
父節點
當前提交
05088d9377
共有 39 個文件被更改,包括 129 次插入132 次删除
  1. 6 6
      src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java
  2. 5 5
      src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java
  3. 0 1
      src/main/java/me/shedaniel/rei/api/AutoCraftingHandler.java
  4. 1 1
      src/main/java/me/shedaniel/rei/api/ItemRegistry.java
  5. 0 1
      src/main/java/me/shedaniel/rei/api/RecipeDisplay.java
  6. 9 9
      src/main/java/me/shedaniel/rei/client/ClientHelperImpl.java
  7. 2 2
      src/main/java/me/shedaniel/rei/client/ConfigManagerImpl.java
  8. 3 3
      src/main/java/me/shedaniel/rei/client/ItemRegistryImpl.java
  9. 3 4
      src/main/java/me/shedaniel/rei/client/RecipeHelperImpl.java
  10. 3 4
      src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java
  11. 6 6
      src/main/java/me/shedaniel/rei/gui/PreRecipeViewingScreen.java
  12. 15 13
      src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java
  13. 8 8
      src/main/java/me/shedaniel/rei/gui/VillagerRecipeViewingScreen.java
  14. 3 3
      src/main/java/me/shedaniel/rei/gui/credits/CreditsEntryListWidget.java
  15. 4 4
      src/main/java/me/shedaniel/rei/gui/credits/CreditsScreen.java
  16. 5 5
      src/main/java/me/shedaniel/rei/gui/renderers/SimpleRecipeRenderer.java
  17. 2 2
      src/main/java/me/shedaniel/rei/gui/widget/AutoCraftingButtonWidget.java
  18. 4 4
      src/main/java/me/shedaniel/rei/gui/widget/ButtonWidget.java
  19. 2 2
      src/main/java/me/shedaniel/rei/gui/widget/ClickableLabelWidget.java
  20. 3 3
      src/main/java/me/shedaniel/rei/gui/widget/DetailedButtonWidget.java
  21. 8 9
      src/main/java/me/shedaniel/rei/gui/widget/ItemListOverlay.java
  22. 1 1
      src/main/java/me/shedaniel/rei/gui/widget/RecipeBaseWidget.java
  23. 4 2
      src/main/java/me/shedaniel/rei/gui/widget/SlotWidget.java
  24. 2 2
      src/main/java/me/shedaniel/rei/gui/widget/TabWidget.java
  25. 2 2
      src/main/java/me/shedaniel/rei/listeners/RecipeBookButtonWidgetHooks.java
  26. 2 2
      src/main/java/me/shedaniel/rei/listeners/RecipeBookGuiHooks.java
  27. 1 1
      src/main/java/me/shedaniel/rei/mixin/MixinBrewingRecipeRegistry.java
  28. 2 3
      src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java
  29. 0 1
      src/main/java/me/shedaniel/rei/plugin/DefaultRecipeBookExclusionZones.java
  30. 2 2
      src/main/java/me/shedaniel/rei/plugin/blasting/DefaultBlastingCategory.java
  31. 1 1
      src/main/java/me/shedaniel/rei/plugin/blasting/DefaultBlastingDisplay.java
  32. 6 6
      src/main/java/me/shedaniel/rei/plugin/brewing/DefaultBrewingCategory.java
  33. 1 1
      src/main/java/me/shedaniel/rei/plugin/composting/DefaultCompostingCategory.java
  34. 2 2
      src/main/java/me/shedaniel/rei/plugin/composting/DefaultCompostingDisplay.java
  35. 5 5
      src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingCategory.java
  36. 2 2
      src/main/java/me/shedaniel/rei/plugin/smelting/DefaultSmeltingCategory.java
  37. 1 1
      src/main/java/me/shedaniel/rei/plugin/smelting/DefaultSmeltingDisplay.java
  38. 2 2
      src/main/java/me/shedaniel/rei/plugin/smoking/DefaultSmokingCategory.java
  39. 1 1
      src/main/java/me/shedaniel/rei/plugin/smoking/DefaultSmokingDisplay.java

+ 6 - 6
src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java

@@ -24,12 +24,12 @@ import net.minecraft.client.gui.Element;
 import net.minecraft.client.gui.screen.ingame.AbstractContainerScreen;
 import net.minecraft.client.gui.screen.ingame.CreativeInventoryScreen;
 import net.minecraft.client.gui.screen.ingame.InventoryScreen;
-import net.minecraft.client.gui.screen.recipebook.RecipeBookScreen;
-import net.minecraft.client.gui.widget.RecipeBookButtonWidget;
+import net.minecraft.client.gui.screen.recipebook.RecipeBookWidget;
 import net.minecraft.client.gui.widget.TextFieldWidget;
+import net.minecraft.client.gui.widget.TexturedButtonWidget;
 import net.minecraft.client.resource.language.I18n;
 import net.minecraft.item.ItemStack;
-import net.minecraft.network.chat.TextComponent;
+import net.minecraft.text.LiteralText;
 import net.minecraft.util.ActionResult;
 import net.minecraft.util.Identifier;
 import org.apache.logging.log4j.LogManager;
@@ -139,7 +139,7 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer {
         ClientSidePacketRegistry.INSTANCE.register(RoughlyEnoughItemsNetwork.CREATE_ITEMS_MESSAGE_PACKET, (packetContext, packetByteBuf) -> {
             ItemStack stack = packetByteBuf.readItemStack();
             String player = packetByteBuf.readString(32767);
-            packetContext.getPlayer().addChatMessage(new TextComponent(I18n.translate("text.rei.cheat_items").replaceAll("\\{item_name}", ItemListOverlay.tryGetItemStackName(stack.copy())).replaceAll("\\{item_count}", stack.copy().getAmount() + "").replaceAll("\\{player_name}", player)), false);
+            packetContext.getPlayer().addChatMessage(new LiteralText(I18n.translate("text.rei.cheat_items").replaceAll("\\{item_name}", ItemListOverlay.tryGetItemStackName(stack.copy())).replaceAll("\\{item_count}", stack.copy().getCount() + "").replaceAll("\\{player_name}", player)), false);
         });
     }
     
@@ -164,7 +164,7 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer {
                 ((RecipeHelperImpl) RoughlyEnoughItemsCore.getRecipeHelper()).recipesLoaded(recipeManager);
         });
         ClothClientHooks.SCREEN_ADD_BUTTON.register((minecraftClient, screen, abstractButtonWidget) -> {
-            if (RoughlyEnoughItemsCore.getConfigManager().getConfig().disableRecipeBook && screen instanceof AbstractContainerScreen && abstractButtonWidget instanceof RecipeBookButtonWidget)
+            if (RoughlyEnoughItemsCore.getConfigManager().getConfig().disableRecipeBook && screen instanceof AbstractContainerScreen && abstractButtonWidget instanceof TexturedButtonWidget)
                 if (((RecipeBookButtonWidgetHooks) abstractButtonWidget).rei_getTexture().equals(recipeButtonTex))
                     return ActionResult.FAIL;
             return ActionResult.PASS;
@@ -218,7 +218,7 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer {
                 ScreenHelper.getLastOverlay().lateRender(i, i1, v);
         });
         ClothClientHooks.SCREEN_KEY_PRESSED.register((minecraftClient, screen, i, i1, i2) -> {
-            if (screen.getFocused() != null && screen.getFocused() instanceof TextFieldWidget || (screen.getFocused() instanceof RecipeBookScreen && ((RecipeBookGuiHooks) screen.getFocused()).rei_getSearchField() != null && ((RecipeBookGuiHooks) screen.getFocused()).rei_getSearchField().isFocused()))
+            if (screen.getFocused() != null && screen.getFocused() instanceof TextFieldWidget || (screen.getFocused() instanceof RecipeBookWidget && ((RecipeBookGuiHooks) screen.getFocused()).rei_getSearchField() != null && ((RecipeBookGuiHooks) screen.getFocused()).rei_getSearchField().isFocused()))
                 return ActionResult.PASS;
             if (screen instanceof AbstractContainerScreen)
                 if (ScreenHelper.getLastOverlay().keyPressed(i, i1, i2))

+ 5 - 5
src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java

@@ -8,10 +8,10 @@ package me.shedaniel.rei;
 import io.netty.buffer.Unpooled;
 import net.fabricmc.api.ModInitializer;
 import net.fabricmc.fabric.api.network.ServerSidePacketRegistry;
-import net.minecraft.ChatFormat;
 import net.minecraft.item.ItemStack;
-import net.minecraft.network.chat.TranslatableComponent;
 import net.minecraft.server.network.ServerPlayerEntity;
+import net.minecraft.text.TranslatableText;
+import net.minecraft.util.Formatting;
 import net.minecraft.util.Identifier;
 import net.minecraft.util.PacketByteBuf;
 
@@ -26,7 +26,7 @@ public class RoughlyEnoughItemsNetwork implements ModInitializer {
         ServerSidePacketRegistry.INSTANCE.register(DELETE_ITEMS_PACKET, (packetContext, packetByteBuf) -> {
             ServerPlayerEntity player = (ServerPlayerEntity) packetContext.getPlayer();
             if (player.getServer().getPermissionLevel(player.getGameProfile()) < player.getServer().getOpPermissionLevel()) {
-                player.addChatMessage(new TranslatableComponent("text.rei.no_permission_cheat").applyFormat(ChatFormat.RED), false);
+                player.addChatMessage(new TranslatableText("text.rei.no_permission_cheat").formatted(Formatting.RED), false);
                 return;
             }
             if (!player.inventory.getCursorStack().isEmpty())
@@ -35,14 +35,14 @@ public class RoughlyEnoughItemsNetwork implements ModInitializer {
         ServerSidePacketRegistry.INSTANCE.register(CREATE_ITEMS_PACKET, (packetContext, packetByteBuf) -> {
             ServerPlayerEntity player = (ServerPlayerEntity) packetContext.getPlayer();
             if (player.getServer().getPermissionLevel(player.getGameProfile()) < player.getServer().getOpPermissionLevel()) {
-                player.addChatMessage(new TranslatableComponent("text.rei.no_permission_cheat").applyFormat(ChatFormat.RED), false);
+                player.addChatMessage(new TranslatableText("text.rei.no_permission_cheat").formatted(Formatting.RED), false);
                 return;
             }
             ItemStack stack = packetByteBuf.readItemStack();
             if (player.inventory.insertStack(stack.copy())) {
                 ServerSidePacketRegistry.INSTANCE.sendToPlayer(player, RoughlyEnoughItemsNetwork.CREATE_ITEMS_MESSAGE_PACKET, new PacketByteBuf(Unpooled.buffer()).writeItemStack(stack.copy()).writeString(player.getEntityName(), 32767));
             } else
-                player.addChatMessage(new TranslatableComponent("text.rei.failed_cheat_items"), false);
+                player.addChatMessage(new TranslatableText("text.rei.failed_cheat_items"), false);
         });
     }
     

+ 0 - 1
src/main/java/me/shedaniel/rei/api/AutoCraftingHandler.java

@@ -9,7 +9,6 @@ import me.shedaniel.rei.gui.ContainerScreenOverlay;
 import net.minecraft.client.MinecraftClient;
 import net.minecraft.client.gui.screen.Screen;
 import net.minecraft.client.gui.screen.ingame.AbstractContainerScreen;
-import net.minecraft.util.ActionResult;
 
 import java.util.function.Supplier;
 

+ 1 - 1
src/main/java/me/shedaniel/rei/api/ItemRegistry.java

@@ -73,7 +73,7 @@ public interface ItemRegistry {
      * @return whether the stack has been registered
      */
     default boolean alreadyContain(ItemStack stack) {
-        return getItemList().stream().anyMatch(stack1 -> ItemStack.areEqual(stack, stack1));
+        return getItemList().stream().anyMatch(stack1 -> ItemStack.areEqualIgnoreDamage(stack, stack1));
     }
     
 }

+ 0 - 1
src/main/java/me/shedaniel/rei/api/RecipeDisplay.java

@@ -7,7 +7,6 @@ package me.shedaniel.rei.api;
 
 import com.google.common.collect.Lists;
 import net.minecraft.item.ItemStack;
-import net.minecraft.recipe.Recipe;
 import net.minecraft.util.Identifier;
 
 import java.util.List;

+ 9 - 9
src/main/java/me/shedaniel/rei/client/ClientHelperImpl.java

@@ -25,15 +25,15 @@ import net.fabricmc.fabric.impl.client.keybinding.KeyBindingRegistryImpl;
 import net.fabricmc.loader.api.FabricLoader;
 import net.fabricmc.loader.api.ModContainer;
 import net.fabricmc.loader.api.metadata.ModMetadata;
-import net.minecraft.ChatFormat;
 import net.minecraft.client.MinecraftClient;
 import net.minecraft.client.gui.screen.ingame.CreativeInventoryScreen;
 import net.minecraft.client.util.InputUtil;
 import net.minecraft.item.Item;
 import net.minecraft.item.ItemStack;
 import net.minecraft.item.Items;
-import net.minecraft.network.chat.TranslatableComponent;
+import net.minecraft.text.TranslatableText;
 import net.minecraft.util.DefaultedList;
+import net.minecraft.util.Formatting;
 import net.minecraft.util.Identifier;
 import net.minecraft.util.PacketByteBuf;
 import net.minecraft.util.registry.Registry;
@@ -60,7 +60,7 @@ public class ClientHelperImpl implements ClientHelper, ClientModInitializer {
         String mod = getModFromItem(item);
         if (mod.equalsIgnoreCase(""))
             return "";
-        return ChatFormat.BLUE.toString() + mod;
+        return Formatting.BLUE.toString() + mod;
     }
     
     @Override
@@ -68,7 +68,7 @@ public class ClientHelperImpl implements ClientHelper, ClientModInitializer {
         String mod = getModFromItem(item);
         if (mod.equalsIgnoreCase(""))
             return "";
-        return ChatFormat.BLUE.toString() + ChatFormat.ITALIC.toString() + mod;
+        return Formatting.BLUE.toString() + Formatting.ITALIC.toString() + mod;
     }
     
     @Override
@@ -76,7 +76,7 @@ public class ClientHelperImpl implements ClientHelper, ClientModInitializer {
         String mod = getModFromIdentifier(identifier);
         if (mod.equalsIgnoreCase(""))
             return "";
-        return ChatFormat.BLUE.toString() + ChatFormat.ITALIC.toString() + mod;
+        return Formatting.BLUE.toString() + Formatting.ITALIC.toString() + mod;
     }
     
     @Override
@@ -165,11 +165,11 @@ public class ClientHelperImpl implements ClientHelper, ClientModInitializer {
         } else {
             Identifier identifier = Registry.ITEM.getId(cheatedStack.getItem());
             String tagMessage = cheatedStack.copy().getTag() != null && !cheatedStack.copy().getTag().isEmpty() ? cheatedStack.copy().getTag().asString() : "";
-            String og = cheatedStack.getAmount() == 1 ? RoughlyEnoughItemsCore.getConfigManager().getConfig().giveCommand.replaceAll(" \\{count}", "") : RoughlyEnoughItemsCore.getConfigManager().getConfig().giveCommand;
-            String madeUpCommand = og.replaceAll("\\{player_name}", MinecraftClient.getInstance().player.getEntityName()).replaceAll("\\{item_name}", identifier.getPath()).replaceAll("\\{item_identifier}", identifier.toString()).replaceAll("\\{nbt}", tagMessage).replaceAll("\\{count}", String.valueOf(cheatedStack.getAmount()));
+            String og = cheatedStack.getCount() == 1 ? RoughlyEnoughItemsCore.getConfigManager().getConfig().giveCommand.replaceAll(" \\{count}", "") : RoughlyEnoughItemsCore.getConfigManager().getConfig().giveCommand;
+            String madeUpCommand = og.replaceAll("\\{player_name}", MinecraftClient.getInstance().player.getEntityName()).replaceAll("\\{item_name}", identifier.getPath()).replaceAll("\\{item_identifier}", identifier.toString()).replaceAll("\\{nbt}", tagMessage).replaceAll("\\{count}", String.valueOf(cheatedStack.getCount()));
             if (madeUpCommand.length() > 256) {
-                madeUpCommand = og.replaceAll("\\{player_name}", MinecraftClient.getInstance().player.getEntityName()).replaceAll("\\{item_name}", identifier.getPath()).replaceAll("\\{item_identifier}", identifier.toString()).replaceAll("\\{nbt}", "").replaceAll("\\{count}", String.valueOf(cheatedStack.getAmount()));
-                MinecraftClient.getInstance().player.addChatMessage(new TranslatableComponent("text.rei.too_long_nbt"), false);
+                madeUpCommand = og.replaceAll("\\{player_name}", MinecraftClient.getInstance().player.getEntityName()).replaceAll("\\{item_name}", identifier.getPath()).replaceAll("\\{item_identifier}", identifier.toString()).replaceAll("\\{nbt}", "").replaceAll("\\{count}", String.valueOf(cheatedStack.getCount()));
+                MinecraftClient.getInstance().player.addChatMessage(new TranslatableText("text.rei.too_long_nbt"), false);
             }
             MinecraftClient.getInstance().player.sendChatMessage(madeUpCommand);
             return true;

+ 2 - 2
src/main/java/me/shedaniel/rei/client/ConfigManagerImpl.java

@@ -15,7 +15,7 @@ import net.fabricmc.loader.api.FabricLoader;
 import net.minecraft.client.MinecraftClient;
 import net.minecraft.client.gui.screen.Screen;
 import net.minecraft.client.resource.language.I18n;
-import net.minecraft.network.chat.TextComponent;
+import net.minecraft.text.LiteralText;
 
 import java.io.File;
 import java.io.FileOutputStream;
@@ -143,7 +143,7 @@ public class ConfigManagerImpl implements ConfigManager {
                 e.printStackTrace();
             }
         }
-        return new Screen(new TextComponent("")) {
+        return new Screen(new LiteralText("")) {
             @Override
             public void render(int int_1, int int_2, float float_1) {
                 renderDirtBackground(0);

+ 3 - 3
src/main/java/me/shedaniel/rei/client/ItemRegistryImpl.java

@@ -36,9 +36,9 @@ public class ItemRegistryImpl implements ItemRegistry {
     @Override
     public ItemStack[] getAllStacksFromItem(Item item) {
         DefaultedList<ItemStack> list = DefaultedList.create();
-        list.add(item.getDefaultStack());
-        item.appendItemsForGroup(item.getItemGroup(), list);
-        TreeSet<ItemStack> stackSet = list.stream().collect(Collectors.toCollection(() -> new TreeSet<ItemStack>((p1, p2) -> ItemStack.areEqual(p1, p2) ? 0 : 1)));
+        list.add(item.getStackForRender());
+        item.appendStacks(item.getGroup(), list);
+        TreeSet<ItemStack> stackSet = list.stream().collect(Collectors.toCollection(() -> new TreeSet<ItemStack>((p1, p2) -> ItemStack.areEqualIgnoreDamage(p1, p2) ? 0 : 1)));
         return Lists.newArrayList(stackSet).toArray(new ItemStack[0]);
     }
     

+ 3 - 4
src/main/java/me/shedaniel/rei/client/RecipeHelperImpl.java

@@ -17,7 +17,6 @@ import net.minecraft.util.ActionResult;
 import net.minecraft.util.Identifier;
 
 import java.awt.*;
-import java.util.List;
 import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.function.Function;
@@ -66,7 +65,7 @@ public class RecipeHelperImpl implements RecipeHelper {
                     boolean slotDone = false;
                     for(ItemStack possibleType : inventoryItems) {
                         for(ItemStack slotPossible : slot)
-                            if (ItemStack.areEqualIgnoreTags(slotPossible, possibleType)) {
+                            if (ItemStack.areItemsEqualIgnoreDamage(slotPossible, possibleType)) {
                                 slotsCraftable++;
                                 slotDone = true;
                                 break;
@@ -126,7 +125,7 @@ public class RecipeHelperImpl implements RecipeHelper {
             RecipeCategory category = getCategory(entry.getKey());
             for(RecipeDisplay recipeDisplay : entry.getValue())
                 for(ItemStack outputStack : (List<ItemStack>) recipeDisplay.getOutput())
-                    if (category.checkTags() ? ItemStack.areEqual(stack, outputStack) : ItemStack.areEqualIgnoreTags(stack, outputStack))
+                    if (category.checkTags() ? ItemStack.areEqualIgnoreDamage(stack, outputStack) : ItemStack.areItemsEqualIgnoreDamage(stack, outputStack))
                         categoriesMap.get(recipeDisplay.getRecipeCategory()).add(recipeDisplay);
         }
         for(LiveRecipeGenerator liveRecipeGenerator : liveRecipeGenerators)
@@ -162,7 +161,7 @@ public class RecipeHelperImpl implements RecipeHelper {
                 boolean found = false;
                 for(List<ItemStack> input : (List<List<ItemStack>>) recipeDisplay.getInput()) {
                     for(ItemStack itemStack : input) {
-                        if (category.checkTags() ? ItemStack.areEqual(itemStack, stack) : ItemStack.areEqualIgnoreTags(itemStack, stack)) {
+                        if (category.checkTags() ? ItemStack.areEqualIgnoreDamage(itemStack, stack) : ItemStack.areItemsEqualIgnoreDamage(itemStack, stack)) {
                             categoriesMap.get(recipeDisplay.getRecipeCategory()).add(recipeDisplay);
                             found = true;
                             break;

+ 3 - 4
src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java

@@ -31,15 +31,14 @@ import net.minecraft.client.util.Window;
 import net.minecraft.client.world.ClientWorld;
 import net.minecraft.container.Slot;
 import net.minecraft.item.ItemStack;
-import net.minecraft.network.chat.TranslatableComponent;
 import net.minecraft.sound.SoundEvents;
+import net.minecraft.text.TranslatableText;
 import net.minecraft.util.ActionResult;
 import net.minecraft.util.Identifier;
 import net.minecraft.util.math.MathHelper;
 import net.minecraft.world.GameMode;
 
 import java.awt.*;
-import java.util.List;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -75,7 +74,7 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra
         widgets.add(itemListOverlay = new ItemListOverlay(page));
         itemListOverlay.updateList(boundsHandler, boundsHandler.getItemListArea(rectangle), page, searchTerm, false);
         
-        widgets.add(buttonLeft = new ButtonWidget(rectangle.x, rectangle.y + 5, 16, 16, new TranslatableComponent("text.rei.left_arrow")) {
+        widgets.add(buttonLeft = new ButtonWidget(rectangle.x, rectangle.y + 5, 16, 16, new TranslatableText("text.rei.left_arrow")) {
             @Override
             public void onPressed() {
                 page--;
@@ -94,7 +93,7 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra
                 return false;
             }
         });
-        widgets.add(buttonRight = new ButtonWidget(rectangle.x + rectangle.width - 18, rectangle.y + 5, 16, 16, new TranslatableComponent("text.rei.right_arrow")) {
+        widgets.add(buttonRight = new ButtonWidget(rectangle.x + rectangle.width - 18, rectangle.y + 5, 16, 16, new TranslatableText("text.rei.right_arrow")) {
             @Override
             public void onPressed() {
                 page++;

+ 6 - 6
src/main/java/me/shedaniel/rei/gui/PreRecipeViewingScreen.java

@@ -10,20 +10,20 @@ import me.shedaniel.rei.RoughlyEnoughItemsCore;
 import me.shedaniel.rei.api.ClientHelper;
 import me.shedaniel.rei.api.RecipeCategory;
 import me.shedaniel.rei.api.RecipeDisplay;
-import me.shedaniel.rei.gui.config.RecipeScreenType;
 import me.shedaniel.rei.client.ScreenHelper;
+import me.shedaniel.rei.gui.config.RecipeScreenType;
 import me.shedaniel.rei.gui.widget.ButtonWidget;
 import me.shedaniel.rei.gui.widget.HighlightableWidget;
 import me.shedaniel.rei.gui.widget.Widget;
-import net.minecraft.ChatFormat;
 import net.minecraft.client.MinecraftClient;
 import net.minecraft.client.gui.Element;
 import net.minecraft.client.gui.screen.Screen;
 import net.minecraft.client.render.GuiLighting;
 import net.minecraft.client.resource.language.I18n;
 import net.minecraft.client.sound.PositionedSoundInstance;
-import net.minecraft.network.chat.TranslatableComponent;
 import net.minecraft.sound.SoundEvents;
+import net.minecraft.text.TranslatableText;
+import net.minecraft.util.Formatting;
 import net.minecraft.util.Identifier;
 
 import java.awt.*;
@@ -40,7 +40,7 @@ public class PreRecipeViewingScreen extends Screen {
     private Map<RecipeCategory<?>, List<RecipeDisplay>> map;
     
     public PreRecipeViewingScreen(Map<RecipeCategory<?>, List<RecipeDisplay>> map) {
-        super(new TranslatableComponent("text.rei.recipe_screen_type.selection"));
+        super(new TranslatableText("text.rei.recipe_screen_type.selection"));
         this.widgets = Lists.newArrayList();
         this.original = true;
         this.map = map;
@@ -70,10 +70,10 @@ public class PreRecipeViewingScreen extends Screen {
     @Override
     public void render(int int_1, int int_2, float float_1) {
         this.renderBackground();
-        this.drawCenteredString(this.font, this.title.getFormattedText(), this.width / 2, 20, 16777215);
+        this.drawCenteredString(this.font, this.title.asFormattedString(), this.width / 2, 20, 16777215);
         int i = 30;
         for(String s : this.font.wrapStringToWidthAsList(I18n.translate("text.rei.recipe_screen_type.selection.sub"), width - 30)) {
-            this.drawCenteredString(this.font, ChatFormat.GRAY.toString() + s, width / 2, i, -1);
+            this.drawCenteredString(this.font, Formatting.GRAY.toString() + s, width / 2, i, -1);
             i += 10;
         }
         super.render(int_1, int_2, float_1);

+ 15 - 13
src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java

@@ -12,7 +12,6 @@ import me.shedaniel.rei.RoughlyEnoughItemsCore;
 import me.shedaniel.rei.api.*;
 import me.shedaniel.rei.client.ScreenHelper;
 import me.shedaniel.rei.gui.widget.*;
-import net.minecraft.ChatFormat;
 import net.minecraft.client.MinecraftClient;
 import net.minecraft.client.gui.Element;
 import net.minecraft.client.gui.screen.Screen;
@@ -21,15 +20,18 @@ import net.minecraft.client.resource.language.I18n;
 import net.minecraft.client.sound.PositionedSoundInstance;
 import net.minecraft.client.util.Window;
 import net.minecraft.item.ItemStack;
-import net.minecraft.network.chat.TextComponent;
-import net.minecraft.network.chat.TranslatableComponent;
 import net.minecraft.sound.SoundEvents;
+import net.minecraft.text.LiteralText;
+import net.minecraft.text.TranslatableText;
+import net.minecraft.util.Formatting;
 import net.minecraft.util.Identifier;
 import net.minecraft.util.math.MathHelper;
 
 import java.awt.*;
-import java.util.List;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Map;
+import java.util.Optional;
 import java.util.function.Supplier;
 
 public class RecipeViewingScreen extends Screen {
@@ -52,7 +54,7 @@ public class RecipeViewingScreen extends Screen {
     private ButtonWidget recipeBack, recipeNext, categoryBack, categoryNext;
     
     public RecipeViewingScreen(Map<RecipeCategory<?>, List<RecipeDisplay>> categoriesMap) {
-        super(new TextComponent(""));
+        super(new LiteralText(""));
         this.categoryPages = 0;
         this.preWidgets = Lists.newArrayList();
         this.widgets = Lists.newArrayList();
@@ -124,7 +126,7 @@ public class RecipeViewingScreen extends Screen {
         this.page = MathHelper.clamp(page, 0, getTotalPages(selectedCategory) - 1);
         
         ButtonWidget w, w2;
-        this.widgets.add(w = new ButtonWidget(bounds.x + 2, bounds.y - 16, 10, 10, new TranslatableComponent("text.rei.left_arrow")) {
+        this.widgets.add(w = new ButtonWidget(bounds.x + 2, bounds.y - 16, 10, 10, new TranslatableText("text.rei.left_arrow")) {
             @Override
             public void onPressed() {
                 categoryPages--;
@@ -133,7 +135,7 @@ public class RecipeViewingScreen extends Screen {
                 RecipeViewingScreen.this.init();
             }
         });
-        this.widgets.add(w2 = new ButtonWidget(bounds.x + bounds.width - 12, bounds.y - 16, 10, 10, new TranslatableComponent("text.rei.right_arrow")) {
+        this.widgets.add(w2 = new ButtonWidget(bounds.x + bounds.width - 12, bounds.y - 16, 10, 10, new TranslatableText("text.rei.right_arrow")) {
             @Override
             public void onPressed() {
                 categoryPages++;
@@ -143,7 +145,7 @@ public class RecipeViewingScreen extends Screen {
             }
         });
         w.enabled = w2.enabled = categories.size() > TABS_PER_PAGE;
-        widgets.add(categoryBack = new ButtonWidget((int) bounds.getX() + 5, (int) bounds.getY() + 5, 12, 12, new TranslatableComponent("text.rei.left_arrow")) {
+        widgets.add(categoryBack = new ButtonWidget((int) bounds.getX() + 5, (int) bounds.getY() + 5, 12, 12, new TranslatableText("text.rei.left_arrow")) {
             @Override
             public void onPressed() {
                 int currentCategoryIndex = categories.indexOf(selectedCategory);
@@ -179,7 +181,7 @@ public class RecipeViewingScreen extends Screen {
                 ClientHelper.getInstance().executeViewAllRecipesKeyBind();
             }
         });
-        widgets.add(categoryNext = new ButtonWidget((int) bounds.getMaxX() - 17, (int) bounds.getY() + 5, 12, 12, new TranslatableComponent("text.rei.right_arrow")) {
+        widgets.add(categoryNext = new ButtonWidget((int) bounds.getMaxX() - 17, (int) bounds.getY() + 5, 12, 12, new TranslatableText("text.rei.right_arrow")) {
             @Override
             public void onPressed() {
                 int currentCategoryIndex = categories.indexOf(selectedCategory);
@@ -200,7 +202,7 @@ public class RecipeViewingScreen extends Screen {
         categoryBack.enabled = categories.size() > 1;
         categoryNext.enabled = categories.size() > 1;
         
-        widgets.add(recipeBack = new ButtonWidget((int) bounds.getX() + 5, (int) bounds.getY() + 21, 12, 12, new TranslatableComponent("text.rei.left_arrow")) {
+        widgets.add(recipeBack = new ButtonWidget((int) bounds.getX() + 5, (int) bounds.getY() + 21, 12, 12, new TranslatableText("text.rei.left_arrow")) {
             @Override
             public void onPressed() {
                 page--;
@@ -233,7 +235,7 @@ public class RecipeViewingScreen extends Screen {
                 RecipeViewingScreen.this.init();
             }
         });
-        widgets.add(recipeNext = new ButtonWidget((int) bounds.getMaxX() - 17, (int) bounds.getY() + 21, 12, 12, new TranslatableComponent("text.rei.right_arrow")) {
+        widgets.add(recipeNext = new ButtonWidget((int) bounds.getMaxX() - 17, (int) bounds.getY() + 21, 12, 12, new TranslatableText("text.rei.right_arrow")) {
             @Override
             public void onPressed() {
                 page++;
@@ -296,7 +298,7 @@ public class RecipeViewingScreen extends Screen {
             int yy = bounds.y + 16;
             preWidgets.add(new CategoryBaseWidget(new Rectangle(xx - 6, yy - 6, 15 + innerWidth * 18, 11 + actualHeight * 18)));
             int index = 0;
-            List<String> list = Collections.singletonList(ChatFormat.YELLOW.toString() + I18n.translate("text.rei.working_station"));
+            List<String> list = Collections.singletonList(Formatting.YELLOW.toString() + I18n.translate("text.rei.working_station"));
             xx += (innerWidth - 1) * 18;
             for(List<ItemStack> workingStation : workingStations) {
                 preWidgets.add(new SlotWidget(xx, yy, workingStation, true, true, true) {

+ 8 - 8
src/main/java/me/shedaniel/rei/gui/VillagerRecipeViewingScreen.java

@@ -15,7 +15,6 @@ import me.shedaniel.rei.api.*;
 import me.shedaniel.rei.client.ScreenHelper;
 import me.shedaniel.rei.gui.renderers.RecipeRenderer;
 import me.shedaniel.rei.gui.widget.*;
-import net.minecraft.ChatFormat;
 import net.minecraft.client.MinecraftClient;
 import net.minecraft.client.gui.Element;
 import net.minecraft.client.gui.screen.Screen;
@@ -26,9 +25,10 @@ import net.minecraft.client.render.VertexFormats;
 import net.minecraft.client.resource.language.I18n;
 import net.minecraft.client.sound.PositionedSoundInstance;
 import net.minecraft.item.ItemStack;
-import net.minecraft.network.chat.TextComponent;
-import net.minecraft.network.chat.TranslatableComponent;
 import net.minecraft.sound.SoundEvents;
+import net.minecraft.text.LiteralText;
+import net.minecraft.text.TranslatableText;
+import net.minecraft.util.Formatting;
 import net.minecraft.util.math.MathHelper;
 
 import java.awt.*;
@@ -57,7 +57,7 @@ public class VillagerRecipeViewingScreen extends Screen {
     private int tabsPage;
     
     public VillagerRecipeViewingScreen(Map<RecipeCategory<?>, List<RecipeDisplay>> map) {
-        super(new TextComponent(""));
+        super(new LiteralText(""));
         this.widgets = Lists.newArrayList();
         this.categoryMap = Maps.newLinkedHashMap();
         this.selectedCategoryIndex = 0;
@@ -105,7 +105,7 @@ public class VillagerRecipeViewingScreen extends Screen {
             int yy = bounds.y + bounds.height + 5;
             widgets.add(new CategoryBaseWidget(new Rectangle(xx - 6, bounds.y + bounds.height - 5, 11 + w * 18, 15 + h * 18)));
             int index = 0;
-            List<String> list = Collections.singletonList(ChatFormat.YELLOW.toString() + I18n.translate("text.rei.working_station"));
+            List<String> list = Collections.singletonList(Formatting.YELLOW.toString() + I18n.translate("text.rei.working_station"));
             for(List<ItemStack> workingStation : workingStations) {
                 widgets.add(new SlotWidget(xx, yy, workingStation, true, true, true) {
                     @Override
@@ -177,7 +177,7 @@ public class VillagerRecipeViewingScreen extends Screen {
             }
         }
         ButtonWidget w, w2;
-        this.widgets.add(w = new ButtonWidget(bounds.x + 2, bounds.y - 16, 10, 10, new TranslatableComponent("text.rei.left_arrow")) {
+        this.widgets.add(w = new ButtonWidget(bounds.x + 2, bounds.y - 16, 10, 10, new TranslatableText("text.rei.left_arrow")) {
             @Override
             public void onPressed() {
                 tabsPage--;
@@ -186,7 +186,7 @@ public class VillagerRecipeViewingScreen extends Screen {
                 VillagerRecipeViewingScreen.this.init();
             }
         });
-        this.widgets.add(w2 = new ButtonWidget(bounds.x + bounds.width - 12, bounds.y - 16, 10, 10, new TranslatableComponent("text.rei.right_arrow")) {
+        this.widgets.add(w2 = new ButtonWidget(bounds.x + bounds.width - 12, bounds.y - 16, 10, 10, new TranslatableText("text.rei.right_arrow")) {
             @Override
             public void onPressed() {
                 tabsPage++;
@@ -212,7 +212,7 @@ public class VillagerRecipeViewingScreen extends Screen {
             @Override
             public void render(int mouseX, int mouseY, float delta) {
                 GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
-                font.draw((isHovered(mouseX, mouseY) ? ChatFormat.UNDERLINE.toString() : "") + text, x - font.getStringWidth(text) / 2, y, getDefaultColor());
+                font.draw((isHovered(mouseX, mouseY) ? Formatting.UNDERLINE.toString() : "") + text, x - font.getStringWidth(text) / 2, y, getDefaultColor());
                 if (clickable && getTooltips().isPresent())
                     if (!focused && isHighlighted(mouseX, mouseY))
                         ScreenHelper.getLastOverlay().addTooltip(QueuedTooltip.create(getTooltips().get().split("\n")));

+ 3 - 3
src/main/java/me/shedaniel/rei/gui/credits/CreditsEntryListWidget.java

@@ -8,7 +8,7 @@ package me.shedaniel.rei.gui.credits;
 import me.shedaniel.clothconfig2.gui.widget.DynamicSmoothScrollingEntryListWidget;
 import net.minecraft.client.MinecraftClient;
 import net.minecraft.client.gui.DrawableHelper;
-import net.minecraft.network.chat.Component;
+import net.minecraft.text.Text;
 
 public class CreditsEntryListWidget extends DynamicSmoothScrollingEntryListWidget<CreditsEntryListWidget.CreditsItem> {
     
@@ -59,8 +59,8 @@ public class CreditsEntryListWidget extends DynamicSmoothScrollingEntryListWidge
     public static class CreditsItem extends DynamicSmoothScrollingEntryListWidget.Entry<CreditsItem> {
         private String text;
         
-        public CreditsItem(Component textComponent) {
-            this(textComponent.getFormattedText());
+        public CreditsItem(Text textComponent) {
+            this(textComponent.asFormattedString());
         }
         
         public CreditsItem(String text) {

+ 4 - 4
src/main/java/me/shedaniel/rei/gui/credits/CreditsScreen.java

@@ -15,7 +15,7 @@ import net.minecraft.client.gui.screen.Screen;
 import net.minecraft.client.gui.screen.ingame.AbstractContainerScreen;
 import net.minecraft.client.gui.widget.AbstractPressableButtonWidget;
 import net.minecraft.client.resource.language.I18n;
-import net.minecraft.network.chat.TextComponent;
+import net.minecraft.text.LiteralText;
 
 import java.util.List;
 import java.util.Map;
@@ -28,7 +28,7 @@ public class CreditsScreen extends Screen {
     private CreditsEntryListWidget entryListWidget;
     
     public CreditsScreen(Screen parent) {
-        super(new TextComponent(""));
+        super(new LiteralText(""));
         this.parent = parent;
     }
     
@@ -71,8 +71,8 @@ public class CreditsScreen extends Screen {
         int i = width - 80 - 6;
         translators.forEach(s -> font.wrapStringToWidthAsList(s, i).forEach(actualTranslators::add));
         for(String line : I18n.translate("text.rei.credit.text", FabricLoader.getInstance().getModContainer("roughlyenoughitems").map(mod -> mod.getMetadata().getVersion().getFriendlyString()).orElse("Unknown"), String.join("\n", actualTranslators)).split("\n"))
-            entryListWidget.creditsAddEntry(new CreditsItem(new TextComponent(line)));
-        entryListWidget.creditsAddEntry(new CreditsItem(new TextComponent("")));
+            entryListWidget.creditsAddEntry(new CreditsItem(new LiteralText(line)));
+        entryListWidget.creditsAddEntry(new CreditsItem(new LiteralText("")));
         children.add(buttonDone = new AbstractPressableButtonWidget(width / 2 - 100, height - 26, 200, 20, I18n.translate("gui.done")) {
             @Override
             public void onPress() {

+ 5 - 5
src/main/java/me/shedaniel/rei/gui/renderers/SimpleRecipeRenderer.java

@@ -26,8 +26,8 @@ public class SimpleRecipeRenderer extends RecipeRenderer {
     
     public static final Comparator<ItemStack> ITEM_STACK_COMPARATOR = (o1, o2) -> {
         if (o1.getItem() == o2.getItem()) {
-            if (o1.getAmount() != o2.getAmount())
-                return o1.getAmount() - o2.getAmount();
+            if (o1.getCount() != o2.getCount())
+                return o1.getCount() - o2.getCount();
             int compare = Boolean.compare(o1.hasTag(), o2.hasTag());
             if (compare != 0)
                 return compare;
@@ -43,7 +43,7 @@ public class SimpleRecipeRenderer extends RecipeRenderer {
     
     public SimpleRecipeRenderer(Supplier<List<List<ItemStack>>> input, Supplier<List<ItemStack>> output) {
         List<Pair<List<ItemStack>, AtomicInteger>> newList = Lists.newArrayList();
-        List<Pair<List<ItemStack>, Integer>> a = input.get().stream().map(stacks -> new Pair<>(stacks, stacks.stream().map(ItemStack::getAmount).max(Integer::compareTo).orElse(1))).collect(Collectors.toList());
+        List<Pair<List<ItemStack>, Integer>> a = input.get().stream().map(stacks -> new Pair<>(stacks, stacks.stream().map(ItemStack::getCount).max(Integer::compareTo).orElse(1))).collect(Collectors.toList());
         for(Pair<List<ItemStack>, Integer> pair : a) {
             Optional<Pair<List<ItemStack>, AtomicInteger>> any = newList.stream().filter(pairr -> equalsList(pair.getLeft(), pairr.getLeft())).findAny();
             if (any.isPresent()) {
@@ -55,7 +55,7 @@ public class SimpleRecipeRenderer extends RecipeRenderer {
         for(Pair<List<ItemStack>, AtomicInteger> pair : newList)
             b.add(pair.getLeft().stream().map(stack -> {
                 ItemStack s = stack.copy();
-                s.setAmount(pair.getRight().get());
+                s.setCount(pair.getRight().get());
                 return s;
             }).collect(Collectors.toList()));
         this.inputRenderer = b.stream().filter(stacks -> !stacks.isEmpty()).map(stacks -> Renderer.fromItemStacks(stacks)).collect(Collectors.toList());
@@ -70,7 +70,7 @@ public class SimpleRecipeRenderer extends RecipeRenderer {
         if (stacks_1.size() != stacks_2.size())
             return false;
         for(int i = 0; i < stacks_1.size(); i++)
-            if (!stacks_1.get(i).isEqualIgnoreTags(stacks_2.get(i)))
+            if (!stacks_1.get(i).isItemEqualIgnoreDamage(stacks_2.get(i)))
                 return false;
         return true;
     }

+ 2 - 2
src/main/java/me/shedaniel/rei/gui/widget/AutoCraftingButtonWidget.java

@@ -9,9 +9,9 @@ import me.shedaniel.rei.api.AutoCraftingHandler;
 import me.shedaniel.rei.api.RecipeDisplay;
 import me.shedaniel.rei.api.RecipeHelper;
 import me.shedaniel.rei.client.ScreenHelper;
-import net.minecraft.ChatFormat;
 import net.minecraft.client.gui.screen.ingame.AbstractContainerScreen;
 import net.minecraft.client.resource.language.I18n;
+import net.minecraft.util.Formatting;
 import net.minecraft.util.Identifier;
 
 import java.awt.*;
@@ -28,7 +28,7 @@ public class AutoCraftingButtonWidget extends ButtonWidget {
         super(rectangle, text);
         this.displaySupplier = () -> displaySupplier.get();
         Optional<Identifier> recipe = displaySupplier.get().getRecipeLocation();
-        extraTooltip = recipe.isPresent() ? I18n.translate("text.rei.recipe_id", ChatFormat.GRAY.toString(), recipe.get().toString()) : "";
+        extraTooltip = recipe.isPresent() ? I18n.translate("text.rei.recipe_id", Formatting.GRAY.toString(), recipe.get().toString()) : "";
         this.containerScreen = ScreenHelper.getLastContainerScreen();
     }
     

+ 4 - 4
src/main/java/me/shedaniel/rei/gui/widget/ButtonWidget.java

@@ -9,8 +9,8 @@ import com.mojang.blaze3d.platform.GlStateManager;
 import me.shedaniel.rei.client.ScreenHelper;
 import net.minecraft.client.gui.Element;
 import net.minecraft.client.sound.PositionedSoundInstance;
-import net.minecraft.network.chat.Component;
 import net.minecraft.sound.SoundEvents;
+import net.minecraft.text.Text;
 import net.minecraft.util.Identifier;
 import net.minecraft.util.math.MathHelper;
 
@@ -28,8 +28,8 @@ public abstract class ButtonWidget extends HighlightableWidget {
     public boolean focused;
     private Rectangle bounds;
     
-    public ButtonWidget(Rectangle rectangle, Component text) {
-        this(rectangle, text.getFormattedText());
+    public ButtonWidget(Rectangle rectangle, Text text) {
+        this(rectangle, text.asFormattedString());
     }
     
     public ButtonWidget(Rectangle rectangle, String text) {
@@ -42,7 +42,7 @@ public abstract class ButtonWidget extends HighlightableWidget {
         this(new Rectangle(x, y, width, height), text);
     }
     
-    public ButtonWidget(int x, int y, int width, int height, Component text) {
+    public ButtonWidget(int x, int y, int width, int height, Text text) {
         this(new Rectangle(x, y, width, height), text);
     }
     

+ 2 - 2
src/main/java/me/shedaniel/rei/gui/widget/ClickableLabelWidget.java

@@ -6,7 +6,7 @@
 package me.shedaniel.rei.gui.widget;
 
 import me.shedaniel.rei.client.ScreenHelper;
-import net.minecraft.ChatFormat;
+import net.minecraft.util.Formatting;
 
 import java.awt.*;
 import java.util.Optional;
@@ -30,7 +30,7 @@ public abstract class ClickableLabelWidget extends LabelWidget {
         int colour = getDefaultColor();
         if (clickable && isHovered(mouseX, mouseY))
             colour = getHoveredColor();
-        drawCenteredString(font, (isHovered(mouseX, mouseY) ? ChatFormat.UNDERLINE.toString() : "") + text, x, y, colour);
+        drawCenteredString(font, (isHovered(mouseX, mouseY) ? Formatting.UNDERLINE.toString() : "") + text, x, y, colour);
         if (clickable && getTooltips().isPresent())
             if (!focused && isHighlighted(mouseX, mouseY))
                 ScreenHelper.getLastOverlay().addTooltip(QueuedTooltip.create(getTooltips().get().split("\n")));

+ 3 - 3
src/main/java/me/shedaniel/rei/gui/widget/DetailedButtonWidget.java

@@ -5,7 +5,7 @@
 
 package me.shedaniel.rei.gui.widget;
 
-import net.minecraft.network.chat.Component;
+import net.minecraft.text.Text;
 
 import java.awt.*;
 
@@ -13,7 +13,7 @@ public class DetailedButtonWidget extends ButtonWidget {
     
     private DetailedButtonWidget.PressAction pressAction;
     
-    public DetailedButtonWidget(Rectangle rectangle, Component text, PressAction pressAction) {
+    public DetailedButtonWidget(Rectangle rectangle, Text text, PressAction pressAction) {
         super(rectangle, text);
         this.pressAction = pressAction;
     }
@@ -28,7 +28,7 @@ public class DetailedButtonWidget extends ButtonWidget {
         this.pressAction = pressAction;
     }
     
-    public DetailedButtonWidget(int x, int y, int width, int height, Component text, PressAction pressAction) {
+    public DetailedButtonWidget(int x, int y, int width, int height, Text text, PressAction pressAction) {
         super(x, y, width, height, text);
         this.pressAction = pressAction;
     }

+ 8 - 9
src/main/java/me/shedaniel/rei/gui/widget/ItemListOverlay.java

@@ -23,14 +23,13 @@ import net.minecraft.client.resource.language.I18n;
 import net.minecraft.item.Item;
 import net.minecraft.item.ItemGroup;
 import net.minecraft.item.ItemStack;
-import net.minecraft.network.chat.Component;
+import net.minecraft.text.Text;
 import net.minecraft.util.ActionResult;
 import net.minecraft.util.math.MathHelper;
 import net.minecraft.util.registry.Registry;
 import org.apache.commons.lang3.StringUtils;
 
 import java.awt.*;
-import java.util.List;
 import java.util.*;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
@@ -47,7 +46,7 @@ public class ItemListOverlay extends Widget {
                 return tryGetItemStackName(itemStack).compareToIgnoreCase(tryGetItemStackName(t1));
             if (RoughlyEnoughItemsCore.getConfigManager().getConfig().itemListOrdering.equals(ItemListOrdering.item_groups)) {
                 List<ItemGroup> itemGroups = Arrays.asList(ItemGroup.GROUPS);
-                return itemGroups.indexOf(itemStack.getItem().getItemGroup()) - itemGroups.indexOf(t1.getItem().getItemGroup());
+                return itemGroups.indexOf(itemStack.getItem().getGroup()) - itemGroups.indexOf(t1.getItem().getGroup());
             }
             return 0;
         };
@@ -70,7 +69,7 @@ public class ItemListOverlay extends Widget {
     public static List<String> tryGetItemStackToolTip(ItemStack itemStack, boolean careAboutAdvanced) {
         if (!searchBlacklisted.contains(itemStack.getItem()))
             try {
-                return itemStack.getTooltipText(MinecraftClient.getInstance().player, MinecraftClient.getInstance().options.advancedItemTooltips && careAboutAdvanced ? TooltipContext.Default.ADVANCED : TooltipContext.Default.NORMAL).stream().map(Component::getFormattedText).collect(Collectors.toList());
+                return itemStack.getTooltip(MinecraftClient.getInstance().player, MinecraftClient.getInstance().options.advancedItemTooltips && careAboutAdvanced ? TooltipContext.Default.ADVANCED : TooltipContext.Default.NORMAL).stream().map(Text::asFormattedString).collect(Collectors.toList());
             } catch (Throwable e) {
                 e.printStackTrace();
                 searchBlacklisted.add(itemStack.getItem());
@@ -81,7 +80,7 @@ public class ItemListOverlay extends Widget {
     public static String tryGetItemStackName(ItemStack stack) {
         if (!searchBlacklisted.contains(stack.getItem()))
             try {
-                return stack.getDisplayName().getFormattedText();
+                return stack.getName().asFormattedString();
             } catch (Throwable e) {
                 e.printStackTrace();
                 searchBlacklisted.add(stack.getItem());
@@ -191,11 +190,11 @@ public class ItemListOverlay extends Widget {
                                 if (getCurrentItemStack() != null && !getCurrentItemStack().isEmpty()) {
                                     ItemStack cheatedStack = getCurrentItemStack().copy();
                                     if (RoughlyEnoughItemsCore.getConfigManager().getConfig().itemCheatingMode == ItemCheatingMode.REI_LIKE)
-                                        cheatedStack.setAmount(button != 1 ? 1 : cheatedStack.getMaxAmount());
+                                        cheatedStack.setCount(button != 1 ? 1 : cheatedStack.getMaxCount());
                                     else if (RoughlyEnoughItemsCore.getConfigManager().getConfig().itemCheatingMode == ItemCheatingMode.JEI_LIKE)
-                                        cheatedStack.setAmount(button != 0 ? 1 : cheatedStack.getMaxAmount());
+                                        cheatedStack.setCount(button != 0 ? 1 : cheatedStack.getMaxCount());
                                     else
-                                        cheatedStack.setAmount(1);
+                                        cheatedStack.setCount(1);
                                     return ClientHelper.getInstance().tryCheatingStack(cheatedStack);
                                 }
                             } else if (button == 0)
@@ -292,7 +291,7 @@ public class ItemListOverlay extends Widget {
         if (!RoughlyEnoughItemsCore.getConfigManager().isCraftableOnlyEnabled() || stacks.isEmpty() || inventoryItems.isEmpty())
             return stacks;
         List<ItemStack> workingItems = Lists.newArrayList(RecipeHelper.getInstance().findCraftableByItems(inventoryItems));
-        return stacks.stream().filter(itemStack -> workingItems.stream().anyMatch(stack -> stack.isEqualIgnoreTags(itemStack))).collect(Collectors.toList());
+        return stacks.stream().filter(itemStack -> workingItems.stream().anyMatch(stack -> stack.isItemEqualIgnoreDamage(itemStack))).collect(Collectors.toList());
     }
     
     public List<SearchArgument[]> getLastSearchArgument() {

+ 1 - 1
src/main/java/me/shedaniel/rei/gui/widget/RecipeBaseWidget.java

@@ -7,8 +7,8 @@ package me.shedaniel.rei.gui.widget;
 
 import com.mojang.blaze3d.platform.GlStateManager;
 import me.shedaniel.rei.RoughlyEnoughItemsCore;
-import me.shedaniel.rei.gui.config.RecipeScreenType;
 import me.shedaniel.rei.client.ScreenHelper;
+import me.shedaniel.rei.gui.config.RecipeScreenType;
 import net.minecraft.client.render.GuiLighting;
 import net.minecraft.util.Identifier;
 

+ 4 - 2
src/main/java/me/shedaniel/rei/gui/widget/SlotWidget.java

@@ -19,8 +19,10 @@ import net.minecraft.util.Identifier;
 import net.minecraft.util.math.MathHelper;
 
 import java.awt.*;
-import java.util.List;
-import java.util.*;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.Locale;
 import java.util.stream.Collectors;
 
 public class SlotWidget extends HighlightableWidget {

+ 2 - 2
src/main/java/me/shedaniel/rei/gui/widget/TabWidget.java

@@ -10,8 +10,8 @@ import me.shedaniel.rei.api.ClientHelper;
 import me.shedaniel.rei.api.RecipeCategory;
 import me.shedaniel.rei.api.Renderer;
 import me.shedaniel.rei.client.ScreenHelper;
-import net.minecraft.ChatFormat;
 import net.minecraft.client.render.GuiLighting;
+import net.minecraft.util.Formatting;
 import net.minecraft.util.Identifier;
 
 import java.awt.*;
@@ -87,7 +87,7 @@ public class TabWidget extends HighlightableWidget {
     @SuppressWarnings("deprecation")
     private void drawTooltip() {
         if (this.minecraft.options.advancedItemTooltips)
-            ScreenHelper.getLastOverlay().addTooltip(QueuedTooltip.create(categoryName, ChatFormat.DARK_GRAY.toString() + category.getIdentifier().toString(), ClientHelper.getInstance().getFormattedModFromIdentifier(category.getIdentifier())));
+            ScreenHelper.getLastOverlay().addTooltip(QueuedTooltip.create(categoryName, Formatting.DARK_GRAY.toString() + category.getIdentifier().toString(), ClientHelper.getInstance().getFormattedModFromIdentifier(category.getIdentifier())));
         else
             ScreenHelper.getLastOverlay().addTooltip(QueuedTooltip.create(categoryName, ClientHelper.getInstance().getFormattedModFromIdentifier(category.getIdentifier())));
     }

+ 2 - 2
src/main/java/me/shedaniel/rei/listeners/RecipeBookButtonWidgetHooks.java

@@ -1,11 +1,11 @@
 package me.shedaniel.rei.listeners;
 
-import net.minecraft.client.gui.widget.RecipeBookButtonWidget;
+import net.minecraft.client.gui.widget.TexturedButtonWidget;
 import net.minecraft.util.Identifier;
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.gen.Accessor;
 
-@Mixin(RecipeBookButtonWidget.class)
+@Mixin(TexturedButtonWidget.class)
 public interface RecipeBookButtonWidgetHooks {
     @Accessor("texture")
     Identifier rei_getTexture();

+ 2 - 2
src/main/java/me/shedaniel/rei/listeners/RecipeBookGuiHooks.java

@@ -6,7 +6,7 @@
 package me.shedaniel.rei.listeners;
 
 import net.minecraft.client.gui.screen.recipebook.RecipeBookGhostSlots;
-import net.minecraft.client.gui.screen.recipebook.RecipeBookScreen;
+import net.minecraft.client.gui.screen.recipebook.RecipeBookWidget;
 import net.minecraft.client.gui.screen.recipebook.RecipeGroupButtonWidget;
 import net.minecraft.client.gui.widget.TextFieldWidget;
 import org.spongepowered.asm.mixin.Mixin;
@@ -14,7 +14,7 @@ import org.spongepowered.asm.mixin.gen.Accessor;
 
 import java.util.List;
 
-@Mixin(RecipeBookScreen.class)
+@Mixin(RecipeBookWidget.class)
 public interface RecipeBookGuiHooks {
     
     @Accessor("ghostSlots")

+ 1 - 1
src/main/java/me/shedaniel/rei/mixin/MixinBrewingRecipeRegistry.java

@@ -58,7 +58,7 @@ public class MixinBrewingRecipeRegistry {
     private static void rei_registerPotionType(Potion potion) {
         REGISTERED_POTION_TYPES.add(potion);
         SELF_ITEM_RECIPES.forEach(recipe -> {
-            DefaultPlugin.registerBrewingDisplay(new DefaultBrewingDisplay(PotionUtil.setPotion(recipe.input.getDefaultStack(), potion), recipe.ingredient, PotionUtil.setPotion(recipe.output.getDefaultStack(), potion)));
+            DefaultPlugin.registerBrewingDisplay(new DefaultBrewingDisplay(PotionUtil.setPotion(recipe.input.getStackForRender(), potion), recipe.ingredient, PotionUtil.setPotion(recipe.output.getStackForRender(), potion)));
         });
     }
     

+ 2 - 3
src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java

@@ -46,7 +46,6 @@ import net.minecraft.util.math.MathHelper;
 import net.minecraft.util.registry.Registry;
 
 import java.awt.*;
-import java.util.List;
 import java.util.*;
 
 public class DefaultPlugin implements REIPluginEntry {
@@ -90,7 +89,7 @@ public class DefaultPlugin implements REIPluginEntry {
     @Override
     public void registerItems(ItemRegistry itemRegistry) {
         Registry.ITEM.stream().forEach(item -> {
-            itemRegistry.registerItemStack(item.getDefaultStack());
+            itemRegistry.registerItemStack(item.getStackForRender());
             try {
                 itemRegistry.registerItemStack(itemRegistry.getAllStacksFromItem(item));
             } catch (Exception e) {
@@ -130,7 +129,7 @@ public class DefaultPlugin implements REIPluginEntry {
         recipeHelper.registerRecipes(CAMPFIRE, CampfireCookingRecipe.class, DefaultCampfireDisplay::new);
         recipeHelper.registerRecipes(STONE_CUTTING, StonecuttingRecipe.class, DefaultStoneCuttingDisplay::new);
         BREWING_DISPLAYS.stream().forEachOrdered(display -> recipeHelper.registerDisplay(BREWING, display));
-        List<ItemStack> arrowStack = Collections.singletonList(Items.ARROW.getDefaultStack());
+        List<ItemStack> arrowStack = Collections.singletonList(Items.ARROW.getStackForRender());
         RoughlyEnoughItemsCore.getItemRegisterer().getItemList().stream().filter(stack -> stack.getItem().equals(Items.LINGERING_POTION)).forEach(stack -> {
             List<List<ItemStack>> input = new ArrayList<>();
             for(int i = 0; i < 4; i++)

+ 0 - 1
src/main/java/me/shedaniel/rei/plugin/DefaultRecipeBookExclusionZones.java

@@ -6,7 +6,6 @@
 package me.shedaniel.rei.plugin;
 
 import com.google.common.collect.Lists;
-import me.shedaniel.rei.api.BaseBoundsHandler;
 import me.shedaniel.rei.client.ScreenHelper;
 import me.shedaniel.rei.listeners.ContainerScreenHooks;
 import net.minecraft.client.MinecraftClient;

+ 2 - 2
src/main/java/me/shedaniel/rei/plugin/blasting/DefaultBlastingCategory.java

@@ -13,12 +13,12 @@ import me.shedaniel.rei.gui.widget.RecipeBaseWidget;
 import me.shedaniel.rei.gui.widget.SlotWidget;
 import me.shedaniel.rei.gui.widget.Widget;
 import me.shedaniel.rei.plugin.DefaultPlugin;
-import net.minecraft.ChatFormat;
 import net.minecraft.block.Blocks;
 import net.minecraft.client.MinecraftClient;
 import net.minecraft.client.render.GuiLighting;
 import net.minecraft.client.resource.language.I18n;
 import net.minecraft.item.ItemStack;
+import net.minecraft.util.Formatting;
 import net.minecraft.util.Identifier;
 import net.minecraft.util.math.MathHelper;
 
@@ -74,7 +74,7 @@ public class DefaultBlastingCategory implements RecipeCategory<DefaultBlastingDi
         widgets.add(new SlotWidget(startPoint.x + 1, startPoint.y + 37, recipeDisplay.getFuel(), true, true, true) {
             @Override
             protected List<String> getExtraToolTips(ItemStack stack) {
-                return Collections.singletonList(ChatFormat.YELLOW.toString() + I18n.translate("category.rei.smelting.fuel"));
+                return Collections.singletonList(Formatting.YELLOW.toString() + I18n.translate("category.rei.smelting.fuel"));
             }
         });
         widgets.add(new SlotWidget(startPoint.x + 61, startPoint.y + 19, recipeDisplay.getOutput(), false, true, true));

+ 1 - 1
src/main/java/me/shedaniel/rei/plugin/blasting/DefaultBlastingDisplay.java

@@ -29,7 +29,7 @@ public class DefaultBlastingDisplay implements RecipeDisplay {
     public DefaultBlastingDisplay(BlastingRecipe recipe) {
         this.display = recipe;
         this.input = recipe.getPreviewInputs().stream().map(i -> Arrays.asList(i.getStackArray())).collect(Collectors.toList());
-        this.input.add(FurnaceBlockEntity.createFuelTimeMap().keySet().stream().map(Item::getDefaultStack).collect(Collectors.toList()));
+        this.input.add(FurnaceBlockEntity.createFuelTimeMap().keySet().stream().map(Item::getStackForRender).collect(Collectors.toList()));
         this.output = Collections.singletonList(recipe.getOutput());
     }
     

+ 6 - 6
src/main/java/me/shedaniel/rei/plugin/brewing/DefaultBrewingCategory.java

@@ -12,13 +12,13 @@ import me.shedaniel.rei.gui.widget.RecipeBaseWidget;
 import me.shedaniel.rei.gui.widget.SlotWidget;
 import me.shedaniel.rei.gui.widget.Widget;
 import me.shedaniel.rei.plugin.DefaultPlugin;
-import net.minecraft.ChatFormat;
 import net.minecraft.block.Blocks;
 import net.minecraft.client.MinecraftClient;
 import net.minecraft.client.render.GuiLighting;
 import net.minecraft.client.resource.language.I18n;
 import net.minecraft.item.ItemStack;
 import net.minecraft.item.Items;
+import net.minecraft.util.Formatting;
 import net.minecraft.util.Identifier;
 import net.minecraft.util.math.MathHelper;
 
@@ -66,31 +66,31 @@ public class DefaultBrewingCategory implements RecipeCategory<DefaultBrewingDisp
         widgets.add(new SlotWidget(startPoint.x + 63, startPoint.y + 1, recipeDisplay.getInput().get(0), false, true, true) {
             @Override
             protected List<String> getExtraToolTips(ItemStack stack) {
-                return Collections.singletonList(ChatFormat.YELLOW.toString() + I18n.translate("category.rei.brewing.input"));
+                return Collections.singletonList(Formatting.YELLOW.toString() + I18n.translate("category.rei.brewing.input"));
             }
         });
         widgets.add(new SlotWidget(startPoint.x + 40, startPoint.y + 1, recipeDisplay.getInput().get(1), false, true, true) {
             @Override
             protected List<String> getExtraToolTips(ItemStack stack) {
-                return Collections.singletonList(ChatFormat.YELLOW.toString() + I18n.translate("category.rei.brewing.reactant"));
+                return Collections.singletonList(Formatting.YELLOW.toString() + I18n.translate("category.rei.brewing.reactant"));
             }
         });
         widgets.add(new SlotWidget(startPoint.x + 40, startPoint.y + 35, recipeDisplay.getOutput(0), false, true, true) {
             @Override
             protected List<String> getExtraToolTips(ItemStack stack) {
-                return Collections.singletonList(ChatFormat.YELLOW.toString() + I18n.translate("category.rei.brewing.result"));
+                return Collections.singletonList(Formatting.YELLOW.toString() + I18n.translate("category.rei.brewing.result"));
             }
         });
         widgets.add(new SlotWidget(startPoint.x + 63, startPoint.y + 42, recipeDisplay.getOutput(1), false, true, true) {
             @Override
             protected List<String> getExtraToolTips(ItemStack stack) {
-                return Collections.singletonList(ChatFormat.YELLOW.toString() + I18n.translate("category.rei.brewing.result"));
+                return Collections.singletonList(Formatting.YELLOW.toString() + I18n.translate("category.rei.brewing.result"));
             }
         });
         widgets.add(new SlotWidget(startPoint.x + 86, startPoint.y + 35, recipeDisplay.getOutput(2), false, true, true) {
             @Override
             protected List<String> getExtraToolTips(ItemStack stack) {
-                return Collections.singletonList(ChatFormat.YELLOW.toString() + I18n.translate("category.rei.brewing.result"));
+                return Collections.singletonList(Formatting.YELLOW.toString() + I18n.translate("category.rei.brewing.result"));
             }
         });
         return widgets;

+ 1 - 1
src/main/java/me/shedaniel/rei/plugin/composting/DefaultCompostingCategory.java

@@ -78,7 +78,7 @@ public class DefaultCompostingCategory implements RecipeCategory<DefaultComposti
         int i = 0;
         for(int y = 0; y < 6; y++)
             for(int x = 0; x < 8; x++) {
-                widgets.add(new SlotWidget((int) bounds.getCenterX() - 72 + x * 18, bounds.y + y * 18, stacks.size() > i ? Arrays.asList(stacks.get(i).asItem().getDefaultStack()) : Lists.newArrayList(), true, true, true) {
+                widgets.add(new SlotWidget((int) bounds.getCenterX() - 72 + x * 18, bounds.y + y * 18, stacks.size() > i ? Arrays.asList(stacks.get(i).asItem().getStackForRender()) : Lists.newArrayList(), true, true, true) {
                     @Override
                     protected List<String> getExtraToolTips(ItemStack stack) {
                         final List<String>[] thing = new List[]{null};

+ 2 - 2
src/main/java/me/shedaniel/rei/plugin/composting/DefaultCompostingDisplay.java

@@ -38,7 +38,7 @@ public class DefaultCompostingDisplay implements RecipeDisplay {
     public List<List<ItemStack>> getInput() {
         List<List<ItemStack>> lists = new ArrayList<>();
         allItems.stream().forEachOrdered(itemProvider -> {
-            lists.add(Arrays.asList(itemProvider.asItem().getDefaultStack()));
+            lists.add(Arrays.asList(itemProvider.asItem().getStackForRender()));
         });
         return lists;
     }
@@ -59,7 +59,7 @@ public class DefaultCompostingDisplay implements RecipeDisplay {
     
     @Override
     public List<List<ItemStack>> getRequiredItems() {
-        return Arrays.asList(new LinkedList<>(allItems.stream().map(ItemConvertible::asItem).map(Item::getDefaultStack).collect(Collectors.toList())));
+        return Arrays.asList(new LinkedList<>(allItems.stream().map(ItemConvertible::asItem).map(Item::getStackForRender).collect(Collectors.toList())));
     }
     
     public List<ItemConvertible> getItemsByOrder() {

+ 5 - 5
src/main/java/me/shedaniel/rei/plugin/crafting/DefaultCraftingCategory.java

@@ -13,12 +13,12 @@ import me.shedaniel.rei.gui.widget.RecipeBaseWidget;
 import me.shedaniel.rei.gui.widget.SlotWidget;
 import me.shedaniel.rei.gui.widget.Widget;
 import me.shedaniel.rei.plugin.DefaultPlugin;
-import net.minecraft.ChatFormat;
 import net.minecraft.block.Blocks;
 import net.minecraft.client.MinecraftClient;
 import net.minecraft.client.render.GuiLighting;
 import net.minecraft.client.resource.language.I18n;
 import net.minecraft.item.ItemStack;
+import net.minecraft.util.Formatting;
 import net.minecraft.util.Identifier;
 
 import java.awt.*;
@@ -73,11 +73,11 @@ public class DefaultCraftingCategory implements RecipeCategory<DefaultCraftingDi
         widgets.add(new SlotWidget(startPoint.x + 95, startPoint.y + 19, recipeDisplaySupplier.get().getOutput(), false, true, true) {
             @Override
             protected String getItemCountOverlay(ItemStack currentStack) {
-                if (currentStack.getAmount() == 1)
+                if (currentStack.getCount() == 1)
                     return "";
-                if (currentStack.getAmount() < 1)
-                    return ChatFormat.RED.toString() + currentStack.getAmount();
-                return currentStack.getAmount() + "";
+                if (currentStack.getCount() < 1)
+                    return Formatting.RED.toString() + currentStack.getCount();
+                return currentStack.getCount() + "";
             }
         });
         return widgets;

+ 2 - 2
src/main/java/me/shedaniel/rei/plugin/smelting/DefaultSmeltingCategory.java

@@ -13,12 +13,12 @@ import me.shedaniel.rei.gui.widget.RecipeBaseWidget;
 import me.shedaniel.rei.gui.widget.SlotWidget;
 import me.shedaniel.rei.gui.widget.Widget;
 import me.shedaniel.rei.plugin.DefaultPlugin;
-import net.minecraft.ChatFormat;
 import net.minecraft.block.Blocks;
 import net.minecraft.client.MinecraftClient;
 import net.minecraft.client.render.GuiLighting;
 import net.minecraft.client.resource.language.I18n;
 import net.minecraft.item.ItemStack;
+import net.minecraft.util.Formatting;
 import net.minecraft.util.Identifier;
 import net.minecraft.util.math.MathHelper;
 
@@ -73,7 +73,7 @@ public class DefaultSmeltingCategory implements RecipeCategory<DefaultSmeltingDi
         widgets.add(new SlotWidget(startPoint.x + 1, startPoint.y + 37, recipeDisplaySupplier.get().getFuel(), true, true, true) {
             @Override
             protected List<String> getExtraToolTips(ItemStack stack) {
-                return Collections.singletonList(ChatFormat.YELLOW.toString() + I18n.translate("category.rei.smelting.fuel"));
+                return Collections.singletonList(Formatting.YELLOW.toString() + I18n.translate("category.rei.smelting.fuel"));
             }
         });
         widgets.add(new SlotWidget(startPoint.x + 61, startPoint.y + 19, recipeDisplaySupplier.get().getOutput(), false, true, true));

+ 1 - 1
src/main/java/me/shedaniel/rei/plugin/smelting/DefaultSmeltingDisplay.java

@@ -29,7 +29,7 @@ public class DefaultSmeltingDisplay implements RecipeDisplay {
     public DefaultSmeltingDisplay(SmeltingRecipe recipe) {
         this.display = recipe;
         this.input = recipe.getPreviewInputs().stream().map(i -> Arrays.asList(i.getStackArray())).collect(Collectors.toList());
-        this.input.add(FurnaceBlockEntity.createFuelTimeMap().keySet().stream().map(Item::getDefaultStack).collect(Collectors.toList()));
+        this.input.add(FurnaceBlockEntity.createFuelTimeMap().keySet().stream().map(Item::getStackForRender).collect(Collectors.toList()));
         this.output = Collections.singletonList(recipe.getOutput());
     }
     

+ 2 - 2
src/main/java/me/shedaniel/rei/plugin/smoking/DefaultSmokingCategory.java

@@ -13,12 +13,12 @@ import me.shedaniel.rei.gui.widget.RecipeBaseWidget;
 import me.shedaniel.rei.gui.widget.SlotWidget;
 import me.shedaniel.rei.gui.widget.Widget;
 import me.shedaniel.rei.plugin.DefaultPlugin;
-import net.minecraft.ChatFormat;
 import net.minecraft.block.Blocks;
 import net.minecraft.client.MinecraftClient;
 import net.minecraft.client.render.GuiLighting;
 import net.minecraft.client.resource.language.I18n;
 import net.minecraft.item.ItemStack;
+import net.minecraft.util.Formatting;
 import net.minecraft.util.Identifier;
 import net.minecraft.util.math.MathHelper;
 
@@ -73,7 +73,7 @@ public class DefaultSmokingCategory implements RecipeCategory<DefaultSmokingDisp
         widgets.add(new SlotWidget(startPoint.x + 1, startPoint.y + 37, recipeDisplaySupplier.get().getFuel(), true, true, true) {
             @Override
             protected List<String> getExtraToolTips(ItemStack stack) {
-                return Collections.singletonList(ChatFormat.YELLOW.toString() + I18n.translate("category.rei.smelting.fuel"));
+                return Collections.singletonList(Formatting.YELLOW.toString() + I18n.translate("category.rei.smelting.fuel"));
             }
         });
         widgets.add(new SlotWidget(startPoint.x + 61, startPoint.y + 19, recipeDisplaySupplier.get().getOutput(), false, true, true));

+ 1 - 1
src/main/java/me/shedaniel/rei/plugin/smoking/DefaultSmokingDisplay.java

@@ -29,7 +29,7 @@ public class DefaultSmokingDisplay implements RecipeDisplay {
     public DefaultSmokingDisplay(SmokingRecipe recipe) {
         this.display = recipe;
         this.input = recipe.getPreviewInputs().stream().map(i -> Arrays.asList(i.getStackArray())).collect(Collectors.toList());
-        this.input.add(FurnaceBlockEntity.createFuelTimeMap().keySet().stream().map(Item::getDefaultStack).collect(Collectors.toList()));
+        this.input.add(FurnaceBlockEntity.createFuelTimeMap().keySet().stream().map(Item::getStackForRender).collect(Collectors.toList()));
         this.output = Collections.singletonList(recipe.getOutput());
     }