Ver Fonte

we are removing old support

Unknown há 6 anos atrás
pai
commit
3d2464d317

+ 1 - 1
gradle.properties

@@ -4,7 +4,7 @@ yarn_version=1.14.2+build.2
 fabricloader_version=0.4.7+build.147
 jankson_version=1.1.0
 cloth_events_version=0.3.1.23
-cloth_config_version=0.1.0
+cloth_config_version=0.2.0
 modmenu_version=1.5.4-85
 
 fabric_keybindings=0.1.0+59147463

+ 3 - 55
src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java

@@ -7,8 +7,6 @@ package me.shedaniel.rei;
 
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
 import me.shedaniel.cloth.api.ClientUtils;
 import me.shedaniel.cloth.hooks.ClothClientHooks;
 import me.shedaniel.rei.api.*;
@@ -20,7 +18,6 @@ import net.fabricmc.api.ClientModInitializer;
 import net.fabricmc.fabric.api.network.ClientSidePacketRegistry;
 import net.fabricmc.loader.api.FabricLoader;
 import net.fabricmc.loader.api.ModContainer;
-import net.fabricmc.loader.api.metadata.ModMetadata;
 import net.minecraft.client.MinecraftClient;
 import net.minecraft.client.gui.Element;
 import net.minecraft.client.gui.screen.ingame.AbstractContainerScreen;
@@ -34,7 +31,6 @@ import net.minecraft.item.ItemStack;
 import net.minecraft.network.chat.TextComponent;
 import net.minecraft.util.ActionResult;
 import net.minecraft.util.Identifier;
-import net.minecraft.util.Pair;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
@@ -43,7 +39,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 import java.util.concurrent.CompletableFuture;
-import java.util.stream.Collectors;
 
 public class RoughlyEnoughItemsCore implements ClientModInitializer {
     
@@ -132,8 +127,10 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer {
         configManager = new ConfigManagerImpl();
         
         registerClothEvents();
-        discoverOldPlugins();
         discoverPluginEntries();
+        FabricLoader.getInstance().getAllMods().stream().map(ModContainer::getMetadata).filter(metadata -> metadata.containsCustomElement("roughlyenoughitems:plugins")).forEach(modMetadata -> {
+            RoughlyEnoughItemsCore.LOGGER.error("[REI] REI plugin from " + modMetadata.getId() + " is not loaded because it is too old!");
+        });
         
         ClientSidePacketRegistry.INSTANCE.register(RoughlyEnoughItemsNetwork.CREATE_ITEMS_MESSAGE_PACKET, (packetContext, packetByteBuf) -> {
             ItemStack stack = packetByteBuf.readItemStack();
@@ -156,55 +153,6 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer {
         }
     }
     
-    @SuppressWarnings("deprecation")
-    private void discoverOldPlugins() {
-        List<Pair<Identifier, String>> list = Lists.newArrayList();
-        for(ModMetadata metadata : FabricLoader.getInstance().getAllMods().stream().map(ModContainer::getMetadata).filter(metadata -> metadata.containsCustomElement("roughlyenoughitems:plugins")).collect(Collectors.toList())) {
-            RoughlyEnoughItemsCore.LOGGER.warn("[REI] %s(%s) is still using the old way to register its plugin! Support will be dropped in the future!", metadata.getName(), metadata.getId());
-            try {
-                JsonElement pluginsElement = metadata.getCustomElement("roughlyenoughitems:plugins");
-                if (pluginsElement.isJsonArray()) {
-                    for(JsonElement element : pluginsElement.getAsJsonArray())
-                        if (element.isJsonObject())
-                            loadPluginFromJsonObject(list, metadata, element.getAsJsonObject());
-                        else
-                            throw new IllegalStateException("Custom Element in an array is not an object.");
-                } else if (pluginsElement.isJsonObject()) {
-                    loadPluginFromJsonObject(list, metadata, pluginsElement.getAsJsonObject());
-                } else
-                    throw new IllegalStateException("Custom Element not an array or an object.");
-            } catch (Exception e) {
-                e.printStackTrace();
-                RoughlyEnoughItemsCore.LOGGER.error("[REI] Can't load REI plugins from %s: %s", metadata.getId(), e.getLocalizedMessage());
-            }
-        }
-        for(Pair<Identifier, String> pair : list) {
-            String s = pair.getRight();
-            try {
-                Class<?> aClass = Class.forName(s);
-                if (!REIPlugin.class.isAssignableFrom(aClass)) {
-                    RoughlyEnoughItemsCore.LOGGER.error("[REI] Plugin class from %s is not implementing REIPlugin!", s);
-                    break;
-                }
-                REIPlugin o = REIPlugin.class.cast(aClass.newInstance());
-                registerPlugin(pair.getLeft(), o);
-            } catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) {
-                RoughlyEnoughItemsCore.LOGGER.error("[REI] Can't load REI plugin class from %s!", s);
-            } catch (ClassCastException e) {
-                RoughlyEnoughItemsCore.LOGGER.error("[REI] Failed to cast plugin class from %s to REIPlugin!", s);
-            }
-        }
-    }
-    
-    private void loadPluginFromJsonObject(List<Pair<Identifier, String>> list, ModMetadata modMetadata, JsonObject object) {
-        String namespace = modMetadata.getId();
-        if (object.has("namespace"))
-            namespace = object.get("namespace").getAsString();
-        String id = object.get("id").getAsString();
-        String className = object.get("class").getAsString();
-        list.add(new Pair<>(new Identifier(namespace, id), className));
-    }
-    
     private void registerClothEvents() {
         ClothClientHooks.SYNC_RECIPES.register((minecraftClient, recipeManager, synchronizeRecipesS2CPacket) -> {
             if (RoughlyEnoughItemsCore.getConfigManager().getConfig().registerRecipesInAnotherThread)

+ 9 - 14
src/main/java/me/shedaniel/rei/utils/ClothScreenRegistry.java

@@ -41,7 +41,7 @@ public class ClothScreenRegistry {
                 e.printStackTrace();
             }
         });
-        ConfigEntryBuilder entryBuilder = ConfigEntryBuilder.create();
+        ConfigEntryBuilder eb = ConfigEntryBuilder.create();
         ConfigCategory general = builder.getOrCreateCategory("text.rei.config.general");
         general.addEntry(new BooleanListEntry("text.rei.config.cheating", configManager.getConfig().cheating, RESET, () -> false, bool -> configManager.getConfig().cheating = bool) {
             @Override
@@ -59,19 +59,14 @@ public class ClothScreenRegistry {
             }
         });
         ConfigCategory appearance = builder.getOrCreateCategory("text.rei.config.appearance");
-        appearance.addEntry(entryBuilder.startBooleanToggle("text.rei.config.dark_theme", ScreenHelper.isDarkModeEnabled()).setDefaultValue(() -> false).setSaveConsumer(bool -> configManager.getConfig().darkTheme = bool).setTooltipSupplier(() -> getConfigTooltip("dark_theme")).buildEntry());
-        appearance.addEntry(new EnumListEntry<>("text.rei.config.recipe_screen_type", RecipeScreenType.class, configManager.getConfig().screenType, RESET, () -> RecipeScreenType.UNSET, bool -> configManager.getConfig().screenType = bool, EnumListEntry.DEFAULT_NAME_PROVIDER, () -> getConfigTooltip("recipe_screen_type")));
-        appearance.addEntry(entryBuilder.startBooleanToggle("text.rei.config.side_search_box", configManager.getConfig().sideSearchField).setDefaultValue(() -> false).setSaveConsumer(bool -> configManager.getConfig().sideSearchField = bool).setTooltipSupplier(() -> getConfigTooltip("side_search_box")).buildEntry());
-        appearance.addEntry(new EnumListEntry<>("text.rei.config.list_ordering", ItemListOrderingConfig.class, ItemListOrderingConfig.from(configManager.getConfig().itemListOrdering, configManager.getConfig().isAscending), RESET, () -> ItemListOrderingConfig.REGISTRY_ASCENDING, config -> {
-            configManager.getConfig().itemListOrdering = config.getOrdering();
-            configManager.getConfig().isAscending = config.isAscending();
-        }, EnumListEntry.DEFAULT_NAME_PROVIDER, () -> getConfigTooltip("list_ordering", ItemListOrderingConfig.REGISTRY_ASCENDING.toString())));
-        appearance.addEntry(new BooleanListEntry("text.rei.config.item_list_position", configManager.getConfig().mirrorItemPanel, RESET, () -> false, bool -> configManager.getConfig().mirrorItemPanel = bool, () -> getConfigTooltip("item_list_position")) {
-            @Override
-            public String getYesNoText(boolean bool) {
-                return I18n.translate(bool ? "text.rei.config.item_list_position.left" : "text.rei.config.item_list_position.right");
-            }
-        });
+        appearance.addEntry(eb.startBooleanToggle("text.rei.config.dark_theme", ScreenHelper.isDarkModeEnabled()).setDefaultValue(() -> false).setSaveConsumer(bool -> configManager.getConfig().darkTheme = bool).setTooltipSupplier(() -> getConfigTooltip("dark_theme")).buildEntry());
+        appearance.addEntry(eb.startEnumSelector("text.rei.config.recipe_screen_type", RecipeScreenType.class, configManager.getConfig().screenType).setDefaultValue(() -> RecipeScreenType.UNSET).setSaveConsumer(bool -> configManager.getConfig().screenType = (RecipeScreenType) bool).setTooltipSupplier(() -> getConfigTooltip("recipe_screen_type")).buildEntry());
+        appearance.addEntry(eb.startBooleanToggle("text.rei.config.side_search_box", configManager.getConfig().sideSearchField).setDefaultValue(() -> false).setSaveConsumer(bool -> configManager.getConfig().sideSearchField = bool).setTooltipSupplier(() -> getConfigTooltip("side_search_box")).buildEntry());
+        appearance.addEntry(eb.startEnumSelector("text.rei.config.list_ordering", ItemListOrderingConfig.class, ItemListOrderingConfig.from(configManager.getConfig().itemListOrdering, configManager.getConfig().isAscending)).setDefaultValue(() -> ItemListOrderingConfig.REGISTRY_ASCENDING).setSaveConsumer(config -> {
+            configManager.getConfig().itemListOrdering = ((ItemListOrderingConfig) config).getOrdering();
+            configManager.getConfig().isAscending = ((ItemListOrderingConfig) config).isAscending();
+        }).setTooltipSupplier(() -> getConfigTooltip("list_ordering", ItemListOrderingConfig.REGISTRY_ASCENDING.toString())).buildEntry());
+        appearance.addEntry(eb.startBooleanToggle("text.rei.config.item_list_position", configManager.getConfig().mirrorItemPanel).setDefaultValue(() -> false).setYesNoTextSupplier(bool -> I18n.translate(bool ? "text.rei.config.item_list_position.left" : "text.rei.config.item_list_position.right")).setSaveConsumer(bool -> configManager.getConfig().mirrorItemPanel = bool).buildEntry());
         appearance.addEntry(new IntegerSliderEntry("text.rei.config.max_recipes_per_page", 2, 99, configManager.getConfig().maxRecipePerPage, RESET, () -> 3, i -> configManager.getConfig().maxRecipePerPage = i, () -> getConfigTooltip("max_recipes_per_page")));
         appearance.addEntry(new BooleanListEntry("text.rei.config.light_gray_recipe_border", configManager.getConfig().lightGrayRecipeBorder, RESET, () -> false, bool -> configManager.getConfig().lightGrayRecipeBorder = bool, () -> getConfigTooltip("light_gray_recipe_border")));
         appearance.addEntry(new BooleanListEntry("text.rei.config.villager_screen_permanent_scroll_bar", configManager.getConfig().villagerScreenPermanentScrollBar, RESET, () -> false, bool -> configManager.getConfig().villagerScreenPermanentScrollBar = bool, () -> getConfigTooltip("villager_screen_permanent_scroll_bar")));