From 98c736af46f9d79061229109c39ebcf2e382e919 Mon Sep 17 00:00:00 2001 From: JFronny Date: Mon, 27 Sep 2021 18:25:19 +0200 Subject: [PATCH] refactor some classes. this will break stuff so I will release it after 1.17 --- .gitignore | 5 ++++ .../libjf/config/gui/TinyConfigScreen.java | 3 -- .../gitlab/jfronny/libjf/data/RecipeUtil.java | 28 +++++++++++-------- .../jfronny/libjf/data/ResourcePath.java | 7 +---- .../jfronny/libjf/data/WrappedPack.java | 6 ++-- .../EventCallImpl.java | 2 +- .../WrappedResourcePack.java | 4 +-- .../libjf/mixin/RecipeManagerMixin.java | 13 ++++----- 8 files changed, 33 insertions(+), 35 deletions(-) rename src/main/java/io/gitlab/jfronny/libjf/data/{wrappedPackImpl => impl}/EventCallImpl.java (97%) rename src/main/java/io/gitlab/jfronny/libjf/data/{wrappedPackImpl => impl}/WrappedResourcePack.java (94%) diff --git a/.gitignore b/.gitignore index a61caf3..57080fd 100644 --- a/.gitignore +++ b/.gitignore @@ -117,3 +117,8 @@ run/ # Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored) !gradle-wrapper.jar + +.classpath +bin +.project +.settings diff --git a/src/main/java/io/gitlab/jfronny/libjf/config/gui/TinyConfigScreen.java b/src/main/java/io/gitlab/jfronny/libjf/config/gui/TinyConfigScreen.java index fcc4029..5a83cb8 100644 --- a/src/main/java/io/gitlab/jfronny/libjf/config/gui/TinyConfigScreen.java +++ b/src/main/java/io/gitlab/jfronny/libjf/config/gui/TinyConfigScreen.java @@ -4,11 +4,8 @@ import io.gitlab.jfronny.libjf.Libjf; import io.gitlab.jfronny.libjf.config.Config; import io.gitlab.jfronny.libjf.config.Entry; import io.gitlab.jfronny.libjf.config.EntryInfo; -import io.gitlab.jfronny.libjf.config.gui.ButtonEntry; -import io.gitlab.jfronny.libjf.config.gui.MidnightConfigListWidget; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import net.fabricmc.loader.api.FabricLoader; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.ScreenTexts; import net.minecraft.client.gui.widget.ButtonWidget; diff --git a/src/main/java/io/gitlab/jfronny/libjf/data/RecipeUtil.java b/src/main/java/io/gitlab/jfronny/libjf/data/RecipeUtil.java index 942074b..5d468c1 100644 --- a/src/main/java/io/gitlab/jfronny/libjf/data/RecipeUtil.java +++ b/src/main/java/io/gitlab/jfronny/libjf/data/RecipeUtil.java @@ -1,29 +1,33 @@ package io.gitlab.jfronny.libjf.data; import net.minecraft.item.ItemStack; +import net.minecraft.util.Identifier; -import java.util.ArrayList; import java.util.HashSet; -import java.util.List; import java.util.Set; public class RecipeUtil { - private final static Set removalsByIdentifier = new HashSet<>(); - private final static List recipesForRemoval = new ArrayList<>(); + private static final Set REMOVAL_BY_ID = new HashSet<>(); + private static final Set RECIPES_FOR_REMOVAL = new HashSet<>(); - public static void removeRecipe(String id) { - removalsByIdentifier.add(id); + public static void removeRecipe(Identifier identifier) { + REMOVAL_BY_ID.add(identifier); } public static void removeRecipeFor(ItemStack product) { - recipesForRemoval.add(product); + RECIPES_FOR_REMOVAL.add(product); } - public static Iterable getRecipesForRemoval() { - return recipesForRemoval; + public static boolean isIdBlocked(Identifier identifier) { + return REMOVAL_BY_ID.contains(identifier); } - - public static Set getIdentifiersForRemoval() { - return removalsByIdentifier; + + public static boolean isOutputBlocked(ItemStack product) { + for (ItemStack stack : RECIPES_FOR_REMOVAL) { + if (product.isItemEqual(stack)) { + return true; + } + } + return false; } } diff --git a/src/main/java/io/gitlab/jfronny/libjf/data/ResourcePath.java b/src/main/java/io/gitlab/jfronny/libjf/data/ResourcePath.java index bd6f957..9329ff5 100644 --- a/src/main/java/io/gitlab/jfronny/libjf/data/ResourcePath.java +++ b/src/main/java/io/gitlab/jfronny/libjf/data/ResourcePath.java @@ -3,7 +3,7 @@ package io.gitlab.jfronny.libjf.data; import net.minecraft.resource.ResourceType; import net.minecraft.util.Identifier; -public class ResourcePath implements AutoCloseable { +public class ResourcePath { private final ResourceType type; private final Identifier id; @@ -36,9 +36,4 @@ public class ResourcePath implements AutoCloseable { public String getName() { return String.format("%s/%s/%s", type.getDirectory(), id.getNamespace(), id.getPath()); } - - @Override - public void close() throws Exception { - - } } diff --git a/src/main/java/io/gitlab/jfronny/libjf/data/WrappedPack.java b/src/main/java/io/gitlab/jfronny/libjf/data/WrappedPack.java index 50622b2..ee3a930 100644 --- a/src/main/java/io/gitlab/jfronny/libjf/data/WrappedPack.java +++ b/src/main/java/io/gitlab/jfronny/libjf/data/WrappedPack.java @@ -1,11 +1,11 @@ package io.gitlab.jfronny.libjf.data; -import io.gitlab.jfronny.libjf.data.wrappedPackImpl.WrappedResourcePack; +import io.gitlab.jfronny.libjf.data.impl.WrappedResourcePack; import net.minecraft.resource.ResourcePack; //This is a class for binary compatibility with mods using libjf -public abstract class WrappedPack implements ResourcePack { - public abstract ResourcePack getUnderlying(); +public interface WrappedPack extends ResourcePack { + ResourcePack getUnderlying(); public static WrappedPack create(ResourcePack underlying) { //if (underlying instanceof ModNioResourcePack mi) diff --git a/src/main/java/io/gitlab/jfronny/libjf/data/wrappedPackImpl/EventCallImpl.java b/src/main/java/io/gitlab/jfronny/libjf/data/impl/EventCallImpl.java similarity index 97% rename from src/main/java/io/gitlab/jfronny/libjf/data/wrappedPackImpl/EventCallImpl.java rename to src/main/java/io/gitlab/jfronny/libjf/data/impl/EventCallImpl.java index 871be77..400e1df 100644 --- a/src/main/java/io/gitlab/jfronny/libjf/data/wrappedPackImpl/EventCallImpl.java +++ b/src/main/java/io/gitlab/jfronny/libjf/data/impl/EventCallImpl.java @@ -1,4 +1,4 @@ -package io.gitlab.jfronny.libjf.data.wrappedPackImpl; +package io.gitlab.jfronny.libjf.data.impl; import io.gitlab.jfronny.libjf.data.ResourcePath; import io.gitlab.jfronny.libjf.data.UserResourceEvents; diff --git a/src/main/java/io/gitlab/jfronny/libjf/data/wrappedPackImpl/WrappedResourcePack.java b/src/main/java/io/gitlab/jfronny/libjf/data/impl/WrappedResourcePack.java similarity index 94% rename from src/main/java/io/gitlab/jfronny/libjf/data/wrappedPackImpl/WrappedResourcePack.java rename to src/main/java/io/gitlab/jfronny/libjf/data/impl/WrappedResourcePack.java index 11055fd..3bda3a7 100644 --- a/src/main/java/io/gitlab/jfronny/libjf/data/wrappedPackImpl/WrappedResourcePack.java +++ b/src/main/java/io/gitlab/jfronny/libjf/data/impl/WrappedResourcePack.java @@ -1,4 +1,4 @@ -package io.gitlab.jfronny.libjf.data.wrappedPackImpl; +package io.gitlab.jfronny.libjf.data.impl; import io.gitlab.jfronny.libjf.data.WrappedPack; import net.minecraft.resource.ResourcePack; @@ -13,7 +13,7 @@ import java.util.Collection; import java.util.Set; import java.util.function.Predicate; -public class WrappedResourcePack extends WrappedPack { +public class WrappedResourcePack implements WrappedPack { ResourcePack pack; public WrappedResourcePack(ResourcePack pack) { this.pack = pack; diff --git a/src/main/java/io/gitlab/jfronny/libjf/mixin/RecipeManagerMixin.java b/src/main/java/io/gitlab/jfronny/libjf/mixin/RecipeManagerMixin.java index 43f7ba3..421ad43 100644 --- a/src/main/java/io/gitlab/jfronny/libjf/mixin/RecipeManagerMixin.java +++ b/src/main/java/io/gitlab/jfronny/libjf/mixin/RecipeManagerMixin.java @@ -4,7 +4,6 @@ import com.google.common.collect.ImmutableMap; import com.google.gson.JsonObject; import io.gitlab.jfronny.libjf.Libjf; import io.gitlab.jfronny.libjf.data.RecipeUtil; -import net.minecraft.item.ItemStack; import net.minecraft.recipe.Recipe; import net.minecraft.recipe.RecipeManager; import net.minecraft.util.Identifier; @@ -26,7 +25,7 @@ public class RecipeManagerMixin { Map.Entry cur = iterator.next(); Identifier recipeId = cur.getKey(); - if (RecipeUtil.getIdentifiersForRemoval().contains(recipeId.toString())) { + if (RecipeUtil.isIdBlocked(recipeId)) { Libjf.LOGGER.info("Blocking recipe by identifier: " + recipeId); } else { replacement.add(cur); @@ -40,12 +39,10 @@ public class RecipeManagerMixin { private ImmutableMap.Builder> onPutRecipe(ImmutableMap.Builder> builder, Object key, Object value) { Identifier id = (Identifier) key; Recipe recipe = (Recipe) value; - - for (ItemStack stack : RecipeUtil.getRecipesForRemoval()) { - if (recipe.getOutput().isItemEqual(stack)) { - Libjf.LOGGER.info("Blocked recipe by predicate: " + recipe.getId()); - return builder; - } + + if (RecipeUtil.isOutputBlocked(recipe.getOutput())) { + Libjf.LOGGER.info("Blocked recipe by predicate: " + recipe.getId()); + return builder; } return builder.put(id, recipe);