diff --git a/build.gradle b/build.gradle index 7caad822..0ea1e9fc 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'net.neoforged.gradle.userdev' version '7.0.97' + id 'net.neoforged.gradle.userdev' version '7.0.145' id 'com.diffplug.spotless' version '5.14.3' } @@ -27,7 +27,7 @@ base { } // Set Java details -java.toolchain.languageVersion = JavaLanguageVersion.of(17) +java.toolchain.languageVersion = JavaLanguageVersion.of(21) compileJava.options.compilerArgs << "-Xmaxerrs" << "9999" println('Java: ' + System.getProperty('java.version') + ' JVM: ' + System.getProperty('java.vm.version') + '(' + System.getProperty('java.vendor') + ') Arch: ' + System.getProperty('os.arch')) @@ -252,6 +252,8 @@ publishing { idea { module { + downloadSources = true + downloadJavadoc = true for (String excludeDirName in ["run", "out", "logs", "gradle"]) { File excludeDir = new File(projectDir, excludeDirName) excludeDirs.add(excludeDir) diff --git a/gradle.properties b/gradle.properties index cfb3d6e3..7419d139 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,15 +1,15 @@ mod_id=integrateddynamics-compat mod_version=1.0.0 -minecraft_version=1.20.4 -neoforge_version=20.4.160-beta -cyclopscore_version=1.19.0-423 -integrateddynamics_version=1.21.2-736 +minecraft_version=1.21 +neoforge_version=21.0.43-beta +cyclopscore_version=1.19.1-452 +integrateddynamics_version=1.21.4-770 release_type=release -commoncapabilities_version=2.9.1-114 +commoncapabilities_version=2.9.1-126 mcmultipart_version=1.2.1_78 waila_version=1.10.8:B72_1.15.2 -jei_version=17.3.0.52 +jei_version=19.5.0.31 rfapi_version=1.8.9R1.2.0B1.1 teslaapi_version=1.12.2:1.0.63 mantle_version=1.12-1.3.1.22 @@ -17,7 +17,7 @@ tconstruct_version=1.12-2.7.4.37 forestry_version=1.12:5.4.3.129 charset_version=0.4.0-pre10 IC2_version=2.8.7-ex112 -theoneprobe_version=1.20.0-9.0.0-1 +theoneprobe_version=1.21_neo-12.0.3-5 refinedstorage_version=1.10.2 ie_version=0.12-90-521 crafttweakerapi_version=4.1.6.457 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 37aef8d3..20db9ad5 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/jei/JEIIntegratedDynamicsConfig.java b/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/jei/JEIIntegratedDynamicsConfig.java index 6ccb25db..fc66496e 100644 --- a/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/jei/JEIIntegratedDynamicsConfig.java +++ b/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/jei/JEIIntegratedDynamicsConfig.java @@ -91,7 +91,7 @@ public void registerGuiHandlers(IGuiHandlerRegistration registry) { @Override public ResourceLocation getPluginUid() { - return new ResourceLocation(Reference.MOD_ID, "main"); + return ResourceLocation.fromNamespaceAndPath(Reference.MOD_ID, "main"); } @Override diff --git a/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/jei/dryingbasin/DryingBasinRecipeCategory.java b/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/jei/dryingbasin/DryingBasinRecipeCategory.java index 23a0b9ef..4f8726fa 100644 --- a/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/jei/dryingbasin/DryingBasinRecipeCategory.java +++ b/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/jei/dryingbasin/DryingBasinRecipeCategory.java @@ -39,7 +39,7 @@ public class DryingBasinRecipeCategory implements IRecipeCategory { +public class MechanicalSqueezerRecipeJEI extends RecipeRegistryJeiRecipeWrapper { private final List inputItem; private final NonNullList outputItems; diff --git a/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/jei/squeezer/SqueezerRecipeCategory.java b/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/jei/squeezer/SqueezerRecipeCategory.java index 9f5c8d43..d4a745cd 100644 --- a/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/jei/squeezer/SqueezerRecipeCategory.java +++ b/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/jei/squeezer/SqueezerRecipeCategory.java @@ -37,7 +37,7 @@ public class SqueezerRecipeCategory implements IRecipeCategory { +public class SqueezerRecipeJEI extends RecipeRegistryJeiRecipeWrapper { private final List inputItem; private final NonNullList outputItems; diff --git a/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/mcmultipart/PartCable.java b/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/mcmultipart/PartCable.java index 7defe046..67382041 100644 --- a/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/mcmultipart/PartCable.java +++ b/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/mcmultipart/PartCable.java @@ -246,7 +246,7 @@ public boolean canRenderInLayer(BlockRenderLayer layer) { @Override public ResourceLocation getModelPath() { - return new ResourceLocation(IntegratedDynamics._instance.getModId(), BlockCableConfig._instance.getNamedId()); + return ResourceLocation.parse(IntegratedDynamics._instance.getModId(), BlockCableConfig._instance.getNamedId()); } @Override diff --git a/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/refinedstorage/RefinedStorageInitializer.java b/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/refinedstorage/RefinedStorageInitializer.java index 7d9ddc91..a99beeb3 100644 --- a/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/refinedstorage/RefinedStorageInitializer.java +++ b/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/refinedstorage/RefinedStorageInitializer.java @@ -53,10 +53,10 @@ protected void setup(FMLCommonSetupEvent event) { )); POSITIONED_MASTERITEMINVENTORY = ValueTypeListProxyFactories.REGISTRY.register( - new ValueTypeListProxyNBTFactory<>(new ResourceLocation(Reference.MOD_REFINEDSTORAGE, "positioned_item_inventory"), + new ValueTypeListProxyNBTFactory<>(ResourceLocation.parse(Reference.MOD_REFINEDSTORAGE, "positioned_item_inventory"), ValueTypeListProxyPositionedNetworkMasterItemInventory.class)); POSITIONED_MASTERFLUIDINVENTORY = ValueTypeListProxyFactories.REGISTRY.register( - new ValueTypeListProxyNBTFactory<>(new ResourceLocation(Reference.MOD_REFINEDSTORAGE, "positioned_fluid_inventory"), + new ValueTypeListProxyNBTFactory<>(ResourceLocation.parse(Reference.MOD_REFINEDSTORAGE, "positioned_fluid_inventory"), ValueTypeListProxyPositionedNetworkMasterFluidInventory.class)); } diff --git a/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/top/TopDryingBasinData.java b/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/top/TopDryingBasinData.java index cc6ce307..72fcbedd 100644 --- a/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/top/TopDryingBasinData.java +++ b/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/top/TopDryingBasinData.java @@ -19,7 +19,7 @@ public class TopDryingBasinData implements IProbeInfoProvider { @Override public ResourceLocation getID() { - return new ResourceLocation(Reference.MOD_ID, "drying_basin_data"); + return ResourceLocation.fromNamespaceAndPath(Reference.MOD_ID, "drying_basin_data"); } @Override @@ -32,7 +32,7 @@ public void addProbeInfo(ProbeMode mode, IProbeInfo probeInfo, Player player, Le } if (!tile.getTank().isEmpty()) { probeInfo.horizontal() - .text(tile.getTank().getFluid().getDisplayName()) + .text(tile.getTank().getFluid().getHoverName()) .progress(tile.getTank().getFluidAmount(), tile.getTank().getCapacity()); } }); diff --git a/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/top/TopMechanicalMachineData.java b/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/top/TopMechanicalMachineData.java index 4d8c382c..f1cf3749 100644 --- a/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/top/TopMechanicalMachineData.java +++ b/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/top/TopMechanicalMachineData.java @@ -19,7 +19,7 @@ public class TopMechanicalMachineData implements IProbeInfoProvider { @Override public ResourceLocation getID() { - return new ResourceLocation(Reference.MOD_ID, "mechanical_machine_data"); + return ResourceLocation.fromNamespaceAndPath(Reference.MOD_ID, "mechanical_machine_data"); } @Override diff --git a/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/top/TopPartData.java b/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/top/TopPartData.java index 82b35170..8783a73f 100644 --- a/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/top/TopPartData.java +++ b/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/top/TopPartData.java @@ -27,7 +27,7 @@ public class TopPartData implements IProbeInfoProvider { @Override public ResourceLocation getID() { - return new ResourceLocation(Reference.MOD_ID, "part_data"); + return ResourceLocation.fromNamespaceAndPath(Reference.MOD_ID, "part_data"); } @Override diff --git a/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/top/TopProxyData.java b/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/top/TopProxyData.java index 799ca659..0381af14 100644 --- a/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/top/TopProxyData.java +++ b/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/top/TopProxyData.java @@ -21,7 +21,7 @@ public class TopProxyData implements IProbeInfoProvider { @Override public ResourceLocation getID() { - return new ResourceLocation(Reference.MOD_ID, "proxy_data"); + return ResourceLocation.fromNamespaceAndPath(Reference.MOD_ID, "proxy_data"); } @Override diff --git a/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/top/TopSqueezerData.java b/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/top/TopSqueezerData.java index 63fa8884..1c9a5d18 100644 --- a/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/top/TopSqueezerData.java +++ b/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/top/TopSqueezerData.java @@ -19,7 +19,7 @@ public class TopSqueezerData implements IProbeInfoProvider { @Override public ResourceLocation getID() { - return new ResourceLocation(Reference.MOD_ID, "squeezer_data"); + return ResourceLocation.fromNamespaceAndPath(Reference.MOD_ID, "squeezer_data"); } @Override @@ -32,7 +32,7 @@ public void addProbeInfo(ProbeMode mode, IProbeInfo probeInfo, Player player, Le } if (!tile.getTank().isEmpty()) { probeInfo.horizontal() - .text(tile.getTank().getFluid().getDisplayName()) + .text(tile.getTank().getFluid().getHoverName()) .progress(tile.getTank().getFluidAmount(), tile.getTank().getCapacity()); } }); diff --git a/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/waila/DryingBasinDataProvider.java b/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/waila/DryingBasinDataProvider.java index 59580f12..9324c258 100644 --- a/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/waila/DryingBasinDataProvider.java +++ b/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/waila/DryingBasinDataProvider.java @@ -25,7 +25,7 @@ */ public class DryingBasinDataProvider implements IComponentProvider, IServerDataProvider { - public static final ResourceLocation ID = new ResourceLocation(org.cyclops.integrateddynamicscompat.Reference.MOD_ID, "drying_basin"); + public static final ResourceLocation ID = ResourceLocation.parse(org.cyclops.integrateddynamicscompat.Reference.MOD_ID, "drying_basin"); @Override public void appendBody(List tooltip, IDataAccessor accessor, IPluginConfig config) { diff --git a/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/waila/MechanicalDryingBasinDataProvider.java b/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/waila/MechanicalDryingBasinDataProvider.java index 8db2fe3f..b9b44735 100644 --- a/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/waila/MechanicalDryingBasinDataProvider.java +++ b/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/waila/MechanicalDryingBasinDataProvider.java @@ -26,7 +26,7 @@ */ public class MechanicalDryingBasinDataProvider extends SqueezerDataProvider implements IComponentProvider, IServerDataProvider { - public static final ResourceLocation ID = new ResourceLocation(org.cyclops.integrateddynamicscompat.Reference.MOD_ID, "mechanical_drying_basin"); + public static final ResourceLocation ID = ResourceLocation.parse(org.cyclops.integrateddynamicscompat.Reference.MOD_ID, "mechanical_drying_basin"); @Override public void appendBody(List tooltip, IDataAccessor accessor, IPluginConfig config) { diff --git a/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/waila/MechanicalSqueezerDataProvider.java b/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/waila/MechanicalSqueezerDataProvider.java index bdbd2c8c..f0733494 100644 --- a/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/waila/MechanicalSqueezerDataProvider.java +++ b/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/waila/MechanicalSqueezerDataProvider.java @@ -25,7 +25,7 @@ */ public class MechanicalSqueezerDataProvider extends SqueezerDataProvider implements IComponentProvider, IServerDataProvider { - public static final ResourceLocation ID = new ResourceLocation(org.cyclops.integrateddynamicscompat.Reference.MOD_ID, "mechanical_squeezer"); + public static final ResourceLocation ID = ResourceLocation.parse(org.cyclops.integrateddynamicscompat.Reference.MOD_ID, "mechanical_squeezer"); @Override public void appendBody(List tooltip, IDataAccessor accessor, IPluginConfig config) { diff --git a/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/waila/PartDataProvider.java b/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/waila/PartDataProvider.java index eca53ac4..13adba3d 100644 --- a/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/waila/PartDataProvider.java +++ b/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/waila/PartDataProvider.java @@ -28,7 +28,7 @@ */ public class PartDataProvider implements IComponentProvider, IServerDataProvider { - public static final ResourceLocation ID = new ResourceLocation(Reference.MOD_ID, "part"); + public static final ResourceLocation ID = ResourceLocation.parse(Reference.MOD_ID, "part"); @Override public void appendBody(List tooltip, IDataAccessor accessor, IPluginConfig config) { diff --git a/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/waila/ProxyDataProvider.java b/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/waila/ProxyDataProvider.java index 4c079969..530cc567 100644 --- a/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/waila/ProxyDataProvider.java +++ b/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/waila/ProxyDataProvider.java @@ -23,7 +23,7 @@ */ public class ProxyDataProvider implements IComponentProvider, IServerDataProvider { - public static final ResourceLocation ID = new ResourceLocation(org.cyclops.integrateddynamicscompat.Reference.MOD_ID, "proxy"); + public static final ResourceLocation ID = ResourceLocation.parse(org.cyclops.integrateddynamicscompat.Reference.MOD_ID, "proxy"); @Override public void appendBody(List tooltip, IDataAccessor accessor, IPluginConfig config) { diff --git a/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/waila/SqueezerDataProvider.java b/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/waila/SqueezerDataProvider.java index 02e77a99..e55eabfb 100644 --- a/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/waila/SqueezerDataProvider.java +++ b/src/main/java/org/cyclops/integrateddynamicscompat/modcompat/waila/SqueezerDataProvider.java @@ -25,7 +25,7 @@ */ public class SqueezerDataProvider implements IComponentProvider, IServerDataProvider { - public static final ResourceLocation ID = new ResourceLocation(org.cyclops.integrateddynamicscompat.Reference.MOD_ID, "squeezer"); + public static final ResourceLocation ID = ResourceLocation.parse(org.cyclops.integrateddynamicscompat.Reference.MOD_ID, "squeezer"); @Override public void appendBody(List tooltip, IDataAccessor accessor, IPluginConfig config) { diff --git a/src/main/java/org/cyclops/integrateddynamicscompat/network/packet/CPacketSetSlot.java b/src/main/java/org/cyclops/integrateddynamicscompat/network/packet/CPacketSetSlot.java index 95405426..010657d6 100644 --- a/src/main/java/org/cyclops/integrateddynamicscompat/network/packet/CPacketSetSlot.java +++ b/src/main/java/org/cyclops/integrateddynamicscompat/network/packet/CPacketSetSlot.java @@ -1,5 +1,7 @@ package org.cyclops.integrateddynamicscompat.network.packet; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.player.Player; @@ -17,9 +19,10 @@ /** * @author rubensworks */ -public class CPacketSetSlot extends PacketCodec { +public class CPacketSetSlot extends PacketCodec { - public static final ResourceLocation ID = new ResourceLocation(Reference.MOD_ID, "set_slot"); + public static final Type ID = new Type<>(ResourceLocation.fromNamespaceAndPath(Reference.MOD_ID, "set_slot")); + public static final StreamCodec CODEC = getCodec(CPacketSetSlot::new); @CodecField private int windowId; diff --git a/src/main/java/org/cyclops/integrateddynamicscompat/network/packet/CPacketValueTypeRecipeLPElementSetRecipe.java b/src/main/java/org/cyclops/integrateddynamicscompat/network/packet/CPacketValueTypeRecipeLPElementSetRecipe.java index d3fe1cbd..d6debe6e 100644 --- a/src/main/java/org/cyclops/integrateddynamicscompat/network/packet/CPacketValueTypeRecipeLPElementSetRecipe.java +++ b/src/main/java/org/cyclops/integrateddynamicscompat/network/packet/CPacketValueTypeRecipeLPElementSetRecipe.java @@ -1,8 +1,10 @@ package org.cyclops.integrateddynamicscompat.network.packet; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.entity.player.Player; import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.neoforged.api.distmarker.Dist; @@ -20,9 +22,10 @@ /** * @author rubensworks */ -public class CPacketValueTypeRecipeLPElementSetRecipe extends PacketCodec { +public class CPacketValueTypeRecipeLPElementSetRecipe extends PacketCodec { - public static final ResourceLocation ID = new ResourceLocation(Reference.MOD_ID, "value_type_recipe_lp_element_set_recipe"); + public static final Type ID = new Type<>(ResourceLocation.fromNamespaceAndPath(Reference.MOD_ID, "value_type_recipe_lp_element_set_recipe")); + public static final StreamCodec CODEC = getCodec(CPacketValueTypeRecipeLPElementSetRecipe::new); @CodecField private int windowId; diff --git a/src/main/java/org/cyclops/integrateddynamicscompat/proxy/CommonProxy.java b/src/main/java/org/cyclops/integrateddynamicscompat/proxy/CommonProxy.java index d23677f5..f12be0ad 100644 --- a/src/main/java/org/cyclops/integrateddynamicscompat/proxy/CommonProxy.java +++ b/src/main/java/org/cyclops/integrateddynamicscompat/proxy/CommonProxy.java @@ -4,8 +4,8 @@ import org.cyclops.cyclopscore.network.PacketHandler; import org.cyclops.cyclopscore.proxy.CommonProxyComponent; import org.cyclops.integrateddynamicscompat.IntegratedDynamicsCompat; -import org.cyclops.integrateddynamicscompat.network.packet.CPacketValueTypeRecipeLPElementSetRecipe; import org.cyclops.integrateddynamicscompat.network.packet.CPacketSetSlot; +import org.cyclops.integrateddynamicscompat.network.packet.CPacketValueTypeRecipeLPElementSetRecipe; /** * Proxy for server and client side. @@ -24,8 +24,8 @@ public void registerPacketHandlers(PacketHandler packetHandler) { super.registerPacketHandlers(packetHandler); // Register packets. - packetHandler.register(CPacketSetSlot.ID, CPacketSetSlot::new); - packetHandler.register(CPacketValueTypeRecipeLPElementSetRecipe.ID, CPacketValueTypeRecipeLPElementSetRecipe::new); + packetHandler.register(CPacketSetSlot.ID, CPacketSetSlot.CODEC); + packetHandler.register(CPacketValueTypeRecipeLPElementSetRecipe.ID, CPacketValueTypeRecipeLPElementSetRecipe.CODEC); IntegratedDynamicsCompat.clog("Registered packet handler."); } diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/neoforge.mods.toml similarity index 91% rename from src/main/resources/META-INF/mods.toml rename to src/main/resources/META-INF/neoforge.mods.toml index 636d9561..f0f6d4b5 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/neoforge.mods.toml @@ -15,19 +15,19 @@ Integrated Dynamics compatibility with other mods. [[dependencies.integrateddynamicscompat]] modId="cyclopscore" type="required" - versionRange="[1.19.0,)" + versionRange="[1.19.1,)" ordering="NONE" side="BOTH" [[dependencies.integrateddynamicscompat]] modId="neoforge" type="required" - versionRange="[20.4,)" + versionRange="[21.0.43-beta,)" ordering="NONE" side="BOTH" [[dependencies.integrateddynamicscompat]] modId="minecraft" type="required" - versionRange="[1.20.4,]" + versionRange="[1.21,]" ordering="NONE" side="BOTH" [[dependencies.integrateddynamicscompat]]