aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2021-04-14 19:32:28 +0800
committershedaniel <daniel@shedaniel.me>2021-04-14 19:32:28 +0800
commita92c5492155f1bd12853acea98a235d3bb78839e (patch)
treea8cb71de497f732265b7c1567f8e9393bb92eb87
parent76b81a28284a8bcfb073b4386d823a73d605b971 (diff)
parentd892547a9b8a8ae85655900c08b6cc97c6aa2050 (diff)
downloadRoughlyEnoughItems-a92c5492155f1bd12853acea98a235d3bb78839e.tar.gz
RoughlyEnoughItems-a92c5492155f1bd12853acea98a235d3bb78839e.tar.bz2
RoughlyEnoughItems-a92c5492155f1bd12853acea98a235d3bb78839e.zip
Merge remote-tracking branch 'origin/6.x' into 6.x-1.17
# Conflicts: # api/src/main/java/me/shedaniel/rei/api/common/util/EntryStacks.java # runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/FluidEntryDefinition.java # runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/registry/category/CategoryRegistry.java14
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/registry/display/DisplayRegistry.java8
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/common/entry/EntryStack.java4
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/common/util/EntryStacks.java18
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/common/util/TextRepresentable.java6
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientPlugin.java22
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultCampfireDisplay.java3
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultCompostingDisplay.java3
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultFuelDisplay.java3
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultInformationDisplay.java3
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultPathingDisplay.java3
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultSmithingDisplay.java3
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultStoneCuttingDisplay.java3
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultStrippingDisplay.java3
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultTillingDisplay.java3
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/beacon/DefaultBeaconBaseDisplay.java3
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/beacon/DefaultBeaconPaymentDisplay.java3
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/brewing/DefaultBrewingDisplay.java4
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/cooking/DefaultBlastingDisplay.java3
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/cooking/DefaultCookingDisplay.java3
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/cooking/DefaultSmeltingDisplay.java3
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/DefaultCraftingDisplay.java3
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/DefaultCustomDisplay.java3
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/DefaultShapedDisplay.java3
-rw-r--r--default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/crafting/DefaultShapelessDisplay.java3
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java32
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/entry/type/types/RenderingEntryDefinition.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/registry/category/CategoryRegistryImpl.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/registry/display/DisplayRegistryImpl.java4
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/view/ViewsImpl.java4
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/common/entry/type/EntryRegistryImpl.java1
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/common/entry/type/types/BuiltinEntryDefinition.java12
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/common/entry/type/types/EmptyEntryDefinition.java9
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/common/plugins/PluginManagerImpl.java5
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/FluidEntryDefinition.java12
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/plugin/client/entry/ItemEntryDefinition.java23
36 files changed, 118 insertions, 118 deletions
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/registry/category/CategoryRegistry.java b/api/src/main/java/me/shedaniel/rei/api/client/registry/category/CategoryRegistry.java
index 90abba478..254d0b5fd 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/registry/category/CategoryRegistry.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/registry/category/CategoryRegistry.java
@@ -58,8 +58,8 @@ public interface CategoryRegistry extends Reloadable<REIClientPlugin>, Iterable<
*
* @param category the category to register
*/
- default <T extends Display> void register(DisplayCategory<T> category) {
- register(category, config -> {});
+ default <T extends Display> void add(DisplayCategory<T> category) {
+ add(category, config -> {});
}
/**
@@ -68,16 +68,16 @@ public interface CategoryRegistry extends Reloadable<REIClientPlugin>, Iterable<
* @param category the category to register
* @param configurator the consumer for configuring the attributes of the category
*/
- <T extends Display> void register(DisplayCategory<T> category, Consumer<CategoryConfiguration<T>> configurator);
+ <T extends Display> void add(DisplayCategory<T> category, Consumer<CategoryConfiguration<T>> configurator);
/**
* Registers the categories supplied.
*
* @param categories the categories to register
*/
- default <T extends Display> void register(Iterable<DisplayCategory<? extends T>> categories) {
+ default <T extends Display> void add(Iterable<DisplayCategory<? extends T>> categories) {
for (DisplayCategory<?> category : categories) {
- register(category);
+ add(category);
}
}
@@ -86,9 +86,9 @@ public interface CategoryRegistry extends Reloadable<REIClientPlugin>, Iterable<
*
* @param categories the categories to register
*/
- default <T extends Display> void register(DisplayCategory<? extends T>... categories) {
+ default <T extends Display> void add(DisplayCategory<? extends T>... categories) {
for (DisplayCategory<?> category : categories) {
- register(category);
+ add(category);
}
}
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/registry/display/DisplayRegistry.java b/api/src/main/java/me/shedaniel/rei/api/client/registry/display/DisplayRegistry.java
index 65bdb9460..7535645a5 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/registry/display/DisplayRegistry.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/registry/display/DisplayRegistry.java
@@ -62,22 +62,22 @@ public interface DisplayRegistry extends RecipeManagerContext<REIClientPlugin> {
*
* @param display the recipe display
*/
- void registerDisplay(Display display);
+ void add(Display display);
/**
* Returns an unmodifiable map of displays visible to the player
*
* @return an unmodifiable map of displays
*/
- Map<CategoryIdentifier<?>, List<Display>> getAllDisplays();
+ Map<CategoryIdentifier<?>, List<Display>> getAll();
/**
* Returns the list of displays visible to the player for a category
*
* @return the list of displays
*/
- default <D extends Display> List<D> getDisplays(CategoryIdentifier<D> categoryId) {
- return (List<D>) getAllDisplays().getOrDefault(categoryId, Collections.emptyList());
+ default <D extends Display> List<D> get(CategoryIdentifier<D> categoryId) {
+ return (List<D>) getAll().getOrDefault(categoryId, Collections.emptyList());
}
/**
diff --git a/api/src/main/java/me/shedaniel/rei/api/common/entry/EntryStack.java b/api/src/main/java/me/shedaniel/rei/api/common/entry/EntryStack.java
index 3b0f6b454..7288ca97a 100644
--- a/api/src/main/java/me/shedaniel/rei/api/common/entry/EntryStack.java
+++ b/api/src/main/java/me/shedaniel/rei/api/common/entry/EntryStack.java
@@ -49,7 +49,9 @@ import java.util.function.BiFunction;
import java.util.function.Function;
import java.util.function.Supplier;
-@Environment(EnvType.CLIENT)
+/**
+ * @see me.shedaniel.rei.api.common.util.EntryStacks
+ */
public interface EntryStack<T> extends TextRepresentable, Renderer {
static EntryStack<Unit> empty() {
return Internals.getEntryStackProvider().empty();
diff --git a/api/src/main/java/me/shedaniel/rei/api/common/util/EntryStacks.java b/api/src/main/java/me/shedaniel/rei/api/common/util/EntryStacks.java
index 3cd5fbd50..a70eb4521 100644
--- a/api/src/main/java/me/shedaniel/rei/api/common/util/EntryStacks.java
+++ b/api/src/main/java/me/shedaniel/rei/api/common/util/EntryStacks.java
@@ -139,6 +139,18 @@ public final class EntryStacks {
}
/**
+ * Hash Code of the {@code context} context.
+ *
+ * @param stack the stack to hash code
+ * @param context the context to use
+ * @param <T> the type of the stack
+ * @return the hash code of the {@code context} context
+ */
+ public static <T> long hash(EntryStack<T> stack, ComparisonContext context) {
+ return stack.getDefinition().hash(stack, stack.getValue(), context);
+ }
+
+ /**
* Hash Code of the {@link ComparisonContext#EXACT} context, stacks with the same hash code should share the same normalized stack.
* <p>
* For example, enchantment books of different enchantments will not receive the same hash code under this context.
@@ -147,9 +159,10 @@ public final class EntryStacks {
* @param stack the stack to hash code
* @param <T> the type of the stack
* @return the hash code of the {@link ComparisonContext#EXACT} context
+ * @see #hash(EntryStack, ComparisonContext)
*/
public static <T> long hashExact(EntryStack<T> stack) {
- return stack.getDefinition().hash(stack, stack.getValue(), ComparisonContext.EXACT);
+ return hash(stack, ComparisonContext.EXACT);
}
/**
@@ -161,8 +174,9 @@ public final class EntryStacks {
* @param stack the stack to hash code
* @param <T> the type of the stack
* @return the hash code of the {@link ComparisonContext#FUZZY} context
+ * @see #hash(EntryStack, ComparisonContext)
*/
public static <T> long hashFuzzy(EntryStack<T> stack) {
- return stack.getDefinition().hash(stack, stack.getValue(), ComparisonContext.FUZZY);
+ return hash(stack, ComparisonContext.FUZZY);
}
}
diff --git a/api/src/main/java/me/shedaniel/rei/api/common/util/TextRepresentable.java b/api/src/main/java/me/shedaniel/rei/api/common/util/TextRepresentable.java
index b4b0c9c0c..0cf9bc535 100644
--- a/api/src/main/java/me/shedaniel/rei/api/common/util/TextRepresentable.java
+++ b/api/src/main/java/me/shedaniel/rei/api/common/util/TextRepresentable.java
@@ -23,11 +23,11 @@
package me.shedaniel.rei.api.common.util;
-import net.fabricmc.api.EnvType;
-import net.fabricmc.api.Environment;
import net.minecraft.network.chat.Component;
-@Environment(EnvType.CLIENT)
+/**
+ * A component that can be represented in {@link Component}.
+ */
public interface TextRepresentable {
default Component asFormattedText() {
return ImmutableTextComponent.EMPTY;
diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientPlugin.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientPlugin.java
index 8cfcac481..fab50547c 100644
--- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientPlugin.java
+++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientPlugin.java
@@ -110,12 +110,12 @@ public class DefaultClientPlugin implements REIClientPlugin, BuiltinClientPlugin
@Override
public void registerBrewingRecipe(Ingredient input, Ingredient ingredient, ItemStack output) {
- DisplayRegistry.getInstance().registerDisplay(new DefaultBrewingDisplay(new BrewingRecipe(input, ingredient, output)));
+ DisplayRegistry.getInstance().add(new DefaultBrewingDisplay(new BrewingRecipe(input, ingredient, output)));
}
@Override
public void registerInformation(EntryIngredient ingredient, Component name, UnaryOperator<List<Component>> textBuilder) {
- DisplayRegistry.getInstance().registerDisplay(DefaultInformationDisplay.createFromEntries(ingredient, name).lines(textBuilder.apply(Lists.newArrayList())));
+ DisplayRegistry.getInstance().add(DefaultInformationDisplay.createFromEntries(ingredient, name).lines(textBuilder.apply(Lists.newArrayList())));
}
@Override
@@ -137,7 +137,7 @@ public class DefaultClientPlugin implements REIClientPlugin, BuiltinClientPlugin
@Override
public void registerCategories(CategoryRegistry registry) {
- registry.register(
+ registry.add(
new DefaultCraftingCategory(),
new DefaultCookingCategory(SMELTING, EntryStacks.of(Items.FURNACE), "category.rei.smelting"),
new DefaultCookingCategory(SMOKING, EntryStacks.of(Items.SMOKER), "category.rei.smoking"),
@@ -222,7 +222,7 @@ public class DefaultClientPlugin implements REIClientPlugin, BuiltinClientPlugin
registry.registerFiller(UpgradeRecipe.class, DefaultSmithingDisplay::new);
registry.registerFiller(BrewingRecipe.class, DefaultBrewingDisplay::new);
for (Map.Entry<Item, Integer> entry : AbstractFurnaceBlockEntity.getFuel().entrySet()) {
- registry.registerDisplay(new DefaultFuelDisplay(Collections.singletonList(EntryIngredients.of(entry.getKey())), Collections.emptyList(), entry.getValue()));
+ registry.add(new DefaultFuelDisplay(Collections.singletonList(EntryIngredients.of(entry.getKey())), Collections.emptyList(), entry.getValue()));
}
EntryIngredient arrowStack = EntryIngredient.of(EntryStacks.of(Items.ARROW));
ReferenceSet<Potion> registeredPotions = new ReferenceOpenHashSet<>();
@@ -240,7 +240,7 @@ public class DefaultClientPlugin implements REIClientPlugin, BuiltinClientPlugin
PotionUtils.setPotion(outputStack, potion);
PotionUtils.setCustomEffects(outputStack, PotionUtils.getCustomEffects(itemStack));
EntryIngredient output = EntryIngredients.of(outputStack);
- registry.registerDisplay(new DefaultCustomDisplay(null, input, Collections.singletonList(output)));
+ registry.add(new DefaultCustomDisplay(null, input, Collections.singletonList(output)));
}
});
if (ComposterBlock.COMPOSTABLES.isEmpty()) {
@@ -250,19 +250,19 @@ public class DefaultClientPlugin implements REIClientPlugin, BuiltinClientPlugin
Iterator<List<Object2FloatMap.Entry<ItemLike>>> iterator = Iterators.partition(ComposterBlock.COMPOSTABLES.object2FloatEntrySet().stream().sorted(Map.Entry.comparingByValue()).iterator(), 48);
while (iterator.hasNext()) {
List<Object2FloatMap.Entry<ItemLike>> entries = iterator.next();
- registry.registerDisplay(DefaultCompostingDisplay.of(entries, Collections.singletonList(EntryIngredients.of(new ItemStack(Items.BONE_MEAL))), page++));
+ registry.add(DefaultCompostingDisplay.of(entries, Collections.singletonList(EntryIngredients.of(new ItemStack(Items.BONE_MEAL))), page++));
}
DummyAxeItem.getStrippedBlocksMap().entrySet().stream().sorted(Comparator.comparing(b -> Registry.BLOCK.getKey(b.getKey()))).forEach(set -> {
- registry.registerDisplay(new DefaultStrippingDisplay(EntryStacks.of(set.getKey()), EntryStacks.of(set.getValue())));
+ registry.add(new DefaultStrippingDisplay(EntryStacks.of(set.getKey()), EntryStacks.of(set.getValue())));
});
DummyHoeItem.getTilledBlocksMap().entrySet().stream().sorted(Comparator.comparing(b -> Registry.BLOCK.getKey(b.getKey()))).forEach(set -> {
- registry.registerDisplay(new DefaultTillingDisplay(EntryStacks.of(set.getKey()), EntryStacks.of(set.getValue().getBlock())));
+ registry.add(new DefaultTillingDisplay(EntryStacks.of(set.getKey()), EntryStacks.of(set.getValue().getBlock())));
});
DummyShovelItem.getPathBlocksMap().entrySet().stream().sorted(Comparator.comparing(b -> Registry.BLOCK.getKey(b.getKey()))).forEach(set -> {
- registry.registerDisplay(new DefaultPathingDisplay(EntryStacks.of(set.getKey()), EntryStacks.of(set.getValue().getBlock())));
+ registry.add(new DefaultPathingDisplay(EntryStacks.of(set.getKey()), EntryStacks.of(set.getValue().getBlock())));
});
- registry.registerDisplay(new DefaultBeaconBaseDisplay(CollectionUtils.map(Lists.newArrayList(BlockTags.BEACON_BASE_BLOCKS.getValues()), ItemStack::new)));
- registry.registerDisplay(new DefaultBeaconPaymentDisplay(CollectionUtils.map(Lists.newArrayList(ItemTags.BEACON_PAYMENT_ITEMS.getValues()), ItemStack::new)));
+ registry.add(new DefaultBeaconBaseDisplay(CollectionUtils.map(Lists.newArrayList(BlockTags.BEACON_BASE_BLOCKS.getValues()), ItemStack::new)));
+ registry.add(new DefaultBeaconPaymentDisplay(CollectionUtils.map(Lists.newArrayList(ItemTags.BEACON_PAYMENT_ITEMS.getValues()), ItemStack::new)));
if (Platform.isFabric()) {
Set<Potion> potions = Sets.newLinkedHashSet();
for (Ingredient container : PotionBrewing.ALLOWED_CONTAINERS) {
diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultCampfireDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultCampfireDisplay.java
index 1f3ff101b..536db0fc1 100644
--- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultCampfireDisplay.java
+++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultCampfireDisplay.java
@@ -28,8 +28,6 @@ import me.shedaniel.rei.api.common.display.basic.BasicDisplay;
import me.shedaniel.rei.api.common.entry.EntryIngredient;
import me.shedaniel.rei.api.common.util.EntryIngredients;
import me.shedaniel.rei.plugin.common.BuiltinPlugin;
-import net.fabricmc.api.EnvType;
-import net.fabricmc.api.Environment;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.crafting.CampfireCookingRecipe;
@@ -38,7 +36,6 @@ import java.util.Collections;
import java.util.List;
import java.util.Optional;
-@Environment(EnvType.CLIENT)
public class DefaultCampfireDisplay extends BasicDisplay {
private double cookTime;
diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultCompostingDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultCompostingDisplay.java
index 5ec2545e3..ad43179b4 100644
--- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultCompostingDisplay.java
+++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultCompostingDisplay.java
@@ -29,15 +29,12 @@ import me.shedaniel.rei.api.common.display.basic.BasicDisplay;
import me.shedaniel.rei.api.common.entry.EntryIngredient;
import me.shedaniel.rei.api.common.util.EntryIngredients;
import me.shedaniel.rei.plugin.common.BuiltinPlugin;
-import net.fabricmc.api.EnvType;
-import net.fabricmc.api.Environment;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.world.level.ItemLike;
import java.util.Arrays;
import java.util.List;
-@Environment(EnvType.CLIENT)
public class DefaultCompostingDisplay extends BasicDisplay {
private int page;
diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultFuelDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultFuelDisplay.java
index 7b1db3441..c3b03e294 100644
--- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultFuelDisplay.java
+++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultFuelDisplay.java
@@ -27,13 +27,10 @@ import me.shedaniel.rei.api.common.category.CategoryIdentifier;
import me.shedaniel.rei.api.common.display.basic.BasicDisplay;
import me.shedaniel.rei.api.common.entry.EntryIngredient;
import me.shedaniel.rei.plugin.common.BuiltinPlugin;
-import net.fabricmc.api.EnvType;
-import net.fabricmc.api.Environment;
import net.minecraft.nbt.CompoundTag;
import java.util.List;
-@Environment(EnvType.CLIENT)
public class DefaultFuelDisplay extends BasicDisplay {
private int fuelTime;
diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultInformationDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultInformationDisplay.java
index 519405a0e..29c15e70b 100644
--- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultInformationDisplay.java
+++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultInformationDisplay.java
@@ -31,8 +31,6 @@ import me.shedaniel.rei.api.common.display.DisplaySerializer;
import me.shedaniel.rei.api.common.entry.EntryIngredient;
import me.shedaniel.rei.api.common.entry.EntryStack;
import me.shedaniel.rei.plugin.common.BuiltinPlugin;
-import net.fabricmc.api.EnvType;
-import net.fabricmc.api.Environment;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.ListTag;
import net.minecraft.nbt.StringTag;
@@ -41,7 +39,6 @@ import net.minecraft.network.chat.Component;
import java.util.*;
-@Environment(EnvType.CLIENT)
public class DefaultInformationDisplay implements Display {
private EntryIngredient entryStacks;
private List<Component> texts;
diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultPathingDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultPathingDisplay.java
index ff30de7bd..9901ba261 100644
--- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultPathingDisplay.java
+++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultPathingDisplay.java
@@ -28,13 +28,10 @@ import me.shedaniel.rei.api.common.display.basic.BasicDisplay;
import me.shedaniel.rei.api.common.entry.EntryIngredient;
import me.shedaniel.rei.api.common.entry.EntryStack;
import me.shedaniel.rei.plugin.common.BuiltinPlugin;
-import net.fabricmc.api.EnvType;
-import net.fabricmc.api.Environment;
import java.util.Collections;
import java.util.List;
-@Environment(EnvType.CLIENT)
public class DefaultPathingDisplay extends BasicDisplay {
public DefaultPathingDisplay(EntryStack<?> in, EntryStack<?> out) {
this(Collections.singletonList(EntryIngredient.of(in)), Collections.singletonList(EntryIngredient.of(out)));
diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultSmithingDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultSmithingDisplay.java
index ac8a3d19c..5d77b2730 100644
--- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultSmithingDisplay.java
+++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultSmithingDisplay.java
@@ -28,8 +28,6 @@ import me.shedaniel.rei.api.common.display.basic.BasicDisplay;
import me.shedaniel.rei.api.common.entry.EntryIngredient;
import me.shedaniel.rei.api.common.util.EntryIngredients;
import me.shedaniel.rei.plugin.common.BuiltinPlugin;
-import net.fabricmc.api.EnvType;
-import net.fabricmc.api.Environment;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.crafting.UpgradeRecipe;
@@ -38,7 +36,6 @@ import java.util.Collections;
import java.util.List;
import java.util.Optional;
-@Environment(EnvType.CLIENT)
public class DefaultSmithingDisplay extends BasicDisplay {
public DefaultSmithingDisplay(UpgradeRecipe recipe) {
this(
diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultStoneCuttingDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultStoneCuttingDisplay.java
index 4f97fdc5d..baf9baeda 100644
--- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultStoneCuttingDisplay.java
+++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultStoneCuttingDisplay.java
@@ -28,8 +28,6 @@ import me.shedaniel.rei.api.common.display.basic.BasicDisplay;
import me.shedaniel.rei.api.common.entry.EntryIngredient;
import me.shedaniel.rei.api.common.util.EntryIngredients;
import me.shedaniel.rei.plugin.common.BuiltinPlugin;
-import net.fabricmc.api.EnvType;
-import net.fabricmc.api.Environment;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.crafting.StonecutterRecipe;
@@ -37,7 +35,6 @@ import java.util.Collections;
import java.util.List;
import java.util.Optional;
-@Environment(EnvType.CLIENT)
public class DefaultStoneCuttingDisplay extends BasicDisplay {
public DefaultStoneCuttingDisplay(StonecutterRecipe recipe) {
this(EntryIngredients.ofIngredients(recipe.getIngredients()), Collections.singletonList(EntryIngredients.of(recipe.getResultItem())),
diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultStrippingDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultStrippingDisplay.java
index 4352a05cc..4363e180f 100644
--- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultStrippingDisplay.java
+++ b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultStrippingDisplay.java
@@ -28,13 +28,10 @@ import me.shedaniel.rei.api.common.display.basic.BasicDisplay;
import me.shedaniel.rei.api.common.entry.EntryIngredient;
import me.shedaniel.rei.api.common.entry.EntryStack;
import me.shedaniel.rei.plugin.common.BuiltinPlugin;
-import net.fabricmc.api.EnvType;
-import net.fabricmc.api.Environment;
import java.util.Collections;
import java.util.List;
-@Environment(EnvType.CLIENT)
public class DefaultStrippingDisplay extends BasicDisplay {
public DefaultStrippingDisplay(EntryStack<?> in, EntryStack<?> out) {
this(Collections.singletonList(EntryIngredient.of(in)), Collections.singletonList(EntryIngredient.of(out)));
diff --git a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultTillingDisplay.java b/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultTillingDisplay.java
index 48991cefb..86d4de5f2 100644
--- a/default-plugin/src/main/java/me/shedaniel/rei/plugin/common/displays/DefaultTillingDisplay.java
+++ b/default-plug