diff --git a/build.gradle b/build.gradle index 6dd3bb4..3f4d5b9 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ import me.modmuss50.mpp.ReleaseType plugins { id "architectury-plugin" version "3.4-SNAPSHOT" id "dev.architectury.loom" version "1.6-SNAPSHOT" apply false - id "me.modmuss50.mod-publish-plugin" version "0.4.5" + id "me.modmuss50.mod-publish-plugin" version "0.5.1" } architectury { diff --git a/common/src/main/java/dev/ftb/mods/ftbfiltersystem/FTBFilterSystem.java b/common/src/main/java/dev/ftb/mods/ftbfiltersystem/FTBFilterSystem.java index 5dbba44..b094a53 100644 --- a/common/src/main/java/dev/ftb/mods/ftbfiltersystem/FTBFilterSystem.java +++ b/common/src/main/java/dev/ftb/mods/ftbfiltersystem/FTBFilterSystem.java @@ -37,9 +37,9 @@ public FTBFilterSystem() { CommandRegistrationEvent.EVENT.register(FilterSystemCommands::registerCommands); FilterRegistrationEvent.REGISTER.register(this::registerBuiltinFilters); + ModDataComponents.COMPONENT_TYPES.register(); ModItems.TABS.register(); ModItems.ITEMS.register(); - ModDataComponents.COMPONENT_TYPES.register(); EnvExecutor.runInEnv(Env.CLIENT, () -> FTBFilterSystemClient.INSTANCE::init); diff --git a/common/src/main/java/dev/ftb/mods/ftbfiltersystem/api/FTBFilterSystemAPI.java b/common/src/main/java/dev/ftb/mods/ftbfiltersystem/api/FTBFilterSystemAPI.java index 70dc49d..178336c 100644 --- a/common/src/main/java/dev/ftb/mods/ftbfiltersystem/api/FTBFilterSystemAPI.java +++ b/common/src/main/java/dev/ftb/mods/ftbfiltersystem/api/FTBFilterSystemAPI.java @@ -9,12 +9,16 @@ import net.minecraft.world.item.ItemStack; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.List; import java.util.Objects; import java.util.Optional; public class FTBFilterSystemAPI { + private static final Logger LOGGER = LoggerFactory.getLogger(FTBFilterSystemAPI.class); + public static final String MOD_ID = "ftbfiltersystem"; private static API instance; @@ -49,7 +53,7 @@ public static FTBFilterSystemClientAPI clientApi() { * @return a new resource location */ public static ResourceLocation rl(String path) { - return new ResourceLocation(MOD_ID, path); + return ResourceLocation.fromNamespaceAndPath(MOD_ID, path); } /** @@ -59,7 +63,17 @@ public static ResourceLocation rl(String path) { * @return a resource location */ public static ResourceLocation modDefaultedRL(String str) { - return str.indexOf(':') > 0 ? new ResourceLocation(str) : new ResourceLocation(FTBFilterSystemAPI.MOD_ID, str); + if (str.indexOf(":") > 0) { + var result = ResourceLocation.tryParse(str); + if (result == null) { + LOGGER.warn("Invalid resource location: {}, falling back to ftbfiltersystem:", str); + return rl(str); + } + + return result; + } + + return rl(str); } /** diff --git a/common/src/main/java/dev/ftb/mods/ftbfiltersystem/client/gui/ItemConfigScreen.java b/common/src/main/java/dev/ftb/mods/ftbfiltersystem/client/gui/ItemConfigScreen.java index 2fb1777..ddb5a90 100644 --- a/common/src/main/java/dev/ftb/mods/ftbfiltersystem/client/gui/ItemConfigScreen.java +++ b/common/src/main/java/dev/ftb/mods/ftbfiltersystem/client/gui/ItemConfigScreen.java @@ -121,7 +121,7 @@ public void render(GuiGraphics guiGraphics, int pMouseX, int pMouseY, float pPar guiGraphics.fill(scrollArea.getX() - 2, scrollArea.getY() - 2, scrollArea.getX() + scrollArea.getWidth(), scrollArea.getY() + scrollArea.getHeight(), 0xFF808080); guiGraphics.fill(scrollArea.getX() - 1, scrollArea.getY() - 1, scrollArea.getX() + scrollArea.getWidth() - 1, scrollArea.getY() + scrollArea.getHeight() - 1, 0xFFA0A0A0); // guiGraphics.blit(SCROLL_TEXTURE, sx, sy1 + (int) ((sy2 - sy1 - 17) * currentScroll), 232 + (needsScrollBars() ? 0 : 12), 0, 12, 15); - guiGraphics.blitSprite(new ResourceLocation("container/creative_inventory/scroller"), sx, sy1 + (int) ((sy2 - sy1 - 17) * currentScroll), 12, 15); + guiGraphics.blitSprite(ResourceLocation.withDefaultNamespace("container/creative_inventory/scroller"), sx, sy1 + (int) ((sy2 - sy1 - 17) * currentScroll), 12, 15); } @Override diff --git a/common/src/main/java/dev/ftb/mods/ftbfiltersystem/client/gui/ItemTagConfigScreen.java b/common/src/main/java/dev/ftb/mods/ftbfiltersystem/client/gui/ItemTagConfigScreen.java index 0b2fa58..b1ee0f7 100644 --- a/common/src/main/java/dev/ftb/mods/ftbfiltersystem/client/gui/ItemTagConfigScreen.java +++ b/common/src/main/java/dev/ftb/mods/ftbfiltersystem/client/gui/ItemTagConfigScreen.java @@ -60,10 +60,11 @@ public void render(GuiGraphics guiGraphics, int pMouseX, int pMouseY, float pPar @Override protected @Nullable ItemTagFilter makeNewFilter() { + ResourceLocation location; if (itemTagList.getSelected() != null) { return new ItemTagFilter(filter.getParent(), itemTagList.getSelected().tagKey); - } else if (itemTagList.children().isEmpty() && ResourceLocation.isValidResourceLocation(searchField.getValue())) { - return new ItemTagFilter(filter.getParent(), TagKey.create(Registries.ITEM, new ResourceLocation(searchField.getValue()))); + } else if (itemTagList.children().isEmpty() && (location = ResourceLocation.tryParse(searchField.getValue())) != null) { + return new ItemTagFilter(filter.getParent(), TagKey.create(Registries.ITEM, location)); } else { return null; } diff --git a/common/src/main/java/dev/ftb/mods/ftbfiltersystem/filter/ItemFilter.java b/common/src/main/java/dev/ftb/mods/ftbfiltersystem/filter/ItemFilter.java index ca60dbe..93d601c 100644 --- a/common/src/main/java/dev/ftb/mods/ftbfiltersystem/filter/ItemFilter.java +++ b/common/src/main/java/dev/ftb/mods/ftbfiltersystem/filter/ItemFilter.java @@ -43,7 +43,7 @@ public String getStringArg() { public static ItemFilter fromString(SmartFilter.Compound parent, String str) { try { - Item item = BuiltInRegistries.ITEM.getOrThrow(ResourceKey.create(Registries.ITEM, new ResourceLocation(str))); + Item item = BuiltInRegistries.ITEM.getOrThrow(ResourceKey.create(Registries.ITEM, ResourceLocation.tryParse(str))); return new ItemFilter(parent, item); } catch (IllegalArgumentException | IllegalStateException e) { throw new FilterException(e.getMessage(), e); diff --git a/common/src/main/java/dev/ftb/mods/ftbfiltersystem/filter/ItemTagFilter.java b/common/src/main/java/dev/ftb/mods/ftbfiltersystem/filter/ItemTagFilter.java index cba830d..3bac648 100644 --- a/common/src/main/java/dev/ftb/mods/ftbfiltersystem/filter/ItemTagFilter.java +++ b/common/src/main/java/dev/ftb/mods/ftbfiltersystem/filter/ItemTagFilter.java @@ -47,7 +47,7 @@ public String getStringArg() { public static ItemTagFilter fromString(SmartFilter.Compound parent, String str) { try { - return new ItemTagFilter(parent, TagKey.create(Registries.ITEM, new ResourceLocation(str))); + return new ItemTagFilter(parent, TagKey.create(Registries.ITEM, ResourceLocation.tryParse(str))); } catch (ResourceLocationException e) { throw new FilterException("invalid tag key " + str, e); } diff --git a/common/src/main/java/dev/ftb/mods/ftbfiltersystem/integration/jei/JEIIntegration.java b/common/src/main/java/dev/ftb/mods/ftbfiltersystem/integration/jei/JEIIntegration.java index b005a2f..1a64ca6 100644 --- a/common/src/main/java/dev/ftb/mods/ftbfiltersystem/integration/jei/JEIIntegration.java +++ b/common/src/main/java/dev/ftb/mods/ftbfiltersystem/integration/jei/JEIIntegration.java @@ -1,33 +1,33 @@ -package dev.ftb.mods.ftbfiltersystem.integration.jei; - -import dev.ftb.mods.ftbfiltersystem.api.FTBFilterSystemAPI; -import dev.ftb.mods.ftbfiltersystem.client.gui.ComponentConfigScreen; -import dev.ftb.mods.ftbfiltersystem.client.gui.ItemConfigScreen; -import dev.ftb.mods.ftbfiltersystem.client.gui.ModConfigScreen; -import mezz.jei.api.IModPlugin; -import mezz.jei.api.JeiPlugin; -import mezz.jei.api.registration.IGuiHandlerRegistration; -import net.minecraft.resources.ResourceLocation; - -@JeiPlugin -public class JEIIntegration implements IModPlugin { - private final ResourceLocation ID = FTBFilterSystemAPI.rl("default"); - - @Override - public ResourceLocation getPluginUid() { - return ID; - } - - @Override - public void registerGuiHandlers(IGuiHandlerRegistration registration) { - registration.addGuiScreenHandler(ItemConfigScreen.class, new FFSScreenHandler<>()); - registration.addGhostIngredientHandler(ItemConfigScreen.class, new FFSGhostHandler<>()); - - registration.addGuiScreenHandler(ComponentConfigScreen.class, new FFSScreenHandler<>()); -// registration.addGhostIngredientHandler(NBTConfigScreen.class, new FFSGhostHandler<>(ItemStack::hasTag)); - registration.addGhostIngredientHandler(ComponentConfigScreen.class, new FFSGhostHandler<>(s -> false)); - - registration.addGuiScreenHandler(ModConfigScreen.class, new FFSScreenHandler<>()); - registration.addGhostIngredientHandler(ModConfigScreen.class, new FFSGhostHandler<>()); - } -} +//package dev.ftb.mods.ftbfiltersystem.integration.jei; +// +//import dev.ftb.mods.ftbfiltersystem.api.FTBFilterSystemAPI; +//import dev.ftb.mods.ftbfiltersystem.client.gui.ComponentConfigScreen; +//import dev.ftb.mods.ftbfiltersystem.client.gui.ItemConfigScreen; +//import dev.ftb.mods.ftbfiltersystem.client.gui.ModConfigScreen; +//import mezz.jei.api.IModPlugin; +//import mezz.jei.api.JeiPlugin; +//import mezz.jei.api.registration.IGuiHandlerRegistration; +//import net.minecraft.resources.ResourceLocation; +// +//@JeiPlugin +//public class JEIIntegration implements IModPlugin { +// private final ResourceLocation ID = FTBFilterSystemAPI.rl("default"); +// +// @Override +// public ResourceLocation getPluginUid() { +// return ID; +// } +// +// @Override +// public void registerGuiHandlers(IGuiHandlerRegistration registration) { +// registration.addGuiScreenHandler(ItemConfigScreen.class, new FFSScreenHandler<>()); +// registration.addGhostIngredientHandler(ItemConfigScreen.class, new FFSGhostHandler<>()); +// +// registration.addGuiScreenHandler(ComponentConfigScreen.class, new FFSScreenHandler<>()); +//// registration.addGhostIngredientHandler(NBTConfigScreen.class, new FFSGhostHandler<>(ItemStack::hasTag)); +// registration.addGhostIngredientHandler(ComponentConfigScreen.class, new FFSGhostHandler<>(s -> false)); +// +// registration.addGuiScreenHandler(ModConfigScreen.class, new FFSScreenHandler<>()); +// registration.addGhostIngredientHandler(ModConfigScreen.class, new FFSGhostHandler<>()); +// } +//} diff --git a/common/src/main/java/dev/ftb/mods/ftbfiltersystem/registry/ModItems.java b/common/src/main/java/dev/ftb/mods/ftbfiltersystem/registry/ModItems.java index 9622cda..c97ded0 100644 --- a/common/src/main/java/dev/ftb/mods/ftbfiltersystem/registry/ModItems.java +++ b/common/src/main/java/dev/ftb/mods/ftbfiltersystem/registry/ModItems.java @@ -20,7 +20,7 @@ public class ModItems { public static final DeferredRegister TABS = DeferredRegister.create(FTBFilterSystemAPI.MOD_ID, Registries.CREATIVE_MODE_TAB); public static final RegistrySupplier CREATIVE_TAB = RegistrarManager.get(FTBFilterSystemAPI.MOD_ID) .get(Registries.CREATIVE_MODE_TAB) - .register(new ResourceLocation(FTBFilterSystemAPI.MOD_ID, "default"), ModItems::buildDefaultTab); + .register(FTBFilterSystemAPI.rl("default"), ModItems::buildDefaultTab); public static Item.Properties defaultProps() { return new Item.Properties(); diff --git a/common/src/main/java/dev/ftb/mods/ftbfiltersystem/util/FilterParser.java b/common/src/main/java/dev/ftb/mods/ftbfiltersystem/util/FilterParser.java index 4cac7ba..e3b3345 100644 --- a/common/src/main/java/dev/ftb/mods/ftbfiltersystem/util/FilterParser.java +++ b/common/src/main/java/dev/ftb/mods/ftbfiltersystem/util/FilterParser.java @@ -45,7 +45,7 @@ public static List parseFilterList(SmartFilter.Compound parent, Str String type = str.substring(0, start).trim(); String arg = unescape(str.substring(start + 1, matchingParen).trim()); - if (!ResourceLocation.isValidResourceLocation(type)) { + if (ResourceLocation.tryParse(type) == null) { throw new FilterException("invalid filter ID: " + type); } diff --git a/fabric/build.gradle b/fabric/build.gradle index 19c91c0..52803d1 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -26,7 +26,7 @@ dependencies { modApi "dev.architectury:architectury-fabric:${rootProject.architectury_version}" // modCompileOnly("mezz.jei:jei-${rootProject.minecraft_version}-fabric-api:${rootProject.jei_version}") - modCompileOnly("mezz.jei:jei-1.20.4-fabric-api:${rootProject.jei_version}") +// modCompileOnly("mezz.jei:jei-1.20.4-fabric-api:${rootProject.jei_version}") common(project(path: ":common", configuration: "namedElements")) { transitive false } shadowCommon(project(path: ":common", configuration: "transformProductionFabric")) { transitive false } diff --git a/forge/build.gradle b/forge/build.gradle index 1623d62..f55871b 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -32,7 +32,7 @@ dependencies { // Remove the next line if you don't want to depend on the API modApi "dev.architectury:architectury-forge:${rootProject.architectury_version}" - modCompileOnly("mezz.jei:jei-${rootProject.minecraft_version}-forge-api:${rootProject.jei_version}") +// modCompileOnly("mezz.jei:jei-${rootProject.minecraft_version}-forge-api:${rootProject.jei_version}") common(project(path: ":common", configuration: "namedElements")) { transitive false } shadowCommon(project(path: ":common", configuration: "transformProductionForge")) { transitive = false } diff --git a/gradle.properties b/gradle.properties index 3261652..ade559f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,22 +1,27 @@ org.gradle.jvmargs=-Xmx2048M -minecraft_version=1.20.6 #enabled_platforms=fabric,forge,neoforge enabled_platforms=fabric,neoforge archives_base_name=ftb-filter-system -mod_version=2.1.0 +readable_name=FTB Filter System maven_group=dev.ftb.mods -curseforge_id=943925 -architectury_version=12.1.3 +# TODO: Should we move this over to the neo format of 21.0.0 +mod_version=3.0.0 + +minecraft_version=1.21 +architectury_version=13.0.1 -fabric_loader_version=0.15.10 -fabric_api_version=0.97.8+1.20.6 +fabric_loader_version=0.15.11 +fabric_api_version=0.100.1+1.21 -forge_version=49.0.31 +#forge_version=49.0.31 -neoforge_version=20.6.100-beta -neoforge_loader_version=1 +neoforge_version=21.0.10-beta +# https://maven.neoforged.net/#/releases/net/neoforged/fancymodloader/loader +neoforge_loader_version=4 jei_version=17.3.0.49 + +curseforge_id=943925 diff --git a/neoforge/build.gradle b/neoforge/build.gradle index fa412e9..d1d287e 100644 --- a/neoforge/build.gradle +++ b/neoforge/build.gradle @@ -31,7 +31,7 @@ dependencies { modApi "dev.architectury:architectury-neoforge:${rootProject.architectury_version}" // modCompileOnly("mezz.jei:jei-${rootProject.minecraft_version}-forge-api:${rootProject.jei_version}") - modCompileOnly("mezz.jei:jei-1.20.4-forge-api:${rootProject.jei_version}") +// modCompileOnly("mezz.jei:jei-1.20.4-forge-api:${rootProject.jei_version}") common(project(path: ":common", configuration: "namedElements")) { transitive false } shadowCommon(project(path: ":common", configuration: "transformProductionNeoForge")) { transitive = false }