diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 940e9396..e4b0d812 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -18,11 +18,11 @@ jobs: uses: actions/checkout@v6 with: fetch-depth: 0 - - name: Set up JDK 21 + - name: Set up JDK 25 uses: actions/setup-java@v5 with: distribution: 'temurin' - java-version: 21 + java-version: 25 - name: Setup Gradle uses: gradle/actions/setup-gradle@v6 with: diff --git a/.gitignore b/.gitignore index 50b94b42..c1fe32a1 100644 --- a/.gitignore +++ b/.gitignore @@ -24,10 +24,11 @@ bin/ .classpath .project -# fabric +# macos -run/ +*.DS_Store +# fabric publish/ - +run/ local.properties diff --git a/README.md b/README.md index 6ff75527..51b5fa52 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ Current main development for Minecraft version: 1.16.5 And use `preprocess` to be compatible with all versions. -**Note: I only accept the following versions of issues. Please note that this information is time-sensitive and any version of the issue not listed here will be closed** +**Note: We only accept the following versions of issues. Please note that this information is time-sensitive and any version of the issue not listed here will be closed** - Minecraft 1.14.4 - Minecraft 1.15.2 @@ -59,15 +59,30 @@ And use `preprocess` to be compatible with all versions. - Minecraft 1.21.8 - Minecraft 1.21.10 - Minecraft 1.21.11 +- Minecraft 26.1.2 ### Mappings -We are using the **Mojang official** mappings to de-obfuscate Minecraft and insert patches. +For Minecraft 1.14 - 1.21.11, we are using the **Mojang official** mappings to de-obfuscate Minecraft and insert patches. ### Document The English doc and the Chinese doc are aligned line by line. +## Disclaimer + +The use of this open-source mod dependency library is entirely at the user's own discretion. Any risks, losses, or consequences that may arise during the use of resources shall be solely borne by the user. We shall not be held responsible for any direct or indirect losses resulting from the use of this project. + +We solemnly commit that during the use of this project, we will not collect, store, transmit, or upload any personal information, usage data, or other sensitive information of users in any form. All data processing is completed locally to ensure the maximum protection of user privacy security. + +For any forks, modified versions, or distributions created by third parties based on this project or distributed through other channels, we do not provide any form of warranty, support, or maintenance services. Users should independently assess the relevant risks when using such third-party versions. The official releases we provide are strictly compiled from the open-source code to generate binary files. During this process, only placeholders and other technical means will be used to replace necessary information such as version numbers at compile time to ensure correct project identification and tracking. No substantive modifications will be made to the source code beyond this. + +At the same time, we need to clearly inform users that we cannot guarantee the complete fix of all known or unknown security vulnerabilities, nor can we promise to respond promptly to all feature requests or provide regular updates. Project maintenance and updates will be arranged according to project development status and resource availability. Users should understand this characteristic of open-source projects and make reasonable usage decisions accordingly. + +It should be particularly noted that this project repository has no affiliation, authorization, sponsorship, or cooperative relationship with Mojang Studios, Microsoft, and their related products, services, or trademarks. This project is a completely independent open-source project. + +If you do not accept any of the above terms and disclaimers, please do not use, install, introduce, or integrate this dependency library into any of your projects, and please immediately delete any related copies stored on your devices or systems, and cease all usage activities. + ## License -This project is available under the LGPLv3 license. Feel free to learn from it and incorporate it in your own projects. +This project is available under the LGPL-3.0 license. Feel free to learn from it and incorporate it in your own projects. diff --git a/README_ZH_CN.md b/README_ZH_CN.md index 1dd04834..83611375 100644 --- a/README_ZH_CN.md +++ b/README_ZH_CN.md @@ -38,7 +38,7 @@ 并且使用 `预处理` 来兼容各版本。 -**注意: 我仅接受以下版本的议题。请注意该信息的时效性,任何不在此列出的版本议题均会被关闭。** +**注意: 我们仅接受以下版本的议题。请注意该信息的时效性,任何不在此列出的版本议题均会被关闭。** - Minecraft 1.14.4 - Minecraft 1.15.2 @@ -59,15 +59,30 @@ - Minecraft 1.21.8 - Minecraft 1.21.10 - Minecraft 1.21.11 +- Minecraft 26.1.2 ### 混淆映射表 -我们使用 **Mojang 官方** 混淆映射表来反混淆 Minecraft 并插入补丁程序。 +对于 Minecraft 1.14 - 1.21.11,我们使用 **Mojang 官方** 混淆映射表来反混淆 Minecraft 并插入补丁程序。 ### 文档 英文文档与中文文档是逐行对应的。 +## 免责声明 + +本开源模组依赖库的使用完全基于使用者的自主决定,所有资源使用过程中可能产生的任何风险、损失或后果均由使用者自行承担,我们不对因使用本项目而导致的任何直接或间接损失负责。 + +我们郑重承诺,在本项目的使用过程中,我们不会以任何形式收集、存储、传输或上传使用者的任何个人信息、使用数据或其他敏感信息,所有数据处理均在本地完成,确保使用者的隐私安全得到最大程度的保护。 + +对于任何第三方基于本项目创建的分支、修改版本或通过其他渠道进行的分发,我们不提供任何形式的保证、支持或维护服务,使用者在使用此类第三方版本时应自行评估相关风险。我们提供的官方发行版严格基于开源代码原样编译生成二进制文件,在此过程中仅会通过占位符等技术手段在编译时替换版本号等必要信息,以确保项目的正确标识和追踪,除此之外不会对源代码进行任何实质性修改。 + +同时,我们需要明确告知使用者,我们无法保证能够完全修复所有已知或未知的安全漏洞,也无法承诺及时响应所有功能请求或提供定期更新,项目的维护和更新将根据项目发展情况和资源可用性进行安排,使用者应理解开源项目的这一特性并据此做出合理的使用决策。 + +需要特别说明的是,本项目库与 Mojang Studios、Microsoft 及其相关产品、服务或商标没有任何关联、授权、赞助或合作关系,本项目为完全独立的开源项目。 + +若您不接受上述任何条款和免责声明,请不要使用、安装、引入或集成本依赖库到您的任何项目中,并请立即删除您设备或系统中已存储的任何相关副本,停止一切使用行为。 + ## 许可 -此项目在 LGPLv3许可证 下可用。 从中学习,并将其融入到您自己的项目中。 +此项目在 LGPL-3.0许可证 下可用。 从中学习,并将其融入到您自己的项目中。 diff --git a/build-logic/build.gradle b/build-logic/build.gradle index 799c3f23..e97ba507 100644 --- a/build-logic/build.gradle +++ b/build-logic/build.gradle @@ -11,11 +11,6 @@ repositories { url = "https://maven.hendrixshen.moe/mirror" } - maven { - name = "Architectury" - url = "https://maven.architectury.dev" - } - maven { name = "Jitpack" url = "https://jitpack.io" @@ -25,10 +20,14 @@ repositories { dependencies { implementation(gradleApi()) implementation(localGroovy()) - implementation(libs.architectury.loom) - implementation(libs.preprocessor) - implementation(libs.replace.token) - implementation(libs.shadow) + compileOnly(libs.essential.loom) + compileOnly(libs.preprocessor) + compileOnly(libs.replace.token) + compileOnly(libs.shadow) + implementation(libs.gson) + implementation(libs.guava) + annotationProcessor(libs.lombok) + compileOnly(libs.lombok) } checkstyle { @@ -52,5 +51,15 @@ gradlePlugin { id = "top.hendrixshen.magiclib.build-logic.core-project" implementationClass = "top.hendrixshen.magiclib.buildLogic.config.CoreProjectBuildLogic" } + + register("magic-loom") { + id = "top.hendrixshen.magiclib.build-logic.magic-loom" + implementationClass = "top.hendrixshen.magiclib.buildLogic.MagicLoomPlugin" + } + + register("magic-loom-root") { + id = "top.hendrixshen.magiclib.build-logic.magic-loom-root" + implementationClass = "top.hendrixshen.magiclib.buildLogic.RootMagicLoomPlugin" + } } } diff --git a/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/MagicLoomExtension.java b/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/MagicLoomExtension.java new file mode 100644 index 00000000..d47b103e --- /dev/null +++ b/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/MagicLoomExtension.java @@ -0,0 +1,14 @@ +package top.hendrixshen.magiclib.buildLogic; + +import org.gradle.api.Project; +import org.gradle.api.provider.Property; + +import top.hendrixshen.magiclib.buildLogic.util.ProjectDetail; + +public interface MagicLoomExtension { + static MagicLoomExtension get(Project project) { + return (MagicLoomExtension) project.getExtensions().getByName("magic"); + } + + Property getProjectDetail(); +} diff --git a/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/MagicLoomExtensionImpl.java b/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/MagicLoomExtensionImpl.java new file mode 100644 index 00000000..57f25772 --- /dev/null +++ b/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/MagicLoomExtensionImpl.java @@ -0,0 +1,28 @@ +package top.hendrixshen.magiclib.buildLogic; + +import lombok.Getter; +import org.gradle.api.GradleException; +import org.gradle.api.Project; + +import org.gradle.api.provider.Property; + +import top.hendrixshen.magiclib.buildLogic.util.ProjectDetail; + +@Getter +public abstract class MagicLoomExtensionImpl implements MagicLoomExtension { + private final Property projectDetail; + + public MagicLoomExtensionImpl(Project project) { + Project parentProject = project.getParent(); + assert parentProject != null; + RootMagicLoomExtension rootMagicLoomExtension = parentProject.getExtensions().getByType(RootMagicLoomExtension.class); + ProjectDetail detail = rootMagicLoomExtension.getProjectDetailMap().get().get(project.getName()); + + if (detail == null) { + throw new GradleException("Project " + project.getName() + " is not registered in root project " + parentProject.getName()); + } + + this.projectDetail = project.getObjects().property(ProjectDetail.class).convention(detail); + this.projectDetail.finalizeValue(); + } +} diff --git a/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/MagicLoomPlugin.java b/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/MagicLoomPlugin.java new file mode 100644 index 00000000..ea6440af --- /dev/null +++ b/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/MagicLoomPlugin.java @@ -0,0 +1,38 @@ +package top.hendrixshen.magiclib.buildLogic; + +import org.gradle.api.GradleException; +import org.gradle.api.Plugin; +import org.gradle.api.Project; + +import top.hendrixshen.magiclib.buildLogic.configuration.MagicLoomConfigurations; +import top.hendrixshen.magiclib.buildLogic.configuration.Preprocessor; + +import java.util.List; + +public class MagicLoomPlugin implements Plugin { + public static final String NAME = "top.hendrixshen.magiclib.build-logic.magic-loom"; + + private static final List> SETUP_JOBS = List.of( + MagicLoomConfigurations.class, + Preprocessor.class + ); + + @Override + public void apply(Project project) { + Project parentProject = project.getParent(); + + if (parentProject == null) { + throw new GradleException(MagicLoomPlugin.NAME + "couldn't apply on root project!"); + } + + if (!parentProject.getPlugins().hasPlugin(RootMagicLoomPlugin.NAME)) { + throw new GradleException("Apply" + RootMagicLoomPlugin.NAME + " on parent project first!"); + } + + project.getExtensions().create(MagicLoomExtension.class, "magic", MagicLoomExtensionImpl.class, project); + + for (Class jobClass : SETUP_JOBS) { + project.getObjects().newInstance(jobClass).run(); + } + } +} diff --git a/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/RootMagicLoomExtension.java b/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/RootMagicLoomExtension.java new file mode 100644 index 00000000..7acd283d --- /dev/null +++ b/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/RootMagicLoomExtension.java @@ -0,0 +1,26 @@ +package top.hendrixshen.magiclib.buildLogic; + +import org.gradle.api.Project; +import org.gradle.api.provider.MapProperty; +import org.gradle.api.provider.Property; + +import top.hendrixshen.magiclib.buildLogic.RootMagicLoomExtensionImpl.ManualLinkDetail; +import top.hendrixshen.magiclib.buildLogic.util.ProjectDetail; + +public interface RootMagicLoomExtension { + static RootMagicLoomExtension get(Project project) { + return (RootMagicLoomExtension) project.getExtensions().getByName("magic"); + } + + Property getMagiclibMode(); + + Property getMultiPlatformSupport(); + + MapProperty getManualLinkMap(); + + MapProperty getProjectDetailMap(); + + void manualLink(String projectName, ProjectDetail to, String mappingFileName); + + void recordProjectDetail(String projectName, ProjectDetail detail); +} diff --git a/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/RootMagicLoomExtensionImpl.java b/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/RootMagicLoomExtensionImpl.java new file mode 100644 index 00000000..1ecec481 --- /dev/null +++ b/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/RootMagicLoomExtensionImpl.java @@ -0,0 +1,48 @@ +package top.hendrixshen.magiclib.buildLogic; + +import lombok.AllArgsConstructor; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.ToString; +import org.gradle.api.Project; +import org.gradle.api.provider.MapProperty; +import org.gradle.api.provider.Property; + +import top.hendrixshen.magiclib.buildLogic.util.ProjectDetail; + +@Getter +public abstract class RootMagicLoomExtensionImpl implements RootMagicLoomExtension { + private final Property magiclibMode; + private final Property multiPlatformSupport; + private final MapProperty manualLinkMap; + private final MapProperty projectDetailMap; + + public RootMagicLoomExtensionImpl(Project project) { + this.magiclibMode = project.getObjects().property(Boolean.class).convention(false); + this.magiclibMode.finalizeValueOnRead(); + this.multiPlatformSupport = project.getObjects().property(Boolean.class).convention(false); + this.multiPlatformSupport.finalizeValueOnRead(); + this.manualLinkMap = project.getObjects().mapProperty(String.class, ManualLinkDetail.class); + this.projectDetailMap = project.getObjects().mapProperty(String.class, ProjectDetail.class); + } + + @Override + public void manualLink(String projectName, ProjectDetail to, String mappingFileName) { + this.manualLinkMap.put(projectName, new ManualLinkDetail(to, mappingFileName)); + } + + @Override + public void recordProjectDetail(String projectName, ProjectDetail detail) { + this.projectDetailMap.put(projectName, detail); + } + + @SuppressWarnings("ClassCanBeRecord") + @Getter + @ToString + @EqualsAndHashCode + @AllArgsConstructor + public static class ManualLinkDetail { + private final ProjectDetail to; + private final String mappingFileName; + } +} diff --git a/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/RootMagicLoomPlugin.java b/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/RootMagicLoomPlugin.java new file mode 100644 index 00000000..eb23f7ab --- /dev/null +++ b/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/RootMagicLoomPlugin.java @@ -0,0 +1,16 @@ +package top.hendrixshen.magiclib.buildLogic; + +import org.gradle.api.Plugin; +import org.gradle.api.Project; + +import top.hendrixshen.magiclib.buildLogic.configuration.root.Preprocessor; + +public class RootMagicLoomPlugin implements Plugin { + public static final String NAME = "top.hendrixshen.magiclib.build-logic.magic-loom-root"; + + @Override + public void apply(Project project) { + project.getExtensions().create(RootMagicLoomExtension.class, "magic", RootMagicLoomExtensionImpl.class, project); + project.getObjects().newInstance(Preprocessor.class).run(); + } +} diff --git a/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/SharedConstants.java b/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/SharedConstants.java new file mode 100644 index 00000000..df1d1c35 --- /dev/null +++ b/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/SharedConstants.java @@ -0,0 +1,38 @@ +package top.hendrixshen.magiclib.buildLogic; + +public class SharedConstants { + public static final String PLATFORM_PROPERTY = "loom.platform"; + + public static class Catalogs { + public static final String LIBS = "libs"; + public static final String FORGES = "forges"; + } + + public static class MagicProperties { + } + + public static class ConfigurationNames { + public static final String AUTO_API = "autoApi"; + public static final String AUTO_COMPILE_ONLY = "autoCompileOnly"; + public static final String AUTO_COMPILE_ONLY_API = "autoCompileOnlyApi"; + public static final String AUTO_RUNTIME_ONLY = "autoRuntimeOnly"; + public static final String AUTO_LOCAL_RUNTIME = "autoLocalRuntime"; + public static final String AUTO_IMPLEMENTATION = "autoImplementation"; + // Loom Remap Configurations + public static final String MOD_API = "modApi"; + public static final String MOD_COMPILE_ONLY = "modCompileOnly"; + public static final String MOD_COMPILE_ONLY_API = "modCompileOnlyApi"; + public static final String MOD_RUNTIME_ONLY = "modRuntimeOnly"; + public static final String MOD_LOCAL_RUNTIME = "modLocalRuntime"; + public static final String MOD_IMPLEMENTATION = "modImplementation"; + } + + public static class CommonDependencies { + public static final String MINECRAFT_GROUP = "com.mojang"; + public static final String MINECRAFT_NAME = "minecraft"; + public static final String FORGE_GROUP = "net.minecraftforge"; + public static final String FORGE_NAME = "forge"; + public static final String NEO_FORGE_GROUP = "net.neoforged"; + public static final String NEO_FORGE_NAME = "neoforge"; + } +} diff --git a/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/config/ProcessResourcesMCConfig.java b/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/config/ProcessResourcesMCConfig.java index 3f8010db..0280c20c 100644 --- a/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/config/ProcessResourcesMCConfig.java +++ b/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/config/ProcessResourcesMCConfig.java @@ -1,12 +1,14 @@ package top.hendrixshen.magiclib.buildLogic.config; +import net.fabricmc.loom.LoomGradlePlugin; + import org.gradle.api.Project; import org.gradle.language.jvm.tasks.ProcessResources; import org.jetbrains.annotations.NotNull; import net.fabricmc.loom.api.LoomGradleExtensionAPI; import net.fabricmc.loom.util.ModPlatform; -import top.hendrixshen.magiclib.buildLogic.Util; +import top.hendrixshen.magiclib.buildLogic.util.Util; import java.nio.file.Path; import java.util.ArrayList; @@ -38,7 +40,9 @@ public void apply(@NotNull Project project) { // We need to wait for the configuration to evaluate before we can release magic // in order to inject subproject's own input configuration. project.afterEvaluate(super::apply); - this.modPlatform = project.getExtensions().getByType(LoomGradleExtensionAPI.class).getPlatform().get(); + project.getPlugins().withType(LoomGradlePlugin.class).configureEach(plugin -> { + this.modPlatform = project.getExtensions().getByType(LoomGradleExtensionAPI.class).getPlatform().get(); + }); } @Override diff --git a/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/config/RootMagicLoomConfigurations.java b/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/config/RootMagicLoomConfigurations.java new file mode 100644 index 00000000..363b05d5 --- /dev/null +++ b/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/config/RootMagicLoomConfigurations.java @@ -0,0 +1,27 @@ +package top.hendrixshen.magiclib.buildLogic.config; + +import org.gradle.api.Project; +import org.gradle.api.artifacts.VersionCatalog; +import org.gradle.api.artifacts.VersionCatalogsExtension; +import org.gradle.api.artifacts.dsl.DependencyHandler; +import org.gradle.api.internal.artifacts.DefaultModuleIdentifier; +import org.gradle.api.internal.artifacts.dependencies.DefaultMinimalDependency; +import org.gradle.api.internal.artifacts.dependencies.DefaultMutableVersionConstraint; + +import net.fabricmc.loom.util.ModPlatform; + +import top.hendrixshen.magiclib.buildLogic.MagicLoomExtension; +import top.hendrixshen.magiclib.buildLogic.RootMagicLoomExtension; + +import javax.inject.Inject; + +public abstract class RootMagicLoomConfigurations implements Runnable { + @Inject + protected abstract Project getProject(); + + + @Override + public void run() { + final RootMagicLoomExtension extension = RootMagicLoomExtension.get(this.getProject()); + } +} diff --git a/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/configuration/JavaPluginConfiguration.java b/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/configuration/JavaPluginConfiguration.java new file mode 100644 index 00000000..15c96e6d --- /dev/null +++ b/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/configuration/JavaPluginConfiguration.java @@ -0,0 +1,78 @@ +package top.hendrixshen.magiclib.buildLogic.configuration; + +import org.gradle.api.JavaVersion; +import org.gradle.api.Project; +import org.gradle.api.plugins.JavaLibraryPlugin; +import org.gradle.api.plugins.JavaPlugin; +import org.gradle.api.plugins.JavaPluginExtension; +import org.gradle.api.tasks.compile.JavaCompile; + +import top.hendrixshen.magiclib.buildLogic.MagicLoomExtension; +import top.hendrixshen.magiclib.buildLogic.util.ProjectDetail; + +import javax.inject.Inject; + +public abstract class JavaPluginConfiguration implements Runnable { + protected ProjectDetail projectDetail; + + @Inject + protected abstract Project getProject(); + + @Override + public void run() { + MagicLoomExtension magicLoomExtension = MagicLoomExtension.get(this.getProject()); + this.projectDetail = magicLoomExtension.getProjectDetail().get(); + this.getProject().getPlugins().apply(JavaLibraryPlugin.class); + this.getProject().getPlugins().withType(JavaPlugin.class).configureEach(this::configureJava); + } + + private void configureJava(JavaPlugin javaPlugin) { + this.configureJavaExtension(); + this.getProject().getTasks().withType(JavaCompile.class).configureEach(this::configureJavaCompileTask); + } + + private void configureJavaExtension() { + JavaPluginExtension java = this.getProject().getExtensions().getByType(JavaPluginExtension.class); + int mcVersion = this.projectDetail.getMinecraftVersionNumber(); + + if (mcVersion >= 26_01_00) { + java.setSourceCompatibility(JavaVersion.VERSION_25); + java.setTargetCompatibility(JavaVersion.VERSION_25); + } else if (mcVersion >= 1_20_05) { + java.setSourceCompatibility(JavaVersion.VERSION_21); + java.setTargetCompatibility(JavaVersion.VERSION_21); + } else if (mcVersion >= 1_18_00) { + java.setSourceCompatibility(JavaVersion.VERSION_17); + java.setTargetCompatibility(JavaVersion.VERSION_17); + } else if (mcVersion >= 1_17_00) { + java.setSourceCompatibility(JavaVersion.VERSION_16); + java.setTargetCompatibility(JavaVersion.VERSION_25); + } else { + java.setSourceCompatibility(JavaVersion.VERSION_1_8); + java.setTargetCompatibility(JavaVersion.VERSION_1_8); + } + + java.withSourcesJar(); + java.withJavadocJar(); + } + + private void configureJavaCompileTask(JavaCompile task) { + task.getOptions().setEncoding("UTF-8"); + int mcVersion = this.projectDetail.getMinecraftVersionNumber(); + + if (mcVersion > 12005) { + task.getOptions().getRelease().set(21); + } else if (mcVersion > 11701) { + task.getOptions().getRelease().set(17); + } else if (mcVersion > 11605) { + task.getOptions().getRelease().set(16); + } else { + task.getOptions().getRelease().set(8); + // suppressed "source/target value 8 is obsolete and will be removed in a future release" + task.getOptions().getCompilerArgs().add("-Xlint:-options");; + } + + task.getOptions().getCompilerArgs().add("-Xlint:deprecation"); + task.getOptions().getCompilerArgs().add("-Xlint:unchecked"); + } +} diff --git a/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/configuration/MagicLoomConfigurations.java b/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/configuration/MagicLoomConfigurations.java new file mode 100644 index 00000000..ab9bd8d4 --- /dev/null +++ b/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/configuration/MagicLoomConfigurations.java @@ -0,0 +1,281 @@ +package top.hendrixshen.magiclib.buildLogic.configuration; + +import net.fabricmc.loom.LoomRemapGradlePlugin; + +import org.gradle.api.Action; +import org.gradle.api.NamedDomainObjectProvider; +import org.gradle.api.Project; +import org.gradle.api.artifacts.Configuration; +import org.gradle.api.artifacts.ConfigurationContainer; +import org.gradle.api.artifacts.VersionCatalog; +import org.gradle.api.artifacts.VersionCatalogsExtension; +import org.gradle.api.artifacts.dsl.DependencyHandler; +import org.gradle.api.internal.artifacts.DefaultModuleIdentifier; +import org.gradle.api.internal.artifacts.dependencies.DefaultMinimalDependency; +import org.gradle.api.internal.artifacts.dependencies.DefaultMutableVersionConstraint; +import org.gradle.api.plugins.JavaPlugin; +import org.gradle.api.tasks.TaskContainer; +import org.gradle.api.tasks.TaskProvider; + +import net.fabricmc.loom.LoomGradlePlugin; +import net.fabricmc.loom.LoomNoRemapGradlePlugin; +import net.fabricmc.loom.api.LoomGradleExtensionAPI; +import net.fabricmc.loom.configuration.ide.RunConfigSettings; +import net.fabricmc.loom.task.LoomTasks; +import net.fabricmc.loom.task.RunGameTask; +import net.fabricmc.loom.util.Constants.Configurations; +import net.fabricmc.loom.util.ModPlatform; + +import top.hendrixshen.magiclib.buildLogic.MagicLoomExtension; +import top.hendrixshen.magiclib.buildLogic.SharedConstants.Catalogs; +import top.hendrixshen.magiclib.buildLogic.SharedConstants.CommonDependencies; +import top.hendrixshen.magiclib.buildLogic.SharedConstants.ConfigurationNames; +import top.hendrixshen.magiclib.buildLogic.util.ProjectDetail; + +import java.io.File; +import java.io.IOException; +import java.io.PrintWriter; +import java.nio.file.Path; +import java.util.Date; +import java.util.Locale; +import java.util.Optional; +import javax.inject.Inject; + +public abstract class MagicLoomConfigurations implements Runnable { + protected ProjectDetail projectDetail; + + private static DefaultMinimalDependency createDependency(String group, String name, String version) { + return new DefaultMinimalDependency(DefaultModuleIdentifier.newId(group, name), new DefaultMutableVersionConstraint(version)); + } + + @Inject + protected abstract Project getProject(); + + @Inject + protected abstract ConfigurationContainer getConfigurations(); + + @Inject + protected abstract DependencyHandler getDependencies(); + + @Inject + protected abstract TaskContainer getTasks(); + + @Override + public void run() { + MagicLoomExtension magicLoomExtension = MagicLoomExtension.get(this.getProject()); + this.projectDetail = magicLoomExtension.getProjectDetail().get(); + + if (this.projectDetail.isUnobfuscatedVersion()) { + this.getProject().getPlugins().apply(LoomNoRemapGradlePlugin.class); + } else { + this.getProject().getPlugins().apply(LoomRemapGradlePlugin.class); + } + + this.register(ConfigurationNames.AUTO_API, Role.RESOLVABLE); + this.register(ConfigurationNames.AUTO_COMPILE_ONLY, Role.RESOLVABLE); + this.register(ConfigurationNames.AUTO_COMPILE_ONLY_API, Role.RESOLVABLE); + this.register(ConfigurationNames.AUTO_RUNTIME_ONLY, Role.RESOLVABLE); + this.register(ConfigurationNames.AUTO_LOCAL_RUNTIME, Role.RESOLVABLE); + this.register(ConfigurationNames.AUTO_IMPLEMENTATION, Role.RESOLVABLE); + + if (this.projectDetail.isUnobfuscatedVersion()) { + this.extendsFrom(JavaPlugin.API_CONFIGURATION_NAME, ConfigurationNames.AUTO_API); + this.extendsFrom(JavaPlugin.COMPILE_ONLY_CONFIGURATION_NAME, ConfigurationNames.AUTO_COMPILE_ONLY); + this.extendsFrom(JavaPlugin.COMPILE_ONLY_API_CONFIGURATION_NAME, ConfigurationNames.AUTO_COMPILE_ONLY_API); + this.extendsFrom(JavaPlugin.RUNTIME_ONLY_CONFIGURATION_NAME, ConfigurationNames.AUTO_RUNTIME_ONLY); + this.extendsFrom(Configurations.LOCAL_RUNTIME, ConfigurationNames.AUTO_LOCAL_RUNTIME); + this.extendsFrom(JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME, ConfigurationNames.AUTO_IMPLEMENTATION); + } else { + this.extendsFrom(ConfigurationNames.MOD_API, ConfigurationNames.AUTO_API); + this.extendsFrom(ConfigurationNames.MOD_COMPILE_ONLY, ConfigurationNames.AUTO_COMPILE_ONLY); + this.extendsFrom(ConfigurationNames.MOD_COMPILE_ONLY_API, ConfigurationNames.AUTO_COMPILE_ONLY_API); + this.extendsFrom(ConfigurationNames.MOD_RUNTIME_ONLY, ConfigurationNames.AUTO_RUNTIME_ONLY); + this.extendsFrom(ConfigurationNames.MOD_LOCAL_RUNTIME, ConfigurationNames.AUTO_LOCAL_RUNTIME); + this.extendsFrom(ConfigurationNames.MOD_IMPLEMENTATION, ConfigurationNames.AUTO_IMPLEMENTATION); + } + + this.getProject().getPlugins().withType(LoomGradlePlugin.class).configureEach(this::configureLoom); + } + + private void configureLoom(LoomGradlePlugin loomGradlePlugin) { + LoomGradleExtensionAPI loom = this.getProject().getExtensions().getByType(LoomGradleExtensionAPI.class); + this.setupLoomExtension(loom); + this.setupMinecraftDependency(loom); + this.setupModLoaderDependency(); + } + + @SuppressWarnings({"UnstableApiUsage", "CodeBlock2Expr"}) + private void setupLoomExtension(LoomGradleExtensionAPI loom) { + loom.silentMojangMappingsLicense(); + loom.getRunConfigs().configureEach(runConfig -> { + runConfig.property("mixin.debug.export", "true"); + }); + + if (loom.getPlatform().get() == ModPlatform.FABRIC || loom.getPlatform().get() == ModPlatform.QUILT) { + loom.mixin(mixin -> { + mixin.getUseLegacyMixinAp().set(!this.projectDetail.isUnobfuscatedVersion()); + }); + } + + if (loom.getPlatform().get() == ModPlatform.FORGE) { + loom.forge(forge -> { + forge.getConvertAccessWideners().set(true); + forge.mixinConfig(this.getProject().getParent().property("mod.id") + ".mixins.json"); + }); + + } + + // Setup client default settings. + RunConfigSettings client = loom.getRunConfigs().getByName("client"); + // client.programArg(); + client.vmArg("-Dmagiclib.debug=true"); + client.vmArg("-Dmagiclib.dev.qol=true"); + client.vmArg("-Dmagiclib.dev.qol.dfu.destroy=true"); + client.setRunDir("run/client"); + TaskProvider runClientTask = this.getTasks().named(LoomTasks.getRunConfigTaskName(client), RunGameTask.class); + runClientTask.configure(task -> { + task.setDefaultCharacterEncoding("UTF-8"); + task.getInputs().property("runDir", this.getProject().file(client.getRunDir()).toPath()); + + task.doFirst(t -> { + Path runDir = (Path) task.getInputs().getProperties().get("runDir"); + boolean _b = runDir.resolve("configs").toFile().mkdirs(); + File options = runDir.resolve("options.txt").toFile(); + + if (options.exists()) { + return; + } + + _b = options.getParentFile().mkdirs(); + + try (PrintWriter writer = new PrintWriter(options)) { + writer.println("autoJump:false"); + writer.println("enableVsync:false"); + writer.println("forceUnicodeFont:true"); + writer.println("fov:1.0"); + + if (this.projectDetail.getMinecraftVersionNumber() < 1_19_00) { + writer.println("gamma:16.0"); + } + + writer.println("guiScale:3"); + writer.println("lang:" + Locale.getDefault().toString().toLowerCase()); + writer.println("maxFps:260"); + writer.println("renderDistance:10"); + writer.println("soundCategory_master:0.0"); + } catch (IOException e) { + // ignore + } + }); + }); + + // Setup server default settings. + RunConfigSettings server = loom.getRunConfigs().getByName("server"); + server.vmArg("-Dmagiclib.debug=true"); + server.vmArg("-Dmagiclib.dev.qol=true"); + server.vmArg("-Dmagiclib.dev.qol.dfu.destroy=true"); + server.setRunDir("run/server"); + TaskProvider runServerTask = this.getTasks().named(LoomTasks.getRunConfigTaskName(server), RunGameTask.class); + + // Agree eula before server init. + runServerTask.configure(task -> { + task.setDefaultCharacterEncoding("UTF-8"); + task.getInputs().property("runDir", this.getProject().file(server.getRunDir()).toPath()); + + task.doFirst(t -> { + Path runDir = (Path) task.getInputs().getProperties().get("runDir"); + File eula = runDir.resolve("eula.txt").toFile(); + + if (eula.exists()) { + return; + } + + boolean _b = eula.getParentFile().mkdirs(); + + try (PrintWriter writer = new PrintWriter(eula)) { + writer.println("#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula)."); + writer.println("#" + new Date()); + writer.println("eula=true"); + } catch (IOException e) { + // ignore + } + }); + }); + } + + private void setupMinecraftDependency(LoomGradleExtensionAPI loom) { + this.getDependencies().add(Configurations.MINECRAFT, createDependency(CommonDependencies.MINECRAFT_GROUP, CommonDependencies.MINECRAFT_NAME, this.projectDetail.getMinecraftVersionName())); + + if (!this.projectDetail.isUnobfuscatedVersion()) { + this.getDependencies().add(Configurations.MAPPINGS, loom.officialMojangMappings()); + } + } + + private void setupModLoaderDependency() { + VersionCatalogsExtension catalogsExtension = this.getProject().getExtensions().getByType(VersionCatalogsExtension.class); + ModPlatform modPlatform = Optional.ofNullable(this.projectDetail.getPlatform()).orElse(ModPlatform.FABRIC); + + if (modPlatform == ModPlatform.FABRIC) { + VersionCatalog libs = catalogsExtension.named(Catalogs.LIBS); + // TODO: Dedicate exception + this.getDependencies().add(ConfigurationNames.AUTO_API, libs.findLibrary("fabric-loader").orElseThrow(RuntimeException::new)); + return; + } + + VersionCatalog forges = catalogsExtension.named(Catalogs.FORGES); + + switch (modPlatform) { + case FORGE: + this.getDependencies().add(Configurations.FORGE, + MagicLoomConfigurations.createDependency(CommonDependencies.FORGE_GROUP, CommonDependencies.FORGE_NAME, + forges.findVersion("forge-mc" + this.projectDetail.getMinecraftVersionNumber()) + .orElseThrow(ForgeDependencyException::new).getDisplayName())); + break; + case NEOFORGE: + this.getDependencies().add(Configurations.NEOFORGE, + MagicLoomConfigurations.createDependency(CommonDependencies.NEO_FORGE_GROUP, CommonDependencies.NEO_FORGE_NAME, + forges.findVersion("neoforge-mc" + this.projectDetail.getMinecraftVersionNumber()) + .orElseThrow(ForgeDependencyException::new).getDisplayName())); + break; + } + } + + private NamedDomainObjectProvider register(String name, Role role) { + return this.getConfigurations().register(name, role::apply); + } + + private NamedDomainObjectProvider registerNonTransitive(String name, Role role) { + final NamedDomainObjectProvider provider = register(name, role); + provider.configure(configuration -> configuration.setTransitive(false)); + return provider; + } + + public void extendsFrom(String a, String b) { + this.getConfigurations().getByName(a, configuration -> configuration.extendsFrom(this.getConfigurations().getByName(b))); + } + + public enum Role { + NONE(false, false), + CONSUMABLE(true, false), + RESOLVABLE(false, true); + + private final boolean canBeConsumed; + private final boolean canBeResolved; + + Role(boolean canBeConsumed, boolean canBeResolved) { + this.canBeConsumed = canBeConsumed; + this.canBeResolved = canBeResolved; + } + + public void apply(Configuration configuration) { + configuration.setCanBeConsumed(this.canBeConsumed); + configuration.setCanBeResolved(this.canBeResolved); + } + } + + private final class ForgeDependencyException extends RuntimeException { + public ForgeDependencyException() { + super("Couldn't locate " + MagicLoomConfigurations.this.projectDetail.getPlatform().id() + " version for " + MagicLoomConfigurations.this.getProject().getName() + " in version catalog"); + } + } +} diff --git a/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/configuration/MagicLoomTasks.java b/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/configuration/MagicLoomTasks.java new file mode 100644 index 00000000..2bcd2082 --- /dev/null +++ b/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/configuration/MagicLoomTasks.java @@ -0,0 +1,14 @@ +package top.hendrixshen.magiclib.buildLogic.configuration; + +import org.gradle.api.Project; + +import javax.inject.Inject; + +public abstract class MagicLoomTasks implements Runnable { + @Inject + protected abstract Project getProject(); + + @Override + public void run() { + } +} diff --git a/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/configuration/Preprocessor.java b/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/configuration/Preprocessor.java new file mode 100644 index 00000000..a1b54d17 --- /dev/null +++ b/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/configuration/Preprocessor.java @@ -0,0 +1,42 @@ +package top.hendrixshen.magiclib.buildLogic.configuration; + +import com.replaymod.gradle.preprocess.PreprocessExtension; +import com.replaymod.gradle.preprocess.PreprocessPlugin; +import org.gradle.api.Project; + +import net.fabricmc.loom.util.ModPlatform; + +import top.hendrixshen.magiclib.buildLogic.MagicLoomExtension; +import top.hendrixshen.magiclib.buildLogic.util.ProjectDetail; + +import javax.inject.Inject; + +public abstract class Preprocessor implements Runnable { + protected ProjectDetail projectDetail; + + @Inject + protected abstract Project getProject(); + + @Override + public void run() { + this.getProject().getPlugins().apply(PreprocessPlugin.class); + MagicLoomExtension magicLoomExtension = MagicLoomExtension.get(this.getProject()); + this.projectDetail = magicLoomExtension.getProjectDetail().get(); + + this.getProject().getPlugins().withType(PreprocessPlugin.class).configureEach(plugin -> { + int mcVersion = this.projectDetail.getMinecraftVersionNumber(); + PreprocessExtension preprocessExtension = this.getProject().getExtensions().getByType(PreprocessExtension.class); + preprocessExtension.getVars().put("MC", mcVersion); + ModPlatform modPlatform = this.projectDetail.getPlatform(); + + if (modPlatform != null) { + preprocessExtension.getVars().put("FABRIC", modPlatform == ModPlatform.FABRIC ? 1 : 0); + preprocessExtension.getVars().put("QUILT", modPlatform == ModPlatform.QUILT ? 1 : 0); + preprocessExtension.getVars().put("FORGE", modPlatform == ModPlatform.FORGE ? 1 : 0); + preprocessExtension.getVars().put("NEO_FORGE", modPlatform == ModPlatform.NEOFORGE ? 1 : 0); + preprocessExtension.getVars().put("FABRIC_LIKE", !modPlatform.isForgeLike() ? 1 : 0); + preprocessExtension.getVars().put("FORGE_LIKE", modPlatform.isForgeLike() ? 1 : 0); + } + }); + } +} diff --git a/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/configuration/root/Preprocessor.java b/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/configuration/root/Preprocessor.java new file mode 100644 index 00000000..ab8b9aed --- /dev/null +++ b/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/configuration/root/Preprocessor.java @@ -0,0 +1,208 @@ +package top.hendrixshen.magiclib.buildLogic.configuration.root; + +import com.replaymod.gradle.preprocess.Node; +import com.replaymod.gradle.preprocess.RootPreprocessExtension; +import com.replaymod.gradle.preprocess.RootPreprocessPlugin; +import groovy.json.JsonSlurper; +import org.gradle.api.GradleException; +import org.gradle.api.Project; +import org.jspecify.annotations.Nullable; + +import net.fabricmc.loom.util.ModPlatform; + +import top.hendrixshen.magiclib.buildLogic.RootMagicLoomExtension; +import top.hendrixshen.magiclib.buildLogic.util.ProjectDetail; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.IOException; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; +import javax.inject.Inject; + +// TODO: Manual Link +public abstract class Preprocessor implements Runnable { + @Inject + protected abstract Project getProject(); + + protected RootMagicLoomExtension magicLoomExtension; + protected RootPreprocessExtension preprocessExtension; + + @SuppressWarnings("unchecked") + @Override + public void run() { + this.getProject().getPlugins().apply(RootPreprocessPlugin.class); + this.magicLoomExtension = this.getProject().getExtensions().getByType(RootMagicLoomExtension.class); + this.preprocessExtension = this.getProject().getExtensions().getByType(RootPreprocessExtension.class); + + this.getProject().afterEvaluate(project -> { + boolean magiclibMode = this.magicLoomExtension.getMagiclibMode().get(); + boolean multiPlatformSupport = this.magicLoomExtension.getMultiPlatformSupport().get(); + Map settings = this.getSettings(); + + if (magiclibMode) { + settings = (Map) settings.get("projects"); + + if (settings == null) { + throw new GradleException("settings.json is not met MagicLib configuration"); + } + + settings = (Map) settings.get(project.getName()); + + if (settings == null) { + throw new GradleException("Project " + project.getName() + " is not in settings.json"); + } + } + + String prefix = (String) settings.get("prefix"); + this.preprocessExtension.getStrictExtraMappings().set(false); + final ProjectDetail rootNodeDetail; + + if (magiclibMode) { + if (prefix == null) { + throw new GradleException("prefix is not specified in settings.json:"); + } + + rootNodeDetail = ProjectDetail.createMagicLib(this.getRootNodeName().replaceAll(prefix + "-", ""), prefix); + } else { + rootNodeDetail = ProjectDetail.create(this.getRootNodeName()); + } + + this.magicLoomExtension.recordProjectDetail(rootNodeDetail.getProjectNameReal(), rootNodeDetail); + List details = ((List) settings.get("versions")).stream().map(p -> { + if (magiclibMode) { + return ProjectDetail.createMagicLib(p, prefix); + } else { + return ProjectDetail.create(p); + } + }).collect(Collectors.toList()); + + int rootIdx = details.indexOf(rootNodeDetail); + Node rootNode = this.preprocessExtension.createNode(this.getRootNodeName(), rootNodeDetail.getMinecraftVersionNumber(), ""); + this.buildVersionChain(details, rootIdx, rootNode, multiPlatformSupport); + }); + } + + private void buildVersionChain(List details, int rootIdx, Node rootNode, boolean multiPlatformSupport) { + ProjectDetail rootNodeDetail = details.get(rootIdx); + + if (multiPlatformSupport) { + this.linkPlatformBranches(rootNode, rootNodeDetail, details); + } + + this.processVersionRange(details, rootIdx - 1, 0, -1, + rootNode, rootNodeDetail, multiPlatformSupport); + this.processVersionRange(details, rootIdx + 1, details.size(), 1, + rootNode, rootNodeDetail, multiPlatformSupport); + } + + @SuppressWarnings({"SimplifiableConditionalExpression"}) + private void processVersionRange(List details, int start, int end, int step, + Node initialPreviousNode, ProjectDetail rootNodeDetail, + boolean multiPlatformSupport) { + Node previousNode = initialPreviousNode; + + // noinspection Pointless + for (int i = start; (step < 0) ? (i >= end) : (i < end); i += step) { + ProjectDetail detail = details.get(i); + + if (!Objects.equals(rootNodeDetail.getPlatform(), detail.getPlatform())) { + continue; + } + + int nextIdx = step < 0 ? i + 1 : i - 1; + Node node = this.createNode(detail); + String mappingFile = this.buildMappingFileName( + details.get(nextIdx), + detail, + multiPlatformSupport + ); + previousNode.link(node, this.getProject().file(mappingFile)); + this.magicLoomExtension.recordProjectDetail(detail.getProjectNameReal(), detail); + // this.getProject().getLogger().lifecycle("Linked {} to {} with {}", previousNode.getProject(), node.getProject(), mappingFile); + + if (multiPlatformSupport) { + this.linkPlatformBranches(node, detail, details); + } + + previousNode = node; + } + } + + private void linkPlatformBranches(Node mainNode, ProjectDetail detail, List details) { + ModPlatform platform = detail.getPlatform(); + + if (platform != ModPlatform.FABRIC) { + throw new GradleException("Unsupported platform " + platform + " on mainchain."); + } + + this.tryLinkPlatform(mainNode, detail, details, ModPlatform.QUILT); + Node forgeNode = this.tryLinkPlatform(mainNode, detail, details, ModPlatform.FORGE); + + if (forgeNode == null) { + this.tryLinkPlatform(mainNode, detail, details, ModPlatform.NEOFORGE); + } else { + this.tryLinkPlatform(forgeNode, detail, details, ModPlatform.NEOFORGE); + } + } + + private @Nullable Node tryLinkPlatform(Node sourceNode, ProjectDetail sourceDetail, List details, ModPlatform platform) { + ProjectDetail targetPlatformDetail = ProjectDetail.createOtherPlatform(sourceDetail, platform); + + if (details.contains(targetPlatformDetail)) { + Node targetNode = this.createNode(targetPlatformDetail); + sourceNode.link(targetNode, null); + this.magicLoomExtension.recordProjectDetail(targetPlatformDetail.getProjectNameReal(), targetPlatformDetail); + // this.getProject().getLogger().lifecycle("Linked {} to {}", sourceNode.getProject(), targetNode.getProject()); + return targetNode; + } + + return null; + } + + private Node createNode(ProjectDetail detail) { + return new Node(detail.getProjectNameReal(), detail.getMinecraftVersionNumber(), ""); + } + + private String buildMappingFileName(ProjectDetail sourceDetail, ProjectDetail targetDetail, boolean multiPlatformSupport) { + StringBuilder mapping = new StringBuilder("versions/mapping-"); + + if (multiPlatformSupport) { + mapping.append(sourceDetail.getPlatform().id()).append("-"); + } + + mapping.append(sourceDetail.getMinecraftVersionName()) + .append("-") + .append(targetDetail.getMinecraftVersionName()) + .append(".txt"); + + return mapping.toString(); + } + + private Map getSettings() { + try { + @SuppressWarnings("unchecked") + Map settings = (Map) new JsonSlurper().parse(this.getProject().getRootDir().toPath().resolve("settings.json")); + return settings; + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + private String getRootNodeName() { + File file = this.getProject().file("./versions/mainProject"); + + if (file.exists()) { + try (BufferedReader reader = new BufferedReader(new FileReader(file))) { + return reader.readLine(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + throw new GradleException("mainProject file not found"); + } +} diff --git a/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/util/ProjectDetail.java b/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/util/ProjectDetail.java new file mode 100644 index 00000000..1cc597b1 --- /dev/null +++ b/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/util/ProjectDetail.java @@ -0,0 +1,130 @@ +package top.hendrixshen.magiclib.buildLogic.util; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Lists; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.ToString; +import org.apache.log4j.LogManager; +import org.apache.log4j.Logger; +import org.apache.log4j.spi.LoggerFactory; +import org.gradle.api.Project; +import org.jetbrains.annotations.ApiStatus; + +import net.fabricmc.loom.util.ModPlatform; + +import javax.inject.Inject; +import java.util.List; +import java.util.Optional; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +@Getter +@ToString +@EqualsAndHashCode +public class ProjectDetail { + private final static List BLACKLIST_FLAGS = ImmutableList.of("MC", "FABRIC", "QUILT", "FORGE", "NEOFORGE", + "FABRIC_LIKE", "FORGE_LIKE"); + private static final Logger LOGGER = LogManager.getLogger(ProjectDetail.class); + + private final String projectName; + private final String prefix; + private final ModPlatform platform; + private final String minecraftVersionName; + private final boolean magiclibMode; + private final int minecraftMajor; + private final int minecraftMinor; + private final int minecraftPatch; + private final List extraFlags = Lists.newArrayList(); + + public static ProjectDetail createOtherPlatform(ProjectDetail detail, ModPlatform modPlatform) { + if (detail.getPlatform() == modPlatform) { + return detail; + } + + return new ProjectDetail(detail.projectName.replaceAll(detail.platform.id(), modPlatform.id()), detail.prefix, modPlatform, + detail.minecraftVersionName, detail.magiclibMode, detail.extraFlags); + } + + public static ProjectDetail create(String project) { + return new ProjectDetail(project, null, false); + } + + @ApiStatus.Internal + public static ProjectDetail createMagicLib(String project, String prefix) { + return new ProjectDetail(project, prefix, true); + } + + public static ProjectDetail create(String project, ModPlatform modPlatform, String minecraftVersionName, List extraFlags) { + return new ProjectDetail(project, null, modPlatform, minecraftVersionName, false, extraFlags); + } + + @ApiStatus.Internal + public static ProjectDetail createMagicLib(String project, String prefix, ModPlatform modPlatform, String minecraftVersionName, List extraFlags) { + return new ProjectDetail(project, prefix, modPlatform, minecraftVersionName, true, extraFlags); + } + + private ProjectDetail(String project, String prefix, ModPlatform modPlatform, String minecraftVersionName, boolean magiclibMode, List extraFlags) { + Matcher matcher = Pattern.compile("^(?(?0|[1-9]\\d*)\\.(?0|[1-9]\\d*)(?:\\.(?0|[1-9]\\d*))?)$").matcher(minecraftVersionName); + + if (!matcher.find()) { + throw new ProjectParseException("Invalid minecraft version name: " + project); + } + + this.projectName = project; + this.prefix = prefix; + this.platform = modPlatform; + this.minecraftVersionName = minecraftVersionName; + this.magiclibMode = magiclibMode; + this.minecraftMajor = Integer.parseInt(matcher.group("major")); + this.minecraftMinor = Integer.parseInt(matcher.group("minor")); + this.minecraftPatch = Optional.ofNullable(matcher.group("patch")).map(Integer::parseInt).orElse(0); + extraFlags.stream().filter(flag -> { + if (ProjectDetail.BLACKLIST_FLAGS.contains(flag)) { + ProjectDetail.LOGGER.warn("Ignored blacklist flag: {}" + flag); + return false; + } + + return true; + }).forEach(this.extraFlags::add); + } + + private ProjectDetail(String project, String prefix, boolean magiclibMode) { + Matcher matcher = Pattern.compile("^(?(?0|[1-9]\\d*)\\.(?0|[1-9]\\d*)(?:\\.(?0|[1-9]\\d*))?)(?:-(?fabric|quilt|forge|neoforge))?$").matcher(project); + + if (!matcher.find()) { + throw new ProjectParseException("Invalid project name: " + project); + } + + this.projectName = project; + this.prefix = prefix; + this.platform = ModPlatform.valueOf(matcher.group("platform") == null ? "FABRIC" : matcher.group("platform").toUpperCase()); + this.minecraftVersionName = matcher.group("version"); + this.magiclibMode = magiclibMode; + this.minecraftMajor = Integer.parseInt(matcher.group("major")); + this.minecraftMinor = Integer.parseInt(matcher.group("minor")); + this.minecraftPatch = Optional.ofNullable(matcher.group("patch")).map(Integer::parseInt).orElse(0); + } + + public String getProjectNameReal() { + if (this.magiclibMode) { + return this.prefix + "-" + this.projectName; + } + + return this.projectName; + } + + public boolean isUnobfuscatedVersion() { + return this.getMinecraftVersionNumber() >= 26_00_00; + } + + public int getMinecraftVersionNumber() { + return this.minecraftMajor * 1_00_00 + this.minecraftMinor * 1_00 + this.minecraftPatch; + } + + public static class ProjectParseException extends IllegalArgumentException { + public ProjectParseException(String message) { + super(message); + } + } +} diff --git a/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/Util.java b/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/util/Util.java similarity index 88% rename from build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/Util.java rename to build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/util/Util.java index 7a0d00cb..68e25786 100644 --- a/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/Util.java +++ b/build-logic/src/main/java/top/hendrixshen/magiclib/buildLogic/util/Util.java @@ -1,4 +1,4 @@ -package top.hendrixshen.magiclib.buildLogic; +package top.hendrixshen.magiclib.buildLogic.util; import org.jetbrains.annotations.NotNull; diff --git a/gradle/forges.versions.toml b/gradle/forges.versions.toml index d1dd8d91..83fe918b 100644 --- a/gradle/forges.versions.toml +++ b/gradle/forges.versions.toml @@ -2,30 +2,15 @@ forge-mc11701 = "1.17.1-37.1.1" forge-mc11802 = "1.18.2-40.3.12" forge-mc11904 = "1.19.4-45.4.3" -forge-mc12001 = "1.20.1-47.4.16" +forge-mc12001 = "1.20.1-47.4.20" neoforge-mc12002 = "20.2.93" neoforge-mc12006 = "20.6.139" -neoforge-mc12101 = "21.1.219" -neoforge-mc12103 = "21.3.95" -neoforge-mc12104 = "21.4.156" -neoforge-mc12105 = "21.5.96" -neoforge-mc12108 = "21.8.52" +neoforge-mc12101 = "21.1.229" +neoforge-mc12103 = "21.3.96" +neoforge-mc12104 = "21.4.157" +neoforge-mc12105 = "21.5.97" +neoforge-mc12108 = "21.8.53" neoforge-mc12110 = "21.10.64" -neoforge-mc12111 = "21.11.38-beta" - -[libraries] -forge-mc11701 = { module = "net.minecraftforge:forge", version.ref = "forge-mc11701" } -forge-mc11802 = { module = "net.minecraftforge:forge", version.ref = "forge-mc11802" } -forge-mc11904 = { module = "net.minecraftforge:forge", version.ref = "forge-mc11904" } -forge-mc12001 = { module = "net.minecraftforge:forge", version.ref = "forge-mc12001" } - -neoforge-mc12002 = { module = "net.neoforged:neoforge", version.ref = "neoforge-mc12002" } -neoforge-mc12006 = { module = "net.neoforged:neoforge", version.ref = "neoforge-mc12006" } -neoforge-mc12101 = { module = "net.neoforged:neoforge", version.ref = "neoforge-mc12101" } -neoforge-mc12103 = { module = "net.neoforged:neoforge", version.ref = "neoforge-mc12103" } -neoforge-mc12104 = { module = "net.neoforged:neoforge", version.ref = "neoforge-mc12104" } -neoforge-mc12105 = { module = "net.neoforged:neoforge", version.ref = "neoforge-mc12105" } -neoforge-mc12108 = { module = "net.neoforged:neoforge", version.ref = "neoforge-mc12108" } -neoforge-mc12110 = { module = "net.neoforged:neoforge", version.ref = "neoforge-mc12110" } -neoforge-mc12111 = { module = "net.neoforged:neoforge", version.ref = "neoforge-mc12111" } +neoforge-mc12111 = "21.11.42" +neoforge-mc260102 = "26.1.2.50-beta" diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 94dcac97..4aad2299 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,6 @@ [plugins] -architectury-loom = { id = "dev.architectury.loom", version.ref = "architectury-loom" } +essential-loom-remap = { id = "gg.essential.loom-remap", version.ref = "essential-loom" } +essential-loom-no-remap = { id = "gg.essential.loom-no-remap", version.ref = "essential-loom" } grgit = { id = "org.ajoberstar.grgit", version.ref = "grgit" } preprocessor = { id = "com.replaymod.preprocess", version.ref = "preprocessor" } replace-token = { id = "top.hendrixshen.replace-token", version.ref = "replace-token" } @@ -7,19 +8,19 @@ shadow = { id = "com.gradleup.shadow", version.ref = "shadow" } yamlang = { id = "me.fallenbreath.yamlang", version.ref = "yamlang" } [versions] -architectury-loom = "1.13-SNAPSHOT" asm = "9.9.1" checkstyle = "13.4.1" commons-lang3 = "3.20.0" +essential-loom = "1.15.50" fabric-loader = "0.19.2" grgit = "5.3.3" gson = "2.14.0" guava = "33.6.0-jre" jetbrains-annotations = "26.1.0" -log4j = "2.25.4" +log4j = "2.26.0" lombok = "1.18.46" mixinextras = "0.5.4" -preprocessor = "d452ef7" +preprocessor = "4c38783" replace-token = "1.2.0" shadow = "9.4.1" spongepowered-mixin = "0.8.7" @@ -45,7 +46,7 @@ mixinextras-fabric = { module = "io.github.llamalad7:mixinextras-fabric", versio fabric-loader = { module = "net.fabricmc:fabric-loader", version.ref = "fabric-loader" } # Plugin -architectury-loom = { module = "dev.architectury.loom:dev.architectury.loom.gradle.plugin", version.ref = "architectury-loom" } +essential-loom = { module = "gg.essential.loom:gg.essential.loom.gradle.plugin", version.ref = "essential-loom" } preprocessor = { module = "com.github.Fallen-Breath:preprocessor", version.ref = "preprocessor" } replace-token = { module = "top.hendrixshen.replace-token:top.hendrixshen.replace-token.gradle.plugin", version.ref = "replace-token" } shadow = { module = "com.gradleup.shadow:shadow-gradle-plugin", version.ref = "shadow" } diff --git a/gradle/mods.versions.toml b/gradle/mods.versions.toml index 3ddd01b1..0bafe099 100644 --- a/gradle/mods.versions.toml +++ b/gradle/mods.versions.toml @@ -1,4 +1,25 @@ [versions] +carpet-mc11404 = "1.14.4-1.3.7+v200127" +carpet-mc11502 = "1.15.2-1.4.8+v200811" +carpet-mc11605 = "1.16.5-1.4.44+v210714" +carpet-mc11701 = "1.17.1-1.4.57+v220119" +carpet-mc11802 = "1.18.2-1.4.69+v220331" +carpet-mc11902 = "1.19.2-1.4.84+v221018" +carpet-mc11903 = "1.19.3-1.4.96+v230201" +carpet-mc11904 = "1.19.4-1.4.101+v230319" +carpet-mc12001 = "1.20-1.4.112+v230608" +carpet-mc12002 = "1.20.2-1.4.119+v230928" +carpet-mc12004 = "1.20.3-1.4.128+v231205" +carpet-mc12006 = "1.20.6-1.4.141+v240429" +carpet-mc12101 = "1.21-1.4.147+v240613" +carpet-mc12103 = "1.21.2-1.4.158+v241022" +carpet-mc12104 = "1.21.4-1.4.161+v241203" +carpet-mc12105 = "1.21.5-1.4.169+v250325" +carpet-mc12108 = "1.21.7-1.4.177+v250630" +carpet-mc12110 = "1.21.10-1.4.188+v251016" +carpet-mc12111 = "1.21.11-1.4.194+v260107" +carpet-mc260102 = "26.1+v260401" + fabric-mc11404 = "0.28.5+1.14" fabric-mc11502 = "0.28.5+1.15" fabric-mc11605 = "0.42.0+1.16" @@ -7,67 +28,71 @@ fabric-mc11802 = "0.77.0+1.18.2" fabric-mc11902 = "0.77.0+1.19.2" fabric-mc11903 = "0.76.1+1.19.3" fabric-mc11904 = "0.87.2+1.19.4" -fabric-mc12001 = "0.92.7+1.20.1" +fabric-mc12001 = "0.92.9+1.20.1" fabric-mc12002 = "0.91.6+1.20.2" fabric-mc12004 = "0.97.3+1.20.4" fabric-mc12006 = "0.100.8+1.20.6" -fabric-mc12101 = "0.116.8+1.21.1" +fabric-mc12101 = "0.116.12+1.21.1" fabric-mc12103 = "0.114.1+1.21.3" fabric-mc12104 = "0.119.4+1.21.4" fabric-mc12105 = "0.128.2+1.21.5" fabric-mc12108 = "0.136.1+1.21.8" fabric-mc12110 = "0.138.4+1.21.10" -fabric-mc12111 = "0.141.3+1.21.11" - -imblocker-original-forge-mc11701 = "5.4.6.1" -imblocker-original-forge-mc11802 = "5.4.6.1" -imblocker-original-forge-mc11904 = "5.4.6.1" -imblocker-original-forge-mc12001 = "5.4.6.1" - -imblocker-original-neoforge-mc12002 = "pgUHk6AD" -imblocker-original-neoforge-mc12006 = "FGYhLbmY" -imblocker-original-neoforge-mc12101 = "FGYhLbmY" -imblocker-original-neoforge-mc12103 = "FGYhLbmY" -imblocker-original-neoforge-mc12104 = "FGYhLbmY" -imblocker-original-neoforge-mc12105 = "FGYhLbmY" -imblocker-original-neoforge-mc12108 = "FGYhLbmY" -imblocker-original-neoforge-mc12110 = "j55gjy9S" -imblocker-original-neoforge-mc12111 = "j55gjy9S" +fabric-mc12111 = "0.141.4+1.21.11" +fabric-mc260102 = "0.148.2+26.1.2" + +imblocker-original-forge-mc11701 = "5.5.3" +imblocker-original-forge-mc11802 = "5.5.3" +imblocker-original-forge-mc11904 = "5.5.3" +imblocker-original-forge-mc12001 = "5.5.3" + +imblocker-original-neoforge-mc12002 = "5.5.3" +imblocker-original-neoforge-mc12006 = "s9gm1AKM" # v5.5.2-neoforge +imblocker-original-neoforge-mc12101 = "s9gm1AKM" # v5.5.2-neoforge +imblocker-original-neoforge-mc12103 = "s9gm1AKM" # v5.5.2-neoforge +imblocker-original-neoforge-mc12104 = "s9gm1AKM" # v5.5.2-neoforge +imblocker-original-neoforge-mc12105 = "s9gm1AKM" # v5.5.2-neoforge +imblocker-original-neoforge-mc12108 = "s9gm1AKM" # v5.5.2-neoforge +imblocker-original-neoforge-mc12110 = "GEzXmM75" # v6.1.3-neoforge +imblocker-original-neoforge-mc12111 = "GEzXmM75" # v6.1.3-neoforge +imblocker-original-neoforge-mc260102 = "xtaSbkNv" # v7.1.4-neoforge in-game-account-switcher-fabric-mc11404 = "8.0.1-fabric1.14" in-game-account-switcher-fabric-mc11502 = "8.0.1-fabric1.15" in-game-account-switcher-fabric-mc11605 = "8.0.1-fabric1.16" in-game-account-switcher-fabric-mc11701 = "8.0.1-fabric1.17" -in-game-account-switcher-fabric-mc11802 = "9.0.4" -in-game-account-switcher-fabric-mc11902 = "rOZ9OXpO" +in-game-account-switcher-fabric-mc11802 = "9.0.6+1.18.2-fabric" +in-game-account-switcher-fabric-mc11902 = "9.0.6+1.19.2-fabric" in-game-account-switcher-fabric-mc11903 = "8.0.1.1-fabric1.19" -in-game-account-switcher-fabric-mc11904 = "IEZz1GYL" -in-game-account-switcher-fabric-mc12001 = "BEifi05w" -in-game-account-switcher-fabric-mc12002 = "95fKovyV" -in-game-account-switcher-fabric-mc12004 = "4YkiZd0z" -in-game-account-switcher-fabric-mc12006 = "GCg9DZEz" -in-game-account-switcher-fabric-mc12101 = "1I6CbhGl" -in-game-account-switcher-fabric-mc12103 = "1lyTVvWQ" -in-game-account-switcher-fabric-mc12104 = "GpMGjDlf" -in-game-account-switcher-fabric-mc12105 = "Rqmwlwr6" -in-game-account-switcher-fabric-mc12108 = "9.0.5" -in-game-account-switcher-fabric-mc12110 = "9.0.6-alpha.1+1.21.10-fabric" -in-game-account-switcher-fabric-mc12111 = "9.0.6-alpha.2+1.21.11-fabric" +in-game-account-switcher-fabric-mc11904 = "9.0.6+1.19.4-fabric" +in-game-account-switcher-fabric-mc12001 = "9.0.6+1.20.1-fabric" +in-game-account-switcher-fabric-mc12002 = "9.0.6+1.20.2-fabric" +in-game-account-switcher-fabric-mc12004 = "9.0.6+1.20.4-fabric" +in-game-account-switcher-fabric-mc12006 = "9.0.6+1.20.6-fabric" +in-game-account-switcher-fabric-mc12101 = "9.0.6+1.21.1-fabric" +in-game-account-switcher-fabric-mc12103 = "9.0.6+1.21.3-fabric" +in-game-account-switcher-fabric-mc12104 = "9.0.6+1.21.4-fabric" +in-game-account-switcher-fabric-mc12105 = "9.0.6+1.21.5-fabric" +in-game-account-switcher-fabric-mc12108 = "9.0.6+1.21.8-fabric" +in-game-account-switcher-fabric-mc12110 = "9.0.6+1.21.10-fabric" +in-game-account-switcher-fabric-mc12111 = "9.0.6+1.21.11-fabric" +in-game-account-switcher-fabric-mc260102 = "9.0.6+26.1.2-fabric" in-game-account-switcher-forge-mc11701 = "8.0.1-forge1.17" -in-game-account-switcher-forge-mc11802 = "Az6PjZ5q" -in-game-account-switcher-forge-mc11904 = "oGKy0OfP" -in-game-account-switcher-forge-mc12001 = "DCMEYBKC" - -in-game-account-switcher-neoforge-mc12002 = "6Vr5XdM2" -in-game-account-switcher-neoforge-mc12006 = "5AbTaqq3" -in-game-account-switcher-neoforge-mc12101 = "2ByghZuX" -in-game-account-switcher-neoforge-mc12103 = "13hMwIl3" -in-game-account-switcher-neoforge-mc12104 = "KlUPHWLu" -in-game-account-switcher-neoforge-mc12105 = "j05I8VL2" -in-game-account-switcher-neoforge-mc12108 = "eQRA4vob" -in-game-account-switcher-neoforge-mc12110 = "9.0.6-alpha.1+1.21.10-neoforge" -in-game-account-switcher-neoforge-mc12111 = "9.0.6-alpha.2+1.21.11-neoforge" +in-game-account-switcher-forge-mc11802 = "9.0.6+1.18.2-forge" +in-game-account-switcher-forge-mc11904 = "9.0.6+1.19.4-forge" +in-game-account-switcher-forge-mc12001 = "9.0.6+1.20.1-forge" + +in-game-account-switcher-neoforge-mc12002 = "9.0.6+1.20.2-neoforge" +in-game-account-switcher-neoforge-mc12006 = "9.0.6+1.20.6-neoforge" +in-game-account-switcher-neoforge-mc12101 = "9.0.6+1.21.1-neoforge" +in-game-account-switcher-neoforge-mc12103 = "9.0.6+1.21.3-neoforge" +in-game-account-switcher-neoforge-mc12104 = "9.0.6+1.21.4-neoforge" +in-game-account-switcher-neoforge-mc12105 = "9.0.6+1.21.5-neoforge" +in-game-account-switcher-neoforge-mc12108 = "9.0.6+1.21.8-neoforge" +in-game-account-switcher-neoforge-mc12110 = "9.0.6+1.21.10-neoforge" +in-game-account-switcher-neoforge-mc12111 = "9.0.6+1.21.11-neoforge" +in-game-account-switcher-neoforge-mc260102 = "9.0.6+26.1.2-neoforge" modmenu-mc11404 = "1.7.17" modmenu-mc11502 = "1.10.7" @@ -81,35 +106,37 @@ modmenu-mc12001 = "7.2.2" modmenu-mc12002 = "8.0.1" modmenu-mc12004 = "9.2.0" modmenu-mc12006 = "10.0.0" -modmenu-mc12101 = "11.0.3" -modmenu-mc12103 = "12.0.0" -modmenu-mc12104 = "13.0.3" -modmenu-mc12105 = "14.0.1" -modmenu-mc12108 = "15.0.1" -modmenu-mc12110 = "16.0.0" -modmenu-mc12111 = "17.0.0-beta.2" +modmenu-mc12101 = "11.0.4" +modmenu-mc12103 = "12.0.1" +modmenu-mc12104 = "13.0.4" +modmenu-mc12105 = "14.0.2" +modmenu-mc12108 = "15.0.2" +modmenu-mc12110 = "16.0.1" +modmenu-mc12111 = "17.0.0" +modmenu-mc260102 = "18.0.0-beta.1" badpackets-mc12006 = "neo-0.7.4" malilib-mc11404 = "0.10.0-dev.20+arne.2" malilib-mc11502 = "0.10.0-dev.21+arne.3" -malilib-mc11605 = "Lav6afIY" -malilib-mc11701 = "HljUtdhE" +malilib-mc11605 = "Lav6afIY" # 0.10.0-dev.21+arne.8 +malilib-mc11701 = "HljUtdhE" # 0.10.0-dev.26 malilib-mc11802 = "0.12.1" -malilib-mc11902 = "M3rtbAPE" +malilib-mc11902 = "M3rtbAPE" # 0.13.0 malilib-mc11903 = "0.14.1-pre.1" malilib-mc11904 = "0.15.4" malilib-mc12001 = "0.16.3" malilib-mc12002 = "0.17.0" malilib-mc12004 = "0.18.3" -malilib-mc12006 = "0.19.0" +malilib-mc12006 = "0.19.2" malilib-mc12101 = "0.21.10" malilib-mc12103 = "0.22.8" malilib-mc12104 = "0.23.5" malilib-mc12105 = "0.24.3" malilib-mc12108 = "0.25.7" malilib-mc12110 = "0.26.8" -malilib-mc12111 = "0.27.5" +malilib-mc12111 = "0.27.9" +malilib-mc260102 = "0.28.3" mafglib-mc11701 = "0.1.6-mc1.17.1" mafglib-mc11802 = "0.1.14-mc1.18.2" @@ -117,15 +144,37 @@ mafglib-mc11904 = "0.1.11-mc1.19.4" mafglib-mc12001 = "0.1.14-mc1.20.1" mafglib-mc12006 = "0.1.15-mc1.20.6" mafglib-mc12101 = "0.4.3+mc1.21.1" -mafglib-mc12103 = "0.4.3+mc1.21.3" +mafglib-mc12103 = "qD9DEqzC" # 0.4.4+mc1.21.3 mafglib-mc12104 = "0.4.3+mc1.21.4" mafglib-mc12105 = "0.4.3+mc1.21.5" mafglib-mc12108 = "0.4.5+mc1.21.8" mafglib-mc12110 = "0.4.11+mc1.21.10" -mafglib-mc12111 = "0.4.2+mc1.21.11" +mafglib-mc12111 = "fKaY22pe" # 0.4.4+mc1.21.11 +mafglib-mc260102 = "bThmGExj" # 0.5.0+mc26.1.1 # libraries will be removed after the migration to build-logic. [libraries] +carpet-mc11404 = { module = "carpet:fabric-carpet", version.ref = "carpet-mc11404" } +carpet-mc11502 = { module = "carpet:fabric-carpet", version.ref = "carpet-mc11502" } +carpet-mc11605 = { module = "carpet:fabric-carpet", version.ref = "carpet-mc11605" } +carpet-mc11701 = { module = "carpet:fabric-carpet", version.ref = "carpet-mc11701" } +carpet-mc11802 = { module = "carpet:fabric-carpet", version.ref = "carpet-mc11802" } +carpet-mc11902 = { module = "carpet:fabric-carpet", version.ref = "carpet-mc11902" } +carpet-mc11903 = { module = "carpet:fabric-carpet", version.ref = "carpet-mc11903" } +carpet-mc11904 = { module = "carpet:fabric-carpet", version.ref = "carpet-mc11904" } +carpet-mc12001 = { module = "carpet:fabric-carpet", version.ref = "carpet-mc12001" } +carpet-mc12002 = { module = "carpet:fabric-carpet", version.ref = "carpet-mc12002" } +carpet-mc12004 = { module = "carpet:fabric-carpet", version.ref = "carpet-mc12004" } +carpet-mc12006 = { module = "carpet:fabric-carpet", version.ref = "carpet-mc12006" } +carpet-mc12101 = { module = "carpet:fabric-carpet", version.ref = "carpet-mc12101" } +carpet-mc12103 = { module = "carpet:fabric-carpet", version.ref = "carpet-mc12103" } +carpet-mc12104 = { module = "carpet:fabric-carpet", version.ref = "carpet-mc12104" } +carpet-mc12105 = { module = "carpet:fabric-carpet", version.ref = "carpet-mc12105" } +carpet-mc12108 = { module = "carpet:fabric-carpet", version.ref = "carpet-mc12108" } +carpet-mc12110 = { module = "carpet:fabric-carpet", version.ref = "carpet-mc12110" } +carpet-mc12111 = { module = "carpet:fabric-carpet", version.ref = "carpet-mc12111" } +carpet-mc260102 = { module = "carpet:fabric-carpet", version.ref = "carpet-mc260102" } + fabric-mc11404 = { module = "net.fabricmc.fabric-api:fabric-api", version.ref = "fabric-mc11404" } fabric-mc11502 = { module = "net.fabricmc.fabric-api:fabric-api", version.ref = "fabric-mc11502" } fabric-mc11605 = { module = "net.fabricmc.fabric-api:fabric-api", version.ref = "fabric-mc11605" } @@ -145,6 +194,9 @@ fabric-mc12105 = { module = "net.fabricmc.fabric-api:fabric-api", version.ref = fabric-mc12108 = { module = "net.fabricmc.fabric-api:fabric-api", version.ref = "fabric-mc12108" } fabric-mc12110 = { module = "net.fabricmc.fabric-api:fabric-api", version.ref = "fabric-mc12110" } fabric-mc12111 = { module = "net.fabricmc.fabric-api:fabric-api", version.ref = "fabric-mc12111" } +fabric-mc260102 = { module = "net.fabricmc.fabric-api:fabric-api", version.ref = "fabric-mc260102" } + +foxifiedclasstweaker = "maven.modrinth:foxifiedclasstweaker:0.1.0-alpha.3" imblocker = "maven.modrinth:imblocker:1.0.24" @@ -162,6 +214,7 @@ imblocker-original-neoforge-mc12105 = { module = "maven.modrinth:imblocker-origi imblocker-original-neoforge-mc12108 = { module = "maven.modrinth:imblocker-original", version.ref = "imblocker-original-neoforge-mc12108" } imblocker-original-neoforge-mc12110 = { module = "maven.modrinth:imblocker-original", version.ref = "imblocker-original-neoforge-mc12110" } imblocker-original-neoforge-mc12111 = { module = "maven.modrinth:imblocker-original", version.ref = "imblocker-original-neoforge-mc12111" } +imblocker-original-neoforge-mc260102 = { module = "maven.modrinth:imblocker-original", version.ref = "imblocker-original-neoforge-mc260102" } in-game-account-switcher-fabric-mc11404 = { module = "maven.modrinth:in-game-account-switcher", version.ref = "in-game-account-switcher-fabric-mc11404" } in-game-account-switcher-fabric-mc11502 = { module = "maven.modrinth:in-game-account-switcher", version.ref = "in-game-account-switcher-fabric-mc11502" } @@ -182,6 +235,7 @@ in-game-account-switcher-fabric-mc12105 = { module = "maven.modrinth:in-game-acc in-game-account-switcher-fabric-mc12108 = { module = "maven.modrinth:in-game-account-switcher", version.ref = "in-game-account-switcher-fabric-mc12108" } in-game-account-switcher-fabric-mc12110 = { module = "maven.modrinth:in-game-account-switcher", version.ref = "in-game-account-switcher-fabric-mc12110" } in-game-account-switcher-fabric-mc12111 = { module = "maven.modrinth:in-game-account-switcher", version.ref = "in-game-account-switcher-fabric-mc12111" } +in-game-account-switcher-fabric-mc260102 = { module = "maven.modrinth:in-game-account-switcher", version.ref = "in-game-account-switcher-fabric-mc260102" } in-game-account-switcher-forge-mc11701 = { module = "maven.modrinth:in-game-account-switcher", version.ref = "in-game-account-switcher-forge-mc11701" } in-game-account-switcher-forge-mc11802 = { module = "maven.modrinth:in-game-account-switcher", version.ref = "in-game-account-switcher-forge-mc11802" } @@ -197,6 +251,7 @@ in-game-account-switcher-neoforge-mc12105 = { module = "maven.modrinth:in-game-a in-game-account-switcher-neoforge-mc12108 = { module = "maven.modrinth:in-game-account-switcher", version.ref = "in-game-account-switcher-neoforge-mc12108" } in-game-account-switcher-neoforge-mc12110 = { module = "maven.modrinth:in-game-account-switcher", version.ref = "in-game-account-switcher-neoforge-mc12110" } in-game-account-switcher-neoforge-mc12111 = { module = "maven.modrinth:in-game-account-switcher", version.ref = "in-game-account-switcher-neoforge-mc12111" } +in-game-account-switcher-neoforge-mc260102 = { module = "maven.modrinth:in-game-account-switcher", version.ref = "in-game-account-switcher-neoforge-mc260102" } modmenu-mc11404 = { module = "maven.modrinth:modmenu", version.ref = "modmenu-mc11404" } modmenu-mc11502 = { module = "maven.modrinth:modmenu", version.ref = "modmenu-mc11502" } @@ -217,6 +272,7 @@ modmenu-mc12105 = { module = "maven.modrinth:modmenu", version.ref = "modmenu-mc modmenu-mc12108 = { module = "maven.modrinth:modmenu", version.ref = "modmenu-mc12108" } modmenu-mc12110 = { module = "maven.modrinth:modmenu", version.ref = "modmenu-mc12110" } modmenu-mc12111 = { module = "maven.modrinth:modmenu", version.ref = "modmenu-mc12111" } +modmenu-mc260102 = { module = "maven.modrinth:modmenu", version.ref = "modmenu-mc260102" } badpackets-mc12006 = { module = "maven.modrinth:mafglib", version.ref = "badpackets-mc12006" } @@ -239,6 +295,7 @@ malilib-mc12105 = { module = "maven.modrinth:malilib", version.ref = "malilib-mc malilib-mc12108 = { module = "maven.modrinth:malilib", version.ref = "malilib-mc12108" } malilib-mc12110 = { module = "maven.modrinth:malilib", version.ref = "malilib-mc12110" } malilib-mc12111 = { module = "maven.modrinth:malilib", version.ref = "malilib-mc12111" } +malilib-mc260102 = { module = "maven.modrinth:malilib", version.ref = "malilib-mc260102" } mafglib-mc11701 = { module = "maven.modrinth:mafglib", version.ref = "mafglib-mc11701" } mafglib-mc11802 = { module = "maven.modrinth:mafglib", version.ref = "mafglib-mc11802" } @@ -252,3 +309,4 @@ mafglib-mc12105 = { module = "maven.modrinth:mafglib", version.ref = "mafglib-mc mafglib-mc12108 = { module = "maven.modrinth:mafglib", version.ref = "mafglib-mc12108" } mafglib-mc12110 = { module = "maven.modrinth:mafglib", version.ref = "mafglib-mc12110" } mafglib-mc12111 = { module = "maven.modrinth:mafglib", version.ref = "mafglib-mc12111" } +mafglib-mc260102 = { module = "maven.modrinth:mafglib", version.ref = "mafglib-mc260102" } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index b52fb7e7..df6a6ad7 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-9.5.0-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.1-bin.zip networkTimeout=10000 retries=0 retryBackOffMs=500 diff --git a/magiclib-better-dev/build.gradle b/magiclib-better-dev/build.gradle index 113d9e28..00e1eed0 100644 --- a/magiclib-better-dev/build.gradle +++ b/magiclib-better-dev/build.gradle @@ -1,85 +1,12 @@ -import com.replaymod.gradle.preprocess.Node -import com.replaymod.gradle.preprocess.RootPreprocessExtension - plugins { - alias(libs.plugins.architectury.loom).apply(false) + alias(libs.plugins.essential.loom.remap).apply(false) + alias(libs.plugins.essential.loom.no.remap).apply(false) alias(libs.plugins.preprocessor).apply(false) -} - -extensions.create("preprocess", RootPreprocessExtension.class) - -preprocess { - strictExtraMappings.set(false) - - // Fabric - Node mc_11404_fabric = createNode("better-dev-1.14.4-fabric", 1_14_04, "mojang") - Node mc_11502_fabric = createNode("better-dev-1.15.2-fabric", 1_15_02, "mojang") - Node mc_11605_fabric = createNode("better-dev-1.16.5-fabric", 1_16_05, "mojang") - Node mc_11701_fabric = createNode("better-dev-1.17.1-fabric", 1_17_01, "mojang") - Node mc_11802_fabric = createNode("better-dev-1.18.2-fabric", 1_18_02, "mojang") - Node mc_11902_fabric = createNode("better-dev-1.19.2-fabric", 1_19_02, "mojang") - Node mc_11903_fabric = createNode("better-dev-1.19.3-fabric", 1_19_03, "mojang") - Node mc_11904_fabric = createNode("better-dev-1.19.4-fabric", 1_19_04, "mojang") - Node mc_12001_fabric = createNode("better-dev-1.20.1-fabric", 1_20_01, "mojang") - Node mc_12002_fabric = createNode("better-dev-1.20.2-fabric", 1_20_02, "mojang") - Node mc_12004_fabric = createNode("better-dev-1.20.4-fabric", 1_20_04, "mojang") - Node mc_12006_fabric = createNode("better-dev-1.20.6-fabric", 1_20_06, "mojang") - Node mc_12101_fabric = createNode("better-dev-1.21.1-fabric", 1_21_01, "mojang") - Node mc_12103_fabric = createNode("better-dev-1.21.3-fabric", 1_21_03, "mojang") - Node mc_12104_fabric = createNode("better-dev-1.21.4-fabric", 1_21_04, "mojang") - Node mc_12105_fabric = createNode("better-dev-1.21.5-fabric", 1_21_05, "mojang") - Node mc_12108_fabric = createNode("better-dev-1.21.8-fabric", 1_21_08, "mojang") - Node mc_12110_fabric = createNode("better-dev-1.21.10-fabric", 1_21_10, "mojang") - Node mc_12111_fabric = createNode("better-dev-1.21.11-fabric", 1_21_11, "mojang") - mc_11502_fabric.link(mc_11404_fabric, file("versions/mapping-fabric-1.15.2-1.14.4.txt")) - mc_11605_fabric.link(mc_11502_fabric, file("versions/mapping-fabric-1.16.5-1.15.2.txt")) - mc_11605_fabric.link(mc_11701_fabric, file("versions/mapping-fabric-1.16.5-1.17.1.txt")) - mc_11701_fabric.link(mc_11802_fabric, file("versions/mapping-fabric-1.17.1-1.18.2.txt")) - mc_11802_fabric.link(mc_11902_fabric, file("versions/mapping-fabric-1.18.2-1.19.2.txt")) - mc_11902_fabric.link(mc_11903_fabric, file("versions/mapping-fabric-1.19.2-1.19.3.txt")) - mc_11903_fabric.link(mc_11904_fabric, file("versions/mapping-fabric-1.19.3-1.19.4.txt")) - mc_11904_fabric.link(mc_12001_fabric, file("versions/mapping-fabric-1.19.4-1.20.1.txt")) - mc_12001_fabric.link(mc_12002_fabric, file("versions/mapping-fabric-1.20.1-1.20.2.txt")) - mc_12002_fabric.link(mc_12004_fabric, file("versions/mapping-fabric-1.20.2-1.20.4.txt")) - mc_12004_fabric.link(mc_12006_fabric, file("versions/mapping-fabric-1.20.4-1.20.6.txt")) - mc_12006_fabric.link(mc_12101_fabric, file("versions/mapping-fabric-1.20.6-1.21.1.txt")) - mc_12101_fabric.link(mc_12103_fabric, file("versions/mapping-fabric-1.21.1-1.21.3.txt")) - mc_12103_fabric.link(mc_12104_fabric, file("versions/mapping-fabric-1.21.3-1.21.4.txt")) - mc_12104_fabric.link(mc_12105_fabric, file("versions/mapping-fabric-1.21.4-1.21.5.txt")) - mc_12105_fabric.link(mc_12108_fabric, file("versions/mapping-fabric-1.21.5-1.21.8.txt")) - mc_12108_fabric.link(mc_12110_fabric, file("versions/mapping-fabric-1.21.8-1.21.10.txt")) - mc_12110_fabric.link(mc_12111_fabric, file("versions/mapping-fabric-1.21.10-1.21.11.txt")) - - // Forge - Node mc_11701_forge = createNode("better-dev-1.17.1-forge", 1_17_01, "mojang") - Node mc_11802_forge = createNode("better-dev-1.18.2-forge", 1_18_02, "mojang") - Node mc_11904_forge = createNode("better-dev-1.19.4-forge", 1_19_04, "mojang") - Node mc_12001_forge = createNode("better-dev-1.20.1-forge", 1_20_01, "mojang") - - mc_11701_fabric.link(mc_11701_forge, null) - mc_11802_fabric.link(mc_11802_forge, null) - mc_11904_fabric.link(mc_11904_forge, null) - mc_12001_fabric.link(mc_12001_forge, null) - - // NeoForge - Node mc_12002_neoforge = createNode("better-dev-1.20.2-neoforge", 1_20_02, "mojang") - Node mc_12006_neoforge = createNode("better-dev-1.20.6-neoforge", 1_20_06, "mojang") - Node mc_12101_neoforge = createNode("better-dev-1.21.1-neoforge", 1_21_01, "mojang") - Node mc_12103_neoforge = createNode("better-dev-1.21.3-neoforge", 1_21_03, "mojang") - Node mc_12104_neoforge = createNode("better-dev-1.21.4-neoforge", 1_21_04, "mojang") - Node mc_12105_neoforge = createNode("better-dev-1.21.5-neoforge", 1_21_05, "mojang") - Node mc_12108_neoforge = createNode("better-dev-1.21.8-neoforge", 1_21_08, "mojang") - Node mc_12110_neoforge = createNode("better-dev-1.21.10-neoforge", 1_21_10, "mojang") - Node mc_12111_neoforge = createNode("better-dev-1.21.11-neoforge", 1_21_11, "mojang") + id("top.hendrixshen.magiclib.build-logic.magic-loom-root") +} - mc_12002_fabric.link(mc_12002_neoforge, null) - mc_12006_fabric.link(mc_12006_neoforge, null) - mc_12101_fabric.link(mc_12101_neoforge, null) - mc_12103_fabric.link(mc_12103_neoforge, null) - mc_12104_fabric.link(mc_12104_neoforge, null) - mc_12105_fabric.link(mc_12105_neoforge, null) - mc_12108_fabric.link(mc_12108_neoforge, null) - mc_12110_fabric.link(mc_12110_neoforge, null) - mc_12111_fabric.link(mc_12111_neoforge, null) +magic { + magiclibMode = true + multiPlatformSupport = true } diff --git a/magiclib-better-dev/versions/1.14.4-fabric/gradle.properties b/magiclib-better-dev/versions/1.14.4-fabric/gradle.properties index 427a99ea..4527780e 100644 --- a/magiclib-better-dev/versions/1.14.4-fabric/gradle.properties +++ b/magiclib-better-dev/versions/1.14.4-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.14.x -dependencies.minecraft_version=1.14.4 # Publish properties publish.game_version=1.14.4 diff --git a/magiclib-better-dev/versions/1.15.2-fabric/gradle.properties b/magiclib-better-dev/versions/1.15.2-fabric/gradle.properties index bb48a84c..2d5d19b3 100644 --- a/magiclib-better-dev/versions/1.15.2-fabric/gradle.properties +++ b/magiclib-better-dev/versions/1.15.2-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.15.x -dependencies.minecraft_version=1.15.2 # Publish properties publish.game_version=1.15.2 diff --git a/magiclib-better-dev/versions/1.16.5-fabric/build.gradle b/magiclib-better-dev/versions/1.16.5-fabric/build.gradle index b6b0498c..bab7370a 100644 --- a/magiclib-better-dev/versions/1.16.5-fabric/build.gradle +++ b/magiclib-better-dev/versions/1.16.5-fabric/build.gradle @@ -1,3 +1,5 @@ +import net.fabricmc.loom.util.ModPlatform + plugins { id("checkstyle") id("java") @@ -5,34 +7,19 @@ plugins { id("maven-publish") id("signing") - alias(libs.plugins.architectury.loom) - alias(libs.plugins.replace.token) alias(libs.plugins.yamlang) - alias(libs.plugins.preprocessor) + alias(libs.plugins.replace.token) + id("top.hendrixshen.magiclib.build-logic.magic-loom") id("top.hendrixshen.magiclib.build-logic.process-resources-minecraft") } -String modPlatform = loom.platform.get().toString().toLowerCase() -boolean fabricLike = modPlatform == "fabric" || modPlatform == "quilt" -boolean forgeLike = modPlatform == "forge" || modPlatform == "neoforge" -String projectName = project.name.replace("better-dev-", "") -int mcVersion = 0 -VersionCatalogsExtension catalogsExtension = project.getExtensions().getByType(VersionCatalogsExtension.class) - -preprocess { - mcVersion = vars.get().get("MC") - vars.put("MC", mcVersion) - vars.put("FABRIC", modPlatform == "fabric" ? 1 : 0) - vars.put("FORGE", modPlatform == "forge" ? 1 : 0) - vars.put("NEO_FORGE", modPlatform == "neoforge" ? 1 : 0) - vars.put("FABRIC_LIKE", fabricLike ? 1 : 0) - vars.put("FORGE_LIKE", forgeLike ? 1 : 0) -} - -loom { - silentMojangMappingsLicense() -} +final int mcVersion = magic.projectDetail.get().getMinecraftVersionNumber() +final ModPlatform modPlatform = magic.projectDetail.get().getPlatform() +final boolean fabricLike = !modPlatform.isForgeLike() +final boolean forgeLike = modPlatform.isForgeLike() +final String projectName = project.name.replace("better-dev-", "") +final VersionCatalogsExtension catalogsExtension = project.getExtensions().getByType(VersionCatalogsExtension.class) repositories { mavenLocal() @@ -70,35 +57,20 @@ repositories { // Configuration name, Module, Resolve condition, Use version mapping, Configuration closure. def deps = [ - ["modApi" , "fabric" , fabricLike , true , { }], - ["modApi" , "modmenu" , fabricLike , true , { transitive = false }], - ["modRuntimeOnly", "in-game-account-switcher-${modPlatform}", true , true , { transitive = false }], - ["modRuntimeOnly", "imblocker" , fabricLike && mcVersion < 12109, false, { transitive = false }], - ["modRuntimeOnly", "imblocker-original-${modPlatform}" , forgeLike , true , { transitive = false }] + ["autoApi" , "fabric" , fabricLike , true , { }], + ["autoApi" , "modmenu" , fabricLike , true , { transitive = false }], + ["autoRuntimeOnly", "in-game-account-switcher-${modPlatform.id()}", true , true , { transitive = false }], + ["autoRuntimeOnly", "imblocker" , fabricLike && mcVersion < 12109, false, { transitive = false }], + ["autoRuntimeOnly", "imblocker-original-${modPlatform.id()}" , forgeLike , true , { transitive = false }] ] dependencies { - minecraft("com.mojang:minecraft:${project.property("dependencies.minecraft_version")}") - mappings(loom.officialMojangMappings()) - // Lombok compileOnly(libs.lombok) annotationProcessor(libs.lombok) // MagicLib Core - api(annotationProcessor(project(path: ":magiclib-core:${modPlatform}", configuration: "shadow"))) - - switch (modPlatform) { - case "fabric": - modApi(libs.fabric.loader) - break - case "forge": - forge(catalogsExtension.named("forges").findLibrary("forge-mc${mcVersion}").orElseThrow { throw new GradleException("No Forge library found for mc${mcVersion}") }) - break - case "neoforge": - neoForge(catalogsExtension.named("forges").findLibrary("neoforge-mc${mcVersion}").orElseThrow { throw new GradleException("No NeoForge library found for mc${mcVersion}") }) - break - } + api(annotationProcessor(project(path: ":magiclib-core:${modPlatform.id()}", configuration: "shadow"))) deps.forEach { item -> String configurationName = item[0] @@ -128,24 +100,6 @@ loom { isEnabled.set(false) } - if (fabricLike) { - mixin { - useLegacyMixinAp.set(true) - } - } - - if (modPlatform == "forge") { - forge { - convertAccessWideners.set(true) - mixinConfig("${project.parent.property("mod.id")}.mixins.json") - } - } - - runConfigs.configureEach { - // Dump modified classes automatically. - property("mixin.debug.export", "true") - } - runConfigs.named("client") { programArgs([ "--width", @@ -155,17 +109,6 @@ loom { "--username", project.getOrDefault("ow.game.username", "dev") ]) - vmArgs("-Dmagiclib.debug=true") - vmArgs("-Dmagiclib.dev.qol=true") - vmArgs("-Dmagiclib.dev.qol.dfu.destroy=true") - runDir("run/client") - } - - runConfigs.named("server") { - vmArgs("-Dmagiclib.debug=true") - vmArgs("-Dmagiclib.dev.qol=true") - vmArgs("-Dmagiclib.dev.qol.dfu.destroy=true") - runDir("run/server") } if (fabricLike) { @@ -188,7 +131,7 @@ loom { } base { - setArchivesName("${project.parent.property("mod.archives_base_name")}-mc${project.property("dependencies.minecraft_version")}-${modPlatform}") + setArchivesName("${project.parent.property("mod.archives_base_name")}-mc${magic.projectDetail.get().getMinecraftVersionName()}-${modPlatform.id()}") setGroup("${project.property("mod.maven_group")}") setVersion(project.getModVersion(project.parent)) } @@ -198,29 +141,12 @@ checkstyle { toolVersion = libs.versions.checkstyle.get() } -java { - if (mcVersion > 11204) { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 - } else if (mcVersion > 11701) { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } else if (mcVersion > 11605) { - sourceCompatibility = JavaVersion.VERSION_16 - targetCompatibility = JavaVersion.VERSION_16 - } else { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 - } - - withSourcesJar() - withJavadocJar() -} - -remapJar { - if (forgeLike) { - if (modPlatform == "neoforge") { - atAccessWideners.add("${project.parent.property("mod.id")}.accesswidener") +if (!magic.projectDetail.get().isUnobfuscatedVersion()) { + remapJar { + if (forgeLike) { + if (modPlatform == ModPlatform.NEOFORGE) { + atAccessWideners.add("${project.parent.property("mod.id")}.accesswidener") + } } } } @@ -301,74 +227,6 @@ tasks.withType(Javadoc).configureEach { Javadoc task -> (task.options as CoreJavadocOptions).addStringOption("Xdoclint:none", "-quiet") } -tasks.withType(JavaCompile).configureEach { JavaCompile task -> - task.options.encoding = "UTF-8" - - if (mcVersion > 12005) { - task.options.release.set(21) - } else if (mcVersion > 11701) { - task.options.release.set(17) - } else if (mcVersion > 11605) { - task.options.release.set(16) - } else { - task.options.release.set(8) - options.compilerArgs << '-Xlint:-options' - } -} - -// Setup client default settings. -tasks.named("runClient") { - defaultCharacterEncoding = "UTF-8" - - doFirst { - file("${project.projectDir}/run/client/config").mkdirs() - file("${project.projectDir}/run/client/options.txt").with { File f -> - { - if (!f.exists()) { - f.parentFile.mkdirs() - f.withWriter { BufferedWriter writer -> - writer.writeLine("autoJump:false") - writer.writeLine("enableVsync:false") - writer.writeLine("forceUnicodeFont:true") - writer.writeLine("fov:1.0") - - if (mcVersion < 11900) { - writer.writeLine("gamma:16.0") - } - - writer.writeLine("guiScale:3") - writer.writeLine("lang:${Locale.getDefault().toString().toLowerCase()}") - writer.writeLine("maxFps:260") - writer.writeLine("renderDistance:10") - writer.writeLine("soundCategory_master:0.0") - } - } - } - } - } -} - -// Setup server default settings. -tasks.named("runServer") { - defaultCharacterEncoding = "UTF-8" - - doFirst { - // Agree eula before server init. - file("${project.projectDir}/run/server/eula.txt").with { File f -> - { - if (!f.exists()) { - f.parentFile.mkdirs() - f.withWriter { BufferedWriter writer -> - writer.writeLine("#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).") - writer.writeLine("#${new Date()}") - writer.writeLine("eula=true") - } - } - } - } - } -} - tasks.register("cleanRuns", Delete.class) { Delete cleanTask -> dependsOn("cleanRunClient", "cleanRunServer") cleanTask.setGroup("${project.property("mod.id")}") diff --git a/magiclib-better-dev/versions/1.16.5-fabric/gradle.properties b/magiclib-better-dev/versions/1.16.5-fabric/gradle.properties index 361d8938..223a21d8 100644 --- a/magiclib-better-dev/versions/1.16.5-fabric/gradle.properties +++ b/magiclib-better-dev/versions/1.16.5-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.16.x -dependencies.minecraft_version=1.16.5 # Publish properties publish.game_version=1.16.5 diff --git a/magiclib-better-dev/versions/1.17.1-fabric/gradle.properties b/magiclib-better-dev/versions/1.17.1-fabric/gradle.properties index 57df3873..1ad18554 100644 --- a/magiclib-better-dev/versions/1.17.1-fabric/gradle.properties +++ b/magiclib-better-dev/versions/1.17.1-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.17.x -dependencies.minecraft_version=1.17.1 # Publish properties publish.game_version=1.17.1 diff --git a/magiclib-better-dev/versions/1.17.1-forge/gradle.properties b/magiclib-better-dev/versions/1.17.1-forge/gradle.properties index ea5e8ded..ee9f0b26 100644 --- a/magiclib-better-dev/versions/1.17.1-forge/gradle.properties +++ b/magiclib-better-dev/versions/1.17.1-forge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.17.x -dependencies.minecraft_version=1.17.1 # Loom Properties loom.platform=forge diff --git a/magiclib-better-dev/versions/1.18.2-fabric/gradle.properties b/magiclib-better-dev/versions/1.18.2-fabric/gradle.properties index c12724dc..73218105 100644 --- a/magiclib-better-dev/versions/1.18.2-fabric/gradle.properties +++ b/magiclib-better-dev/versions/1.18.2-fabric/gradle.properties @@ -1,6 +1,8 @@ # Dependency Versions dependencies.minecraft_dependency=1.18.x -dependencies.minecraft_version=1.18.2 + +# Loom Properties +loom.ignoreDependencyLoomVersionValidation=true # Publish properties publish.game_version=1.18.2 diff --git a/magiclib-better-dev/versions/1.18.2-forge/gradle.properties b/magiclib-better-dev/versions/1.18.2-forge/gradle.properties index 326535f7..05231e3a 100644 --- a/magiclib-better-dev/versions/1.18.2-forge/gradle.properties +++ b/magiclib-better-dev/versions/1.18.2-forge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.18.x -dependencies.minecraft_version=1.18.2 # Loom Properties loom.platform=forge diff --git a/magiclib-better-dev/versions/1.19.2-fabric/gradle.properties b/magiclib-better-dev/versions/1.19.2-fabric/gradle.properties index a3fb9c8c..84665cdb 100644 --- a/magiclib-better-dev/versions/1.19.2-fabric/gradle.properties +++ b/magiclib-better-dev/versions/1.19.2-fabric/gradle.properties @@ -1,6 +1,8 @@ # Dependency Versions dependencies.minecraft_dependency=1.19.2 -dependencies.minecraft_version=1.19.2 + +# Loom Properties +loom.ignoreDependencyLoomVersionValidation=true # Publish properties publish.game_version=1.19.2 diff --git a/magiclib-better-dev/versions/1.19.3-fabric/gradle.properties b/magiclib-better-dev/versions/1.19.3-fabric/gradle.properties index 72373ef7..93e03eaa 100644 --- a/magiclib-better-dev/versions/1.19.3-fabric/gradle.properties +++ b/magiclib-better-dev/versions/1.19.3-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.19.3 -dependencies.minecraft_version=1.19.3 # Publish properties publish.game_version=1.19.3 diff --git a/magiclib-better-dev/versions/1.19.4-fabric/gradle.properties b/magiclib-better-dev/versions/1.19.4-fabric/gradle.properties index 320f59a0..c2cc29e6 100644 --- a/magiclib-better-dev/versions/1.19.4-fabric/gradle.properties +++ b/magiclib-better-dev/versions/1.19.4-fabric/gradle.properties @@ -1,6 +1,8 @@ # Dependency Versions dependencies.minecraft_dependency=1.19.4 -dependencies.minecraft_version=1.19.4 + +# Loom Properties +loom.ignoreDependencyLoomVersionValidation=true # Publish properties publish.game_version=1.19.4 diff --git a/magiclib-better-dev/versions/1.19.4-forge/gradle.properties b/magiclib-better-dev/versions/1.19.4-forge/gradle.properties index f392fbb3..ac3e4cc2 100644 --- a/magiclib-better-dev/versions/1.19.4-forge/gradle.properties +++ b/magiclib-better-dev/versions/1.19.4-forge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.19.4 -dependencies.minecraft_version=1.19.4 # Loom Properties loom.platform=forge diff --git a/magiclib-better-dev/versions/1.20.1-fabric/gradle.properties b/magiclib-better-dev/versions/1.20.1-fabric/gradle.properties index e9a128eb..af3cca7f 100644 --- a/magiclib-better-dev/versions/1.20.1-fabric/gradle.properties +++ b/magiclib-better-dev/versions/1.20.1-fabric/gradle.properties @@ -1,6 +1,8 @@ # Dependency Versions dependencies.minecraft_dependency=1.20.1 -dependencies.minecraft_version=1.20.1 + +# Loom Properties +loom.ignoreDependencyLoomVersionValidation=true # Publish properties publish.game_version=1.20.1 diff --git a/magiclib-better-dev/versions/1.20.1-forge/gradle.properties b/magiclib-better-dev/versions/1.20.1-forge/gradle.properties index 2d9b6da7..ef3ad4b5 100644 --- a/magiclib-better-dev/versions/1.20.1-forge/gradle.properties +++ b/magiclib-better-dev/versions/1.20.1-forge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.20.1 -dependencies.minecraft_version=1.20.1 # Loom Properties loom.platform=forge diff --git a/magiclib-better-dev/versions/1.20.2-fabric/gradle.properties b/magiclib-better-dev/versions/1.20.2-fabric/gradle.properties index 26d3f1c6..e3d161a1 100644 --- a/magiclib-better-dev/versions/1.20.2-fabric/gradle.properties +++ b/magiclib-better-dev/versions/1.20.2-fabric/gradle.properties @@ -1,6 +1,8 @@ # Dependency Versions dependencies.minecraft_dependency=1.20.2 -dependencies.minecraft_version=1.20.2 + +# Loom Properties +loom.ignoreDependencyLoomVersionValidation=true # Publish properties publish.game_version=1.20.2 diff --git a/magiclib-better-dev/versions/1.20.2-neoforge/gradle.properties b/magiclib-better-dev/versions/1.20.2-neoforge/gradle.properties index 993bcd12..1b5681de 100644 --- a/magiclib-better-dev/versions/1.20.2-neoforge/gradle.properties +++ b/magiclib-better-dev/versions/1.20.2-neoforge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.20.2 -dependencies.minecraft_version=1.20.2 # Loom Properties loom.platform=neoforge diff --git a/magiclib-better-dev/versions/1.20.4-fabric/gradle.properties b/magiclib-better-dev/versions/1.20.4-fabric/gradle.properties index daf577e4..5954fb17 100644 --- a/magiclib-better-dev/versions/1.20.4-fabric/gradle.properties +++ b/magiclib-better-dev/versions/1.20.4-fabric/gradle.properties @@ -1,6 +1,8 @@ # Dependency Versions dependencies.minecraft_dependency=>=1.20.3- <1.20.5- -dependencies.minecraft_version=1.20.4 + +# Loom Properties +loom.ignoreDependencyLoomVersionValidation=true # Publish properties publish.game_version=1.20.3,1.20.4 diff --git a/magiclib-better-dev/versions/1.20.6-fabric/gradle.properties b/magiclib-better-dev/versions/1.20.6-fabric/gradle.properties index 2eac327d..cb2fd516 100644 --- a/magiclib-better-dev/versions/1.20.6-fabric/gradle.properties +++ b/magiclib-better-dev/versions/1.20.6-fabric/gradle.properties @@ -1,6 +1,8 @@ # Dependency Versions dependencies.minecraft_dependency=>=1.20.5- <1.20.7- -dependencies.minecraft_version=1.20.6 + +# Loom Properties +loom.ignoreDependencyLoomVersionValidation=true # Publish properties publish.game_version=1.20.5,1.20.6 diff --git a/magiclib-better-dev/versions/1.20.6-neoforge/gradle.properties b/magiclib-better-dev/versions/1.20.6-neoforge/gradle.properties index c819bede..d40bc435 100644 --- a/magiclib-better-dev/versions/1.20.6-neoforge/gradle.properties +++ b/magiclib-better-dev/versions/1.20.6-neoforge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=[1.20.5,1.20.7) -dependencies.minecraft_version=1.20.6 # Loom Properties loom.platform=neoforge diff --git a/magiclib-better-dev/versions/1.21.1-fabric/gradle.properties b/magiclib-better-dev/versions/1.21.1-fabric/gradle.properties index f4e68e79..60bd9a6d 100644 --- a/magiclib-better-dev/versions/1.21.1-fabric/gradle.properties +++ b/magiclib-better-dev/versions/1.21.1-fabric/gradle.properties @@ -1,6 +1,8 @@ # Dependency Versions dependencies.minecraft_dependency=>=1.21- <1.21.2- -dependencies.minecraft_version=1.21.1 + +# Loom Properties +loom.ignoreDependencyLoomVersionValidation=true # Publish properties publish.game_version=1.21,1.21.1 diff --git a/magiclib-better-dev/versions/1.21.1-neoforge/gradle.properties b/magiclib-better-dev/versions/1.21.1-neoforge/gradle.properties index 20864165..a537a8de 100644 --- a/magiclib-better-dev/versions/1.21.1-neoforge/gradle.properties +++ b/magiclib-better-dev/versions/1.21.1-neoforge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=[1.21,1.21.2) -dependencies.minecraft_version=1.21.1 # Loom Properties loom.platform=neoforge diff --git a/magiclib-better-dev/versions/1.21.10-fabric/gradle.properties b/magiclib-better-dev/versions/1.21.10-fabric/gradle.properties index c4f8926c..f3ad2a50 100644 --- a/magiclib-better-dev/versions/1.21.10-fabric/gradle.properties +++ b/magiclib-better-dev/versions/1.21.10-fabric/gradle.properties @@ -1,6 +1,8 @@ # Dependency Versions dependencies.minecraft_dependency=>=1.21.9- <1.21.11- -dependencies.minecraft_version=1.21.10 + +# Loom Properties +loom.ignoreDependencyLoomVersionValidation=true # Publish properties publish.game_version=1.21.9,1.21.10 diff --git a/magiclib-better-dev/versions/1.21.10-neoforge/gradle.properties b/magiclib-better-dev/versions/1.21.10-neoforge/gradle.properties index 0ad797d6..0eaa34a6 100644 --- a/magiclib-better-dev/versions/1.21.10-neoforge/gradle.properties +++ b/magiclib-better-dev/versions/1.21.10-neoforge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=[1.21.9,1.21.11) -dependencies.minecraft_version=1.21.10 # Loom Properties loom.platform=neoforge diff --git a/magiclib-better-dev/versions/1.21.11-fabric/gradle.properties b/magiclib-better-dev/versions/1.21.11-fabric/gradle.properties index 329c8353..09a01229 100644 --- a/magiclib-better-dev/versions/1.21.11-fabric/gradle.properties +++ b/magiclib-better-dev/versions/1.21.11-fabric/gradle.properties @@ -1,6 +1,8 @@ # Dependency Versions dependencies.minecraft_dependency=>=1.21.11- <1.21.12- -dependencies.minecraft_version=1.21.11 + +# Loom Properties +loom.ignoreDependencyLoomVersionValidation=true # Publish properties publish.game_version=1.21.11 diff --git a/magiclib-better-dev/versions/1.21.11-neoforge/gradle.properties b/magiclib-better-dev/versions/1.21.11-neoforge/gradle.properties index 37f5ed7e..af0c9f58 100644 --- a/magiclib-better-dev/versions/1.21.11-neoforge/gradle.properties +++ b/magiclib-better-dev/versions/1.21.11-neoforge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=[1.21.11,1.21.12) -dependencies.minecraft_version=1.21.11 # Loom Properties loom.platform=neoforge diff --git a/magiclib-better-dev/versions/1.21.11-neoforge/src/main/resources/magiclib-better-dev.accesswidener b/magiclib-better-dev/versions/1.21.11-neoforge/src/main/resources/magiclib-better-dev.accesswidener index d4342d06..ae163778 100644 --- a/magiclib-better-dev/versions/1.21.11-neoforge/src/main/resources/magiclib-better-dev.accesswidener +++ b/magiclib-better-dev/versions/1.21.11-neoforge/src/main/resources/magiclib-better-dev.accesswidener @@ -1 +1 @@ -accessWidener v2 named +accessWidener v2 official diff --git a/magiclib-better-dev/versions/1.21.3-fabric/gradle.properties b/magiclib-better-dev/versions/1.21.3-fabric/gradle.properties index c18f08af..1ef5c102 100644 --- a/magiclib-better-dev/versions/1.21.3-fabric/gradle.properties +++ b/magiclib-better-dev/versions/1.21.3-fabric/gradle.properties @@ -1,6 +1,8 @@ # Dependency Versions dependencies.minecraft_dependency=>=1.21.2- <1.21.4- -dependencies.minecraft_version=1.21.3 + +# Loom Properties +loom.ignoreDependencyLoomVersionValidation=true # Publish properties publish.game_version=1.21.2,1.21.3 diff --git a/magiclib-better-dev/versions/1.21.3-neoforge/gradle.properties b/magiclib-better-dev/versions/1.21.3-neoforge/gradle.properties index 35dafa2b..887ab862 100644 --- a/magiclib-better-dev/versions/1.21.3-neoforge/gradle.properties +++ b/magiclib-better-dev/versions/1.21.3-neoforge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=[1.21.2,1.21.4) -dependencies.minecraft_version=1.21.3 # Loom Properties loom.platform=neoforge diff --git a/magiclib-better-dev/versions/1.21.4-fabric/gradle.properties b/magiclib-better-dev/versions/1.21.4-fabric/gradle.properties index 58d4eb2d..fd0ff409 100644 --- a/magiclib-better-dev/versions/1.21.4-fabric/gradle.properties +++ b/magiclib-better-dev/versions/1.21.4-fabric/gradle.properties @@ -1,6 +1,8 @@ # Dependency Versions dependencies.minecraft_dependency=>=1.21.4- <1.21.5- -dependencies.minecraft_version=1.21.4 + +# Loom Properties +loom.ignoreDependencyLoomVersionValidation=true # Publish properties publish.game_version=1.21.4 diff --git a/magiclib-better-dev/versions/1.21.4-neoforge/gradle.properties b/magiclib-better-dev/versions/1.21.4-neoforge/gradle.properties index 297ccd69..d96b0d98 100644 --- a/magiclib-better-dev/versions/1.21.4-neoforge/gradle.properties +++ b/magiclib-better-dev/versions/1.21.4-neoforge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=[1.21.4,1.21.5) -dependencies.minecraft_version=1.21.4 # Loom Properties loom.platform=neoforge diff --git a/magiclib-better-dev/versions/1.21.5-fabric/gradle.properties b/magiclib-better-dev/versions/1.21.5-fabric/gradle.properties index 9566876b..d51cbf1e 100644 --- a/magiclib-better-dev/versions/1.21.5-fabric/gradle.properties +++ b/magiclib-better-dev/versions/1.21.5-fabric/gradle.properties @@ -1,6 +1,8 @@ # Dependency Versions dependencies.minecraft_dependency=>=1.21.5- <1.21.6- -dependencies.minecraft_version=1.21.5 + +# Loom Properties +loom.ignoreDependencyLoomVersionValidation=true # Publish properties publish.game_version=1.21.5 diff --git a/magiclib-better-dev/versions/1.21.5-neoforge/gradle.properties b/magiclib-better-dev/versions/1.21.5-neoforge/gradle.properties index 575dca5c..c75891ac 100644 --- a/magiclib-better-dev/versions/1.21.5-neoforge/gradle.properties +++ b/magiclib-better-dev/versions/1.21.5-neoforge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=[1.21.5,1.21.6) -dependencies.minecraft_version=1.21.5 # Loom Properties loom.platform=neoforge diff --git a/magiclib-better-dev/versions/1.21.8-fabric/gradle.properties b/magiclib-better-dev/versions/1.21.8-fabric/gradle.properties index 6623ac55..8448492a 100644 --- a/magiclib-better-dev/versions/1.21.8-fabric/gradle.properties +++ b/magiclib-better-dev/versions/1.21.8-fabric/gradle.properties @@ -1,6 +1,8 @@ # Dependency Versions dependencies.minecraft_dependency=>=1.21.6- <1.21.9- -dependencies.minecraft_version=1.21.8 + +# Loom Properties +loom.ignoreDependencyLoomVersionValidation=true # Publish properties publish.game_version=1.21.6,1.21.7,1.21.8 diff --git a/magiclib-better-dev/versions/1.21.8-neoforge/gradle.properties b/magiclib-better-dev/versions/1.21.8-neoforge/gradle.properties index 8c3487c3..b75ea850 100644 --- a/magiclib-better-dev/versions/1.21.8-neoforge/gradle.properties +++ b/magiclib-better-dev/versions/1.21.8-neoforge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=[1.21.6,1.21.9) -dependencies.minecraft_version=1.21.8 # Loom Properties loom.platform=neoforge diff --git a/magiclib-better-dev/versions/26.1.2-fabric/gradle.properties b/magiclib-better-dev/versions/26.1.2-fabric/gradle.properties new file mode 100644 index 00000000..c8da0ed2 --- /dev/null +++ b/magiclib-better-dev/versions/26.1.2-fabric/gradle.properties @@ -0,0 +1,9 @@ +# Dependency Versions +dependencies.minecraft_dependency=~26.1- + +# Loom Properties +loom.ignoreDependencyLoomVersionValidation=true + +# Publish properties +publish.game_version=26.1,26.1.1,26.1.2 +publish.dependencies_list= diff --git a/magiclib-better-dev/versions/26.1.2-fabric/src/main/resources/magiclib-better-dev.accesswidener b/magiclib-better-dev/versions/26.1.2-fabric/src/main/resources/magiclib-better-dev.accesswidener new file mode 100644 index 00000000..ae163778 --- /dev/null +++ b/magiclib-better-dev/versions/26.1.2-fabric/src/main/resources/magiclib-better-dev.accesswidener @@ -0,0 +1 @@ +accessWidener v2 official diff --git a/magiclib-better-dev/versions/26.1.2-neoforge/gradle.properties b/magiclib-better-dev/versions/26.1.2-neoforge/gradle.properties new file mode 100644 index 00000000..4c21c955 --- /dev/null +++ b/magiclib-better-dev/versions/26.1.2-neoforge/gradle.properties @@ -0,0 +1,9 @@ +# Dependency Versions +dependencies.minecraft_dependency=[26.1,26.2) + +# Loom Properties +loom.platform=neoforge + +# Publish properties +publish.game_version=26.1,26.1.1,26.1.2 +publish.dependencies_list= diff --git a/magiclib-better-dev/versions/26.1.2-neoforge/src/main/resources/magiclib-better-dev.accesswidener b/magiclib-better-dev/versions/26.1.2-neoforge/src/main/resources/magiclib-better-dev.accesswidener new file mode 100644 index 00000000..ae163778 --- /dev/null +++ b/magiclib-better-dev/versions/26.1.2-neoforge/src/main/resources/magiclib-better-dev.accesswidener @@ -0,0 +1 @@ +accessWidener v2 official diff --git a/magiclib-legacy-compat/versions/mapping-1.15.2-1.14.4.txt b/magiclib-better-dev/versions/mapping-fabric-1.21.11-26.1.2.txt similarity index 100% rename from magiclib-legacy-compat/versions/mapping-1.15.2-1.14.4.txt rename to magiclib-better-dev/versions/mapping-fabric-1.21.11-26.1.2.txt diff --git a/magiclib-legacy-compat/build.gradle b/magiclib-legacy-compat/build.gradle index 0840eeff..00e1eed0 100644 --- a/magiclib-legacy-compat/build.gradle +++ b/magiclib-legacy-compat/build.gradle @@ -1,53 +1,12 @@ -import com.replaymod.gradle.preprocess.Node -import com.replaymod.gradle.preprocess.RootPreprocessExtension - plugins { - alias(libs.plugins.architectury.loom).apply(false) + alias(libs.plugins.essential.loom.remap).apply(false) + alias(libs.plugins.essential.loom.no.remap).apply(false) alias(libs.plugins.preprocessor).apply(false) -} - -extensions.create("preprocess", RootPreprocessExtension.class) -preprocess { - strictExtraMappings.set(false) - - // Fabric - Node mc_11404_fabric = createNode("legacy-1.14.4-fabric", 1_14_04, "mojang") - Node mc_11502_fabric = createNode("legacy-1.15.2-fabric", 1_15_02, "mojang") - Node mc_11605_fabric = createNode("legacy-1.16.5-fabric", 1_16_05, "mojang") - Node mc_11701_fabric = createNode("legacy-1.17.1-fabric", 1_17_01, "mojang") - Node mc_11802_fabric = createNode("legacy-1.18.2-fabric", 1_18_02, "mojang") - Node mc_11902_fabric = createNode("legacy-1.19.2-fabric", 1_19_02, "mojang") - Node mc_11903_fabric = createNode("legacy-1.19.3-fabric", 1_19_03, "mojang") - Node mc_11904_fabric = createNode("legacy-1.19.4-fabric", 1_19_04, "mojang") - Node mc_12001_fabric = createNode("legacy-1.20.1-fabric", 1_20_01, "mojang") - Node mc_12002_fabric = createNode("legacy-1.20.2-fabric", 1_20_02, "mojang") - Node mc_12004_fabric = createNode("legacy-1.20.4-fabric", 1_20_04, "mojang") - Node mc_12006_fabric = createNode("legacy-1.20.6-fabric", 1_20_06, "mojang") - Node mc_12101_fabric = createNode("legacy-1.21.1-fabric", 1_21_01, "mojang") - Node mc_12103_fabric = createNode("legacy-1.21.3-fabric", 1_21_03, "mojang") - Node mc_12104_fabric = createNode("legacy-1.21.4-fabric", 1_21_04, "mojang") - Node mc_12105_fabric = createNode("legacy-1.21.5-fabric", 1_21_05, "mojang") - Node mc_12108_fabric = createNode("legacy-1.21.8-fabric", 1_21_08, "mojang") - Node mc_12110_fabric = createNode("legacy-1.21.10-fabric", 1_21_10, "mojang") - Node mc_12111_fabric = createNode("legacy-1.21.11-fabric", 1_21_11, "mojang") + id("top.hendrixshen.magiclib.build-logic.magic-loom-root") +} - mc_11502_fabric.link(mc_11404_fabric, file("versions/mapping-1.15.2-1.14.4.txt")) - mc_11605_fabric.link(mc_11502_fabric, file("versions/mapping-1.16.5-1.15.2.txt")) - mc_11605_fabric.link(mc_11701_fabric, file("versions/mapping-1.16.5-1.17.1.txt")) - mc_11701_fabric.link(mc_11802_fabric, file("versions/mapping-1.17.1-1.18.2.txt")) - mc_11802_fabric.link(mc_11902_fabric, file("versions/mapping-1.18.2-1.19.2.txt")) - mc_11902_fabric.link(mc_11903_fabric, file("versions/mapping-1.19.2-1.19.3.txt")) - mc_11903_fabric.link(mc_11904_fabric, file("versions/mapping-1.19.3-1.19.4.txt")) - mc_11904_fabric.link(mc_12001_fabric, file("versions/mapping-1.19.4-1.20.1.txt")) - mc_12001_fabric.link(mc_12002_fabric, file("versions/mapping-1.20.1-1.20.2.txt")) - mc_12002_fabric.link(mc_12004_fabric, file("versions/mapping-1.20.2-1.20.4.txt")) - mc_12004_fabric.link(mc_12006_fabric, file("versions/mapping-1.20.4-1.20.6.txt")) - mc_12006_fabric.link(mc_12101_fabric, file("versions/mapping-1.20.6-1.21.1.txt")) - mc_12101_fabric.link(mc_12103_fabric, file("versions/mapping-1.21.1-1.21.3.txt")) - mc_12103_fabric.link(mc_12104_fabric, file("versions/mapping-1.21.3-1.21.4.txt")) - mc_12104_fabric.link(mc_12105_fabric, file("versions/mapping-1.21.4-1.21.5.txt")) - mc_12105_fabric.link(mc_12108_fabric, file("versions/mapping-1.21.5-1.21.8.txt")) - mc_12108_fabric.link(mc_12110_fabric, file("versions/mapping-1.21.8-1.21.10.txt")) - mc_12110_fabric.link(mc_12111_fabric, file("versions/mapping-1.21.10-1.21.11.txt")) +magic { + magiclibMode = true + multiPlatformSupport = true } diff --git a/magiclib-legacy-compat/src/main/java/top/hendrixshen/magiclib/mixin/compat/minecraft/world/item/MixinItemStack.java b/magiclib-legacy-compat/src/main/java/top/hendrixshen/magiclib/mixin/compat/minecraft/world/item/MixinItemStack.java index 6cc663fd..3ee0ac57 100644 --- a/magiclib-legacy-compat/src/main/java/top/hendrixshen/magiclib/mixin/compat/minecraft/world/item/MixinItemStack.java +++ b/magiclib-legacy-compat/src/main/java/top/hendrixshen/magiclib/mixin/compat/minecraft/world/item/MixinItemStack.java @@ -8,20 +8,11 @@ @Mixin(ItemStack.class) public abstract class MixinItemStack implements ItemStackCompatApi { - //#if MC > 11605 - //$$ @Shadow - //$$ public abstract boolean is(Item item); - //#else @Shadow public abstract Item getItem(); - //#endif @Override public boolean isCompat(Item item) { - //#if MC > 11605 - //$$ return this.is(item); - //#else return this.getItem() == item; - //#endif } } diff --git a/magiclib-legacy-compat/versions/1.14.4-fabric/gradle.properties b/magiclib-legacy-compat/versions/1.14.4-fabric/gradle.properties index f36ccdc4..64f6a541 100644 --- a/magiclib-legacy-compat/versions/1.14.4-fabric/gradle.properties +++ b/magiclib-legacy-compat/versions/1.14.4-fabric/gradle.properties @@ -1,10 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.14.x -dependencies.minecraft_version=1.14.4 - -# Carpet - 1.3.7+v200127 -# fabric-carpet-1.14.4-1.3.7+v200127.jar -dependencies.api.carpet_version=1.14.4-1.3.7+v200127 # Publish properties publish.game_version=1.14.4 diff --git a/magiclib-legacy-compat/versions/1.15.2-fabric/gradle.properties b/magiclib-legacy-compat/versions/1.15.2-fabric/gradle.properties index a8516aa2..96f054cc 100644 --- a/magiclib-legacy-compat/versions/1.15.2-fabric/gradle.properties +++ b/magiclib-legacy-compat/versions/1.15.2-fabric/gradle.properties @@ -1,10 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.15.x -dependencies.minecraft_version=1.15.2 - -# Carpet - 1.4.8+v200811 -# fabric-carpet-1.15.2-1.4.8+v200811.jar -dependencies.api.carpet_version=1.15.2-1.4.8+v200811 # Publish properties publish.game_version=1.15.2 diff --git a/magiclib-legacy-compat/versions/1.16.5-fabric/build.gradle b/magiclib-legacy-compat/versions/1.16.5-fabric/build.gradle index c90cb1c5..673a1d63 100644 --- a/magiclib-legacy-compat/versions/1.16.5-fabric/build.gradle +++ b/magiclib-legacy-compat/versions/1.16.5-fabric/build.gradle @@ -1,39 +1,27 @@ +import net.fabricmc.loom.util.ModPlatform + plugins { id("java") id("java-library") id("maven-publish") id("signing") - alias(libs.plugins.architectury.loom) - alias(libs.plugins.replace.token) alias(libs.plugins.yamlang) - alias(libs.plugins.preprocessor) + alias(libs.plugins.replace.token) + id("top.hendrixshen.magiclib.build-logic.magic-loom") id("top.hendrixshen.magiclib.build-logic.process-resources-minecraft") } -String modPlatform = loom.platform.get().toString().toLowerCase() -boolean fabricLike = modPlatform == "fabric" || modPlatform == "quilt" -boolean forgeLike = modPlatform == "forge" || modPlatform == "neoforge" +final int mcVersion = magic.projectDetail.get().getMinecraftVersionNumber() +final ModPlatform modPlatform = magic.projectDetail.get().getPlatform() +final boolean fabricLike = !modPlatform.isForgeLike() +final boolean forgeLike = modPlatform.isForgeLike() String projectName = project.name.replace("legacy-", "") Project betterDev = evaluationDependsOn(":magiclib-better-dev:better-dev-${projectName}") Project malilib = evaluationDependsOn(":magiclib-malilib-extra:malilib-${projectName}") Project mcAPI = evaluationDependsOn(":magiclib-minecraft-api:mc-api-${projectName}") -int mcVersion = 0 - -preprocess { - mcVersion = vars.get().get("MC") - vars.put("MC", mcVersion) - vars.put("FABRIC", modPlatform == "fabric" ? 1 : 0) - vars.put("FORGE", modPlatform == "forge" ? 1 : 0) - vars.put("NEO_FORGE", modPlatform == "neoforge" ? 1 : 0) - vars.put("FABRIC_LIKE", fabricLike ? 1 : 0) - vars.put("FORGE_LIKE", forgeLike ? 1 : 0) -} - -loom { - silentMojangMappingsLicense() -} +final VersionCatalogsExtension catalogsExtension = project.getExtensions().getByType(VersionCatalogsExtension.class) repositories { mavenLocal() @@ -64,81 +52,48 @@ repositories { mavenCentral() } -// Module, Property prefix, Resolve condition, Transitive dependencies. -def apiDependencies = [ - ["carpet:fabric-carpet", "carpet", true, false], -] - -// Module, Property prefix, Resolve condition, Transitive dependencies. -def runtimeDependencies = [ - ["", "", false, false], +// Configuration name, Module, Resolve condition, Use version mapping, Configuration closure. +def deps = [ + ["autoApi", "carpet", true, true, { transitive = false }], ] dependencies { - minecraft("com.mojang:minecraft:${project.property("dependencies.minecraft_version")}") - mappings(loom.officialMojangMappings()) - // Lombok compileOnly(libs.lombok) annotationProcessor(libs.lombok) // MagicLib Core - api(annotationProcessor(project(path: ":magiclib-core:${modPlatform}", configuration: "shadow"))) + api(annotationProcessor(project(path: ":magiclib-core:${modPlatform.id()}", configuration: "shadow"))) - api(project(path: betterDev.path, configuration: "namedElements")) - api(project(path: malilib.path, configuration: "namedElements")) - api(project(path: mcAPI.path, configuration: "namedElements")) + // MC-API + api(project(path: malilib.path, configuration: magic.projectDetail.get().isUnobfuscatedVersion() ? null : "namedElements")) + // MaLiLib-Extra + api(project(path: mcAPI.path, configuration: magic.projectDetail.get().isUnobfuscatedVersion() ? null : "namedElements")) - if (forgeLike) { + // Dont publish better dev dependencies. + compileOnly(project(path: betterDev.path, configuration: magic.projectDetail.get().isUnobfuscatedVersion() ? null : "namedElements")) + localRuntime(project(path: betterDev.path, configuration: magic.projectDetail.get().isUnobfuscatedVersion() ? null : "namedElements")) + + if (forgeLike && !magic.projectDetail.get().isUnobfuscatedVersion()) { compileOnly(project(path: betterDev.path, configuration: "modCompileClasspathMainMapped")) localRuntime(project(path: betterDev.path, configuration: "modRuntimeClasspathMainMapped")) } - switch (modPlatform) { - case "fabric": - modApi(libs.fabric.loader) - break - case "forge": - forge(project.getExtensions().getByType(VersionCatalogsExtension.class).named("forges").findLibrary("forge-mc${mcVersion}").get()) - break - case "neoforge": - neoForge(project.getExtensions().getByType(VersionCatalogsExtension.class).named("forges").findLibrary("neoforge-mc${mcVersion}").get()) - break - } - - // API - apiDependencies.forEach { item -> - String dependencyNotation = item[0] - String dependencyVersion = project.findProperty("dependencies.api.${item[1]}_version") - boolean shouldResolve = item[2] && dependencyVersion != "0" - boolean shouldTransitive = item[3] + deps.forEach { item -> + String configurationName = item[0] + String dependencyName = item[1] + boolean shouldResolve = item[2] - if (shouldResolve) { - if (!dependencyVersion) { - throw new RuntimeException("Could not get unknown property 'dependencies.api.${item[1]}_version' for dependency ${item[0]} in project ${project.name}") - } - - modApi("${dependencyNotation}:${dependencyVersion}") { - transitive = shouldTransitive - } + if (!shouldResolve) { + return } - } - // Runtime Library - Make development environment comfortable. - runtimeDependencies.forEach { item -> - String dependencyNotation = item[0] - String dependencyVersion = project.findProperty("dependencies.runtime.${item[1]}_version") - boolean shouldResolve = item[2] && dependencyVersion != "0" - boolean shouldTransitive = item[3] + org.gradle.api.provider.Provider dep = catalogsExtension.named("mods").findLibrary(item[3] ? "${dependencyName}-mc${mcVersion}" : dependencyName).orElseThrow { throw new GradleException("No mod library found for ${dependencyName + (item[3] ? "-mc${mcVersion}" : "")}") } + shouldResolve &= dep.get().getVersion() != "0" + Closure closure = (Closure) item[4] if (shouldResolve) { - if (!dependencyVersion) { - throw new RuntimeException("Could not get unknown property 'dependencies.runtime.${item[1]}_version' for dependency ${item[0]} in project ${project.name}") - } - - modRuntimeOnly("${dependencyNotation}:${dependencyVersion}") { - transitive = shouldTransitive - } + add(configurationName, dep, closure) } } } @@ -151,24 +106,6 @@ loom { enableDependencyInterfaceInjection.set(false) } - if (fabricLike) { - mixin { - useLegacyMixinAp.set(true) - } - } - - if (modPlatform == "forge") { - forge { - convertAccessWideners.set(true) - mixinConfig("${project.parent.property("mod.id")}.mixins.json") - } - } - - runConfigs.configureEach { - // Dump modified classes automatically. - property("mixin.debug.export", "true") - } - runConfigs.named("client") { programArgs([ "--width", @@ -178,17 +115,6 @@ loom { "--username", project.getOrDefault("ow.game.username", "dev") ]) - vmArgs("-Dmagiclib.debug=true") - vmArgs("-Dmagiclib.dev.qol=true") - vmArgs("-Dmagiclib.dev.qol.dfu.destroy=true") - runDir("run/client") - } - - runConfigs.named("server") { - vmArgs("-Dmagiclib.debug=true") - vmArgs("-Dmagiclib.dev.qol=true") - vmArgs("-Dmagiclib.dev.qol.dfu.destroy=true") - runDir("run/server") } if (fabricLike) { @@ -211,49 +137,32 @@ loom { } base { - setArchivesName("${project.parent.property("mod.archives_base_name")}-mc${project.property("dependencies.minecraft_version")}-${modPlatform}") + setArchivesName("${project.parent.property("mod.archives_base_name")}-mc${magic.projectDetail.get().getMinecraftVersionName()}-${modPlatform.id()}") setGroup("${project.property("mod.maven_group")}") setVersion(project.getModVersion(project.parent)) } -java { - if (mcVersion > 11204) { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 - } else if (mcVersion > 11701) { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } else if (mcVersion > 11605) { - sourceCompatibility = JavaVersion.VERSION_16 - targetCompatibility = JavaVersion.VERSION_16 - } else { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 - } - - withSourcesJar() - withJavadocJar() -} - -remapJar { - if (forgeLike) { - if (modPlatform == "neoforge") { - atAccessWideners.add("${project.parent.property("mod.id")}.accesswidener") +if (!magic.projectDetail.get().isUnobfuscatedVersion()) { + remapJar { + if (forgeLike) { + if (modPlatform == ModPlatform.NEOFORGE) { + atAccessWideners.add("${project.parent.property("mod.id")}.accesswidener") + } } } } replaceToken { targetSourceSets.set([sourceSets.main]) - replace("@MINECRAFT_VERSION@" , project.property("dependencies.minecraft_version")) - replace("@MINECRAFT_VERSION_IDENTIFY@", project.property("dependencies.minecraft_version").toString().replace(".", "_")) + replace("@MINECRAFT_VERSION@" , magic.projectDetail.get().getMinecraftVersionName()) + replace("@MINECRAFT_VERSION_IDENTIFY@", magic.projectDetail.get().getMinecraftVersionName().toString().replace(".", "_")) replace("@MOD_VERSION@" , project.getVersionWithCommitHash(this.project.parent) as String) replaceIn("top/hendrixshen/magiclib/MagicLibReference") } processResources { - inputs.property("minecraft_version" , project.property("dependencies.minecraft_version")) - inputs.property("minecraft_version_id", project.property("dependencies.minecraft_version").toString().replace(".", "_")) + inputs.property("minecraft_version" , magic.projectDetail.get().getMinecraftVersionName()) + inputs.property("minecraft_version_id", magic.projectDetail.get().getMinecraftVersionName().toString().replace(".", "_")) } yamlang { @@ -322,74 +231,6 @@ tasks.withType(Javadoc).configureEach { Javadoc task -> (task.options as CoreJavadocOptions).addStringOption("Xdoclint:none", "-quiet") } -tasks.withType(JavaCompile).configureEach { JavaCompile task -> - task.options.encoding = "UTF-8" - - if (mcVersion > 12005) { - task.options.release.set(21) - } else if (mcVersion > 11701) { - task.options.release.set(17) - } else if (mcVersion > 11605) { - task.options.release.set(16) - } else { - task.options.release.set(8) - options.compilerArgs << '-Xlint:-options' - } -} - -// Setup client default settings. -tasks.named("runClient") { - defaultCharacterEncoding = "UTF-8" - - doFirst { - file("${project.projectDir}/run/client/config").mkdirs() - file("${project.projectDir}/run/client/options.txt").with { File f -> - { - if (!f.exists()) { - f.parentFile.mkdirs() - f.withWriter { BufferedWriter writer -> - writer.writeLine("autoJump:false") - writer.writeLine("enableVsync:false") - writer.writeLine("forceUnicodeFont:true") - writer.writeLine("fov:1.0") - - if (mcVersion < 11900) { - writer.writeLine("gamma:16.0") - } - - writer.writeLine("guiScale:3") - writer.writeLine("lang:${Locale.getDefault().toString().toLowerCase()}") - writer.writeLine("maxFps:260") - writer.writeLine("renderDistance:10") - writer.writeLine("soundCategory_master:0.0") - } - } - } - } - } -} - -// Setup server default settings. -tasks.named("runServer") { - defaultCharacterEncoding = "UTF-8" - - doFirst { - // Agree eula before server init. - file("${project.projectDir}/run/server/eula.txt").with { File f -> - { - if (!f.exists()) { - f.parentFile.mkdirs() - f.withWriter { BufferedWriter writer -> - writer.writeLine("#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).") - writer.writeLine("#${new Date()}") - writer.writeLine("eula=true") - } - } - } - } - } -} - tasks.register("cleanRuns", Delete.class) { Delete cleanTask -> dependsOn("cleanRunClient", "cleanRunServer") cleanTask.setGroup("${project.property("mod.id")}") diff --git a/magiclib-legacy-compat/versions/1.16.5-fabric/gradle.properties b/magiclib-legacy-compat/versions/1.16.5-fabric/gradle.properties index 6a13c2f3..33f4530e 100644 --- a/magiclib-legacy-compat/versions/1.16.5-fabric/gradle.properties +++ b/magiclib-legacy-compat/versions/1.16.5-fabric/gradle.properties @@ -1,10 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.16.x -dependencies.minecraft_version=1.16.5 - -# Carpet - 1.4.44+v210714 -# fabric-carpet-1.16.5-1.4.44+v210714.jar -dependencies.api.carpet_version=1.16.5-1.4.44+v210714 # Publish properties publish.game_version=1.16.5 diff --git a/magiclib-legacy-compat/versions/1.17.1-fabric/gradle.properties b/magiclib-legacy-compat/versions/1.17.1-fabric/gradle.properties index e8efae17..8c4e154f 100644 --- a/magiclib-legacy-compat/versions/1.17.1-fabric/gradle.properties +++ b/magiclib-legacy-compat/versions/1.17.1-fabric/gradle.properties @@ -1,10 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.17.x -dependencies.minecraft_version=1.17.1 - -# Carpet - 1.4.57+v220119 -# fabric-carpet-1.17.1-1.4.57+v220119.jar -dependencies.api.carpet_version=1.17.1-1.4.57+v220119 # Publish properties publish.game_version=1.17.1 diff --git a/magiclib-legacy-compat/versions/1.18.2-fabric/gradle.properties b/magiclib-legacy-compat/versions/1.18.2-fabric/gradle.properties index d899f992..4a386852 100644 --- a/magiclib-legacy-compat/versions/1.18.2-fabric/gradle.properties +++ b/magiclib-legacy-compat/versions/1.18.2-fabric/gradle.properties @@ -1,10 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.18.x -dependencies.minecraft_version=1.18.2 - -# Carpet - 1.4.69+v220331 -# fabric-carpet-1.18.2-1.4.69+v220331.jar -dependencies.api.carpet_version=1.18.2-1.4.69+v220331 # Publish properties publish.game_version=1.18.2 diff --git a/magiclib-legacy-compat/versions/1.19.2-fabric/gradle.properties b/magiclib-legacy-compat/versions/1.19.2-fabric/gradle.properties index 73d36270..ee9e7d07 100644 --- a/magiclib-legacy-compat/versions/1.19.2-fabric/gradle.properties +++ b/magiclib-legacy-compat/versions/1.19.2-fabric/gradle.properties @@ -1,10 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.19.2 -dependencies.minecraft_version=1.19.2 - -# Carpet - 1.4.84+v221018 -# fabric-carpet-1.19.2-1.4.84+v221018.jar -dependencies.api.carpet_version=1.19.2-1.4.84+v221018 # Publish properties publish.game_version=1.19.2 diff --git a/magiclib-legacy-compat/versions/1.19.3-fabric/gradle.properties b/magiclib-legacy-compat/versions/1.19.3-fabric/gradle.properties index cf17490d..b6c8c739 100644 --- a/magiclib-legacy-compat/versions/1.19.3-fabric/gradle.properties +++ b/magiclib-legacy-compat/versions/1.19.3-fabric/gradle.properties @@ -1,10 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.19.3 -dependencies.minecraft_version=1.19.3 - -# Carpet - 1.4.96+v230201 -# fabric-carpet-1.19.3-1.4.96+v230201.jar -dependencies.api.carpet_version=1.19.3-1.4.96+v230201 # Publish properties publish.game_version=1.19.3 diff --git a/magiclib-legacy-compat/versions/1.19.4-fabric/gradle.properties b/magiclib-legacy-compat/versions/1.19.4-fabric/gradle.properties index dc24a69b..20702ff4 100644 --- a/magiclib-legacy-compat/versions/1.19.4-fabric/gradle.properties +++ b/magiclib-legacy-compat/versions/1.19.4-fabric/gradle.properties @@ -1,10 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.19.4 -dependencies.minecraft_version=1.19.4 - -# Carpet - 1.4.101+v230319 -# fabric-carpet-1.19.4-1.4.101+v230319.jar -dependencies.api.carpet_version=1.19.4-1.4.101+v230319 # Publish properties publish.game_version=1.19.4 diff --git a/magiclib-legacy-compat/versions/1.20.1-fabric/gradle.properties b/magiclib-legacy-compat/versions/1.20.1-fabric/gradle.properties index 31fe5627..50a94537 100644 --- a/magiclib-legacy-compat/versions/1.20.1-fabric/gradle.properties +++ b/magiclib-legacy-compat/versions/1.20.1-fabric/gradle.properties @@ -1,10 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.20.1 -dependencies.minecraft_version=1.20.1 - -# Carpet - 1.4.112+v230608 -# fabric-carpet-1.20-1.4.112+v230608.jar -dependencies.api.carpet_version=1.20-1.4.112+v230608 # Publish properties publish.game_version=1.20.1 diff --git a/magiclib-legacy-compat/versions/1.20.2-fabric/gradle.properties b/magiclib-legacy-compat/versions/1.20.2-fabric/gradle.properties index 7c5885c4..261b046c 100644 --- a/magiclib-legacy-compat/versions/1.20.2-fabric/gradle.properties +++ b/magiclib-legacy-compat/versions/1.20.2-fabric/gradle.properties @@ -1,10 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.20.2 -dependencies.minecraft_version=1.20.2 - -# Carpet - 1.4.119+v230928 -# fabric-carpet-1.20.2-1.4.119+v230928.jar -dependencies.api.carpet_version=1.20.2-1.4.119+v230928 # Publish properties publish.game_version=1.20.2 diff --git a/magiclib-legacy-compat/versions/1.20.4-fabric/gradle.properties b/magiclib-legacy-compat/versions/1.20.4-fabric/gradle.properties index 4e4f2dc9..7a6a3c54 100644 --- a/magiclib-legacy-compat/versions/1.20.4-fabric/gradle.properties +++ b/magiclib-legacy-compat/versions/1.20.4-fabric/gradle.properties @@ -1,10 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=>=1.20.3- <1.20.5- -dependencies.minecraft_version=1.20.4 - -# Carpet - 1.4.128+v231205 -# fabric-carpet-1.20.3-1.4.128+v231205.jar -dependencies.api.carpet_version=1.20.3-1.4.128+v231205 # Publish properties publish.game_version=1.20.3,1.20.4 diff --git a/magiclib-legacy-compat/versions/1.20.6-fabric/gradle.properties b/magiclib-legacy-compat/versions/1.20.6-fabric/gradle.properties index 3106634e..5ded4a2f 100644 --- a/magiclib-legacy-compat/versions/1.20.6-fabric/gradle.properties +++ b/magiclib-legacy-compat/versions/1.20.6-fabric/gradle.properties @@ -1,10 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=>=1.20.5- <1.20.7- -dependencies.minecraft_version=1.20.6 - -# Carpet - 1.4.141+v240429 -# fabric-carpet-1.20.6-1.4.141+v240429.jar -dependencies.api.carpet_version=1.20.6-1.4.141+v240429 # Publish properties publish.game_version=1.20.5,1.20.6 diff --git a/magiclib-legacy-compat/versions/1.21.1-fabric/gradle.properties b/magiclib-legacy-compat/versions/1.21.1-fabric/gradle.properties index 2ffa0eab..7389bb36 100644 --- a/magiclib-legacy-compat/versions/1.21.1-fabric/gradle.properties +++ b/magiclib-legacy-compat/versions/1.21.1-fabric/gradle.properties @@ -1,10 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=>=1.21- <1.21.2- -dependencies.minecraft_version=1.21.1 - -# Carpet - 1.4.141+v240429 -# fabric-carpet-1.21-1.4.147+v240613.jar -dependencies.api.carpet_version=1.21-1.4.147+v240613 # Loom Properties loom.ignoreDependencyLoomVersionValidation=true diff --git a/magiclib-legacy-compat/versions/1.21.10-fabric/gradle.properties b/magiclib-legacy-compat/versions/1.21.10-fabric/gradle.properties index 850acdea..d560bbff 100644 --- a/magiclib-legacy-compat/versions/1.21.10-fabric/gradle.properties +++ b/magiclib-legacy-compat/versions/1.21.10-fabric/gradle.properties @@ -1,10 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=>=1.21.9- <1.21.11- -dependencies.minecraft_version=1.21.10 - -# Carpet - 1.4.188+v251016 -# fabric-carpet-1.21.10-1.4.188+v251016.jar -dependencies.api.carpet_version=1.21.10-1.4.188+v251016 # Loom Properties loom.ignoreDependencyLoomVersionValidation=true diff --git a/magiclib-legacy-compat/versions/1.21.11-fabric/gradle.properties b/magiclib-legacy-compat/versions/1.21.11-fabric/gradle.properties index 3b279fac..25d8d6e7 100644 --- a/magiclib-legacy-compat/versions/1.21.11-fabric/gradle.properties +++ b/magiclib-legacy-compat/versions/1.21.11-fabric/gradle.properties @@ -1,10 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=>=1.21.11- <1.21.12- -dependencies.minecraft_version=1.21.11 - -# Carpet - 1.4.193+v251211 -# fabric-carpet-1.21.11-1.4.193+v251211.jar -dependencies.api.carpet_version=1.21.11-1.4.193+v251211 # Loom Properties loom.ignoreDependencyLoomVersionValidation=true diff --git a/magiclib-legacy-compat/versions/1.21.3-fabric/gradle.properties b/magiclib-legacy-compat/versions/1.21.3-fabric/gradle.properties index c8441a0b..02825663 100644 --- a/magiclib-legacy-compat/versions/1.21.3-fabric/gradle.properties +++ b/magiclib-legacy-compat/versions/1.21.3-fabric/gradle.properties @@ -1,10 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=>=1.21.2- <1.21.4- -dependencies.minecraft_version=1.21.3 - -# Carpet - 1.4.158+v241022 -# fabric-carpet-1.21.2-1.4.158+v241022.jar -dependencies.api.carpet_version=1.21.2-1.4.158+v241022 # Loom Properties loom.ignoreDependencyLoomVersionValidation=true diff --git a/magiclib-legacy-compat/versions/1.21.4-fabric/gradle.properties b/magiclib-legacy-compat/versions/1.21.4-fabric/gradle.properties index 1eb97352..290c6f7f 100644 --- a/magiclib-legacy-compat/versions/1.21.4-fabric/gradle.properties +++ b/magiclib-legacy-compat/versions/1.21.4-fabric/gradle.properties @@ -1,10 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=>=1.21.4- <1.21.5- -dependencies.minecraft_version=1.21.4 - -# Carpet - 1.4.161+v241203 -# fabric-carpet-1.21.4-1.4.161+v241203.jar -dependencies.api.carpet_version=1.21.4-1.4.161+v241203 # Loom Properties loom.ignoreDependencyLoomVersionValidation=true diff --git a/magiclib-legacy-compat/versions/1.21.5-fabric/gradle.properties b/magiclib-legacy-compat/versions/1.21.5-fabric/gradle.properties index 04b3327a..a9be42a1 100644 --- a/magiclib-legacy-compat/versions/1.21.5-fabric/gradle.properties +++ b/magiclib-legacy-compat/versions/1.21.5-fabric/gradle.properties @@ -1,10 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=>=1.21.5- <1.21.6- -dependencies.minecraft_version=1.21.5 - -# Carpet - 1.4.169+v250325 -# fabric-carpet-1.21.5-1.4.169+v250325.jar -dependencies.api.carpet_version=1.21.5-1.4.169+v250325 # Loom Properties loom.ignoreDependencyLoomVersionValidation=true diff --git a/magiclib-legacy-compat/versions/1.21.8-fabric/gradle.properties b/magiclib-legacy-compat/versions/1.21.8-fabric/gradle.properties index a431dbc5..cedac826 100644 --- a/magiclib-legacy-compat/versions/1.21.8-fabric/gradle.properties +++ b/magiclib-legacy-compat/versions/1.21.8-fabric/gradle.properties @@ -1,10 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=>=1.21.6- <1.21.9- -dependencies.minecraft_version=1.21.8 - -# Carpet - 1.4.177+v250630 -# fabric-carpet-1.21.7-1.4.177+v250630.jar -dependencies.api.carpet_version=1.21.7-1.4.177+v250630 # Loom Properties loom.ignoreDependencyLoomVersionValidation=true diff --git a/magiclib-legacy-compat/versions/26.1.2-fabric/gradle.properties b/magiclib-legacy-compat/versions/26.1.2-fabric/gradle.properties new file mode 100644 index 00000000..d87d10c1 --- /dev/null +++ b/magiclib-legacy-compat/versions/26.1.2-fabric/gradle.properties @@ -0,0 +1,11 @@ +# Dependency Versions +dependencies.minecraft_dependency=~26.1- + +# Loom Properties +loom.ignoreDependencyLoomVersionValidation=true + +# Publish properties +publish.game_version=26.1,26.1.1,26.1.2 +publish.dependencies_list=\ + carpet(optional){modrinth:TQTTVgYE}{curseforge:349239}#(ignore:github),\ + malilib(optional){modrinth:GcWjdA9I}{curseforge:303119}#(ignore:github) diff --git a/magiclib-legacy-compat/versions/26.1.2-fabric/src/main/resources/magiclib-legacy-compat.accesswidener b/magiclib-legacy-compat/versions/26.1.2-fabric/src/main/resources/magiclib-legacy-compat.accesswidener new file mode 100644 index 00000000..ae163778 --- /dev/null +++ b/magiclib-legacy-compat/versions/26.1.2-fabric/src/main/resources/magiclib-legacy-compat.accesswidener @@ -0,0 +1 @@ +accessWidener v2 official diff --git a/magiclib-legacy-compat/versions/mapping-1.16.5-1.17.1.txt b/magiclib-legacy-compat/versions/mapping-fabric-1.15.2-1.14.4.txt similarity index 100% rename from magiclib-legacy-compat/versions/mapping-1.16.5-1.17.1.txt rename to magiclib-legacy-compat/versions/mapping-fabric-1.15.2-1.14.4.txt diff --git a/magiclib-legacy-compat/versions/mapping-1.16.5-1.15.2.txt b/magiclib-legacy-compat/versions/mapping-fabric-1.16.5-1.15.2.txt similarity index 100% rename from magiclib-legacy-compat/versions/mapping-1.16.5-1.15.2.txt rename to magiclib-legacy-compat/versions/mapping-fabric-1.16.5-1.15.2.txt diff --git a/magiclib-legacy-compat/versions/mapping-1.17.1-1.18.2.txt b/magiclib-legacy-compat/versions/mapping-fabric-1.16.5-1.17.1.txt similarity index 100% rename from magiclib-legacy-compat/versions/mapping-1.17.1-1.18.2.txt rename to magiclib-legacy-compat/versions/mapping-fabric-1.16.5-1.17.1.txt diff --git a/magiclib-legacy-compat/versions/mapping-1.19.3-1.19.4.txt b/magiclib-legacy-compat/versions/mapping-fabric-1.17.1-1.18.2.txt similarity index 100% rename from magiclib-legacy-compat/versions/mapping-1.19.3-1.19.4.txt rename to magiclib-legacy-compat/versions/mapping-fabric-1.17.1-1.18.2.txt diff --git a/magiclib-legacy-compat/versions/mapping-1.18.2-1.19.2.txt b/magiclib-legacy-compat/versions/mapping-fabric-1.18.2-1.19.2.txt similarity index 100% rename from magiclib-legacy-compat/versions/mapping-1.18.2-1.19.2.txt rename to magiclib-legacy-compat/versions/mapping-fabric-1.18.2-1.19.2.txt diff --git a/magiclib-legacy-compat/versions/mapping-1.19.2-1.19.3.txt b/magiclib-legacy-compat/versions/mapping-fabric-1.19.2-1.19.3.txt similarity index 100% rename from magiclib-legacy-compat/versions/mapping-1.19.2-1.19.3.txt rename to magiclib-legacy-compat/versions/mapping-fabric-1.19.2-1.19.3.txt diff --git a/magiclib-legacy-compat/versions/mapping-1.19.4-1.20.1.txt b/magiclib-legacy-compat/versions/mapping-fabric-1.19.3-1.19.4.txt similarity index 100% rename from magiclib-legacy-compat/versions/mapping-1.19.4-1.20.1.txt rename to magiclib-legacy-compat/versions/mapping-fabric-1.19.3-1.19.4.txt diff --git a/magiclib-legacy-compat/versions/mapping-1.20.1-1.20.2.txt b/magiclib-legacy-compat/versions/mapping-fabric-1.19.4-1.20.1.txt similarity index 100% rename from magiclib-legacy-compat/versions/mapping-1.20.1-1.20.2.txt rename to magiclib-legacy-compat/versions/mapping-fabric-1.19.4-1.20.1.txt diff --git a/magiclib-legacy-compat/versions/mapping-1.20.2-1.20.4.txt b/magiclib-legacy-compat/versions/mapping-fabric-1.20.1-1.20.2.txt similarity index 100% rename from magiclib-legacy-compat/versions/mapping-1.20.2-1.20.4.txt rename to magiclib-legacy-compat/versions/mapping-fabric-1.20.1-1.20.2.txt diff --git a/magiclib-legacy-compat/versions/mapping-1.20.4-1.20.6.txt b/magiclib-legacy-compat/versions/mapping-fabric-1.20.2-1.20.4.txt similarity index 100% rename from magiclib-legacy-compat/versions/mapping-1.20.4-1.20.6.txt rename to magiclib-legacy-compat/versions/mapping-fabric-1.20.2-1.20.4.txt diff --git a/magiclib-legacy-compat/versions/mapping-1.20.6-1.21.1.txt b/magiclib-legacy-compat/versions/mapping-fabric-1.20.4-1.20.6.txt similarity index 100% rename from magiclib-legacy-compat/versions/mapping-1.20.6-1.21.1.txt rename to magiclib-legacy-compat/versions/mapping-fabric-1.20.4-1.20.6.txt diff --git a/magiclib-legacy-compat/versions/mapping-1.21.1-1.21.3.txt b/magiclib-legacy-compat/versions/mapping-fabric-1.20.6-1.21.1.txt similarity index 100% rename from magiclib-legacy-compat/versions/mapping-1.21.1-1.21.3.txt rename to magiclib-legacy-compat/versions/mapping-fabric-1.20.6-1.21.1.txt diff --git a/magiclib-legacy-compat/versions/mapping-1.21.10-1.21.11.txt b/magiclib-legacy-compat/versions/mapping-fabric-1.21.1-1.21.3.txt similarity index 100% rename from magiclib-legacy-compat/versions/mapping-1.21.10-1.21.11.txt rename to magiclib-legacy-compat/versions/mapping-fabric-1.21.1-1.21.3.txt diff --git a/magiclib-legacy-compat/versions/mapping-1.21.3-1.21.4.txt b/magiclib-legacy-compat/versions/mapping-fabric-1.21.10-1.21.11.txt similarity index 100% rename from magiclib-legacy-compat/versions/mapping-1.21.3-1.21.4.txt rename to magiclib-legacy-compat/versions/mapping-fabric-1.21.10-1.21.11.txt diff --git a/magiclib-legacy-compat/versions/mapping-fabric-1.21.11-26.1.2.txt b/magiclib-legacy-compat/versions/mapping-fabric-1.21.11-26.1.2.txt new file mode 100644 index 00000000..f11765ae --- /dev/null +++ b/magiclib-legacy-compat/versions/mapping-fabric-1.21.11-26.1.2.txt @@ -0,0 +1 @@ +fi.dy.masa.malilib.util.JsonUtils fi.dy.masa.malilib.util.data.json.JsonUtils diff --git a/magiclib-legacy-compat/versions/mapping-1.21.5-1.21.8.txt b/magiclib-legacy-compat/versions/mapping-fabric-1.21.3-1.21.4.txt similarity index 100% rename from magiclib-legacy-compat/versions/mapping-1.21.5-1.21.8.txt rename to magiclib-legacy-compat/versions/mapping-fabric-1.21.3-1.21.4.txt diff --git a/magiclib-legacy-compat/versions/mapping-1.21.4-1.21.5.txt b/magiclib-legacy-compat/versions/mapping-fabric-1.21.4-1.21.5.txt similarity index 100% rename from magiclib-legacy-compat/versions/mapping-1.21.4-1.21.5.txt rename to magiclib-legacy-compat/versions/mapping-fabric-1.21.4-1.21.5.txt diff --git a/magiclib-legacy-compat/versions/mapping-1.21.8-1.21.10.txt b/magiclib-legacy-compat/versions/mapping-fabric-1.21.5-1.21.8.txt similarity index 100% rename from magiclib-legacy-compat/versions/mapping-1.21.8-1.21.10.txt rename to magiclib-legacy-compat/versions/mapping-fabric-1.21.5-1.21.8.txt diff --git a/magiclib-minecraft-api/versions/mapping-1.21.11-fabric-neoforge.txt b/magiclib-legacy-compat/versions/mapping-fabric-1.21.8-1.21.10.txt similarity index 100% rename from magiclib-minecraft-api/versions/mapping-1.21.11-fabric-neoforge.txt rename to magiclib-legacy-compat/versions/mapping-fabric-1.21.8-1.21.10.txt diff --git a/magiclib-malilib-extra/build.gradle b/magiclib-malilib-extra/build.gradle index 0ed10c9b..00e1eed0 100644 --- a/magiclib-malilib-extra/build.gradle +++ b/magiclib-malilib-extra/build.gradle @@ -1,83 +1,12 @@ -import com.replaymod.gradle.preprocess.Node -import com.replaymod.gradle.preprocess.RootPreprocessExtension - plugins { - alias(libs.plugins.architectury.loom).apply(false) + alias(libs.plugins.essential.loom.remap).apply(false) + alias(libs.plugins.essential.loom.no.remap).apply(false) alias(libs.plugins.preprocessor).apply(false) -} - -extensions.create("preprocess", RootPreprocessExtension.class) - -preprocess { - strictExtraMappings.set(false) - - // Fabric - Node mc_11404_fabric = createNode("malilib-1.14.4-fabric", 1_14_04, "mojang") - Node mc_11502_fabric = createNode("malilib-1.15.2-fabric", 1_15_02, "mojang") - Node mc_11605_fabric = createNode("malilib-1.16.5-fabric", 1_16_05, "mojang") - Node mc_11701_fabric = createNode("malilib-1.17.1-fabric", 1_17_01, "mojang") - Node mc_11802_fabric = createNode("malilib-1.18.2-fabric", 1_18_02, "mojang") - Node mc_11902_fabric = createNode("malilib-1.19.2-fabric", 1_19_02, "mojang") - Node mc_11903_fabric = createNode("malilib-1.19.3-fabric", 1_19_03, "mojang") - Node mc_11904_fabric = createNode("malilib-1.19.4-fabric", 1_19_04, "mojang") - Node mc_12001_fabric = createNode("malilib-1.20.1-fabric", 1_20_01, "mojang") - Node mc_12002_fabric = createNode("malilib-1.20.2-fabric", 1_20_02, "mojang") - Node mc_12004_fabric = createNode("malilib-1.20.4-fabric", 1_20_04, "mojang") - Node mc_12006_fabric = createNode("malilib-1.20.6-fabric", 1_20_06, "mojang") - Node mc_12101_fabric = createNode("malilib-1.21.1-fabric", 1_21_01, "mojang") - Node mc_12103_fabric = createNode("malilib-1.21.3-fabric", 1_21_03, "mojang") - Node mc_12104_fabric = createNode("malilib-1.21.4-fabric", 1_21_04, "mojang") - Node mc_12105_fabric = createNode("malilib-1.21.5-fabric", 1_21_05, "mojang") - Node mc_12108_fabric = createNode("malilib-1.21.8-fabric", 1_21_08, "mojang") - Node mc_12110_fabric = createNode("malilib-1.21.10-fabric", 1_21_10, "mojang") - Node mc_12111_fabric = createNode("malilib-1.21.11-fabric", 1_21_11, "mojang") - mc_11502_fabric.link(mc_11404_fabric, file("versions/mapping-fabric-1.15.2-1.14.4.txt")) - mc_11605_fabric.link(mc_11502_fabric, file("versions/mapping-fabric-1.16.5-1.15.2.txt")) - mc_11605_fabric.link(mc_11701_fabric, file("versions/mapping-fabric-1.16.5-1.17.1.txt")) - mc_11701_fabric.link(mc_11802_fabric, file("versions/mapping-fabric-1.17.1-1.18.2.txt")) - mc_11802_fabric.link(mc_11902_fabric, file("versions/mapping-fabric-1.18.2-1.19.2.txt")) - mc_11902_fabric.link(mc_11903_fabric, file("versions/mapping-fabric-1.19.2-1.19.3.txt")) - mc_11903_fabric.link(mc_11904_fabric, file("versions/mapping-fabric-1.19.3-1.19.4.txt")) - mc_11904_fabric.link(mc_12001_fabric, file("versions/mapping-fabric-1.19.4-1.20.1.txt")) - mc_12001_fabric.link(mc_12002_fabric, file("versions/mapping-fabric-1.20.1-1.20.2.txt")) - mc_12002_fabric.link(mc_12004_fabric, file("versions/mapping-fabric-1.20.2-1.20.4.txt")) - mc_12004_fabric.link(mc_12006_fabric, file("versions/mapping-fabric-1.20.4-1.20.6.txt")) - mc_12006_fabric.link(mc_12101_fabric, file("versions/mapping-fabric-1.20.6-1.21.1.txt")) - mc_12101_fabric.link(mc_12103_fabric, file("versions/mapping-fabric-1.21.1-1.21.3.txt")) - mc_12103_fabric.link(mc_12104_fabric, file("versions/mapping-fabric-1.21.3-1.21.4.txt")) - mc_12104_fabric.link(mc_12105_fabric, file("versions/mapping-fabric-1.21.4-1.21.5.txt")) - mc_12105_fabric.link(mc_12108_fabric, file("versions/mapping-fabric-1.21.5-1.21.8.txt")) - mc_12108_fabric.link(mc_12110_fabric, file("versions/mapping-fabric-1.21.8-1.21.10.txt")) - mc_12110_fabric.link(mc_12111_fabric, file("versions/mapping-fabric-1.21.10-1.21.11.txt")) - - // Forge - Node mc_11701_forge = createNode("malilib-1.17.1-forge", 1_17_01, "mojang") - Node mc_11802_forge = createNode("malilib-1.18.2-forge", 1_18_02, "mojang") - Node mc_11904_forge = createNode("malilib-1.19.4-forge", 1_19_04, "mojang") - Node mc_12001_forge = createNode("malilib-1.20.1-forge", 1_20_01, "mojang") - - mc_11701_fabric.link(mc_11701_forge, null) - mc_11802_fabric.link(mc_11802_forge, null) - mc_11904_fabric.link(mc_11904_forge, null) - mc_12001_fabric.link(mc_12001_forge, null) - - // NeoForge - Node mc_12006_neoforge = createNode("malilib-1.20.6-neoforge", 1_20_06, "mojang") - Node mc_12101_neoforge = createNode("malilib-1.21.1-neoforge", 1_21_01, "mojang") - Node mc_12103_neoforge = createNode("malilib-1.21.3-neoforge", 1_21_03, "mojang") - Node mc_12104_neoforge = createNode("malilib-1.21.4-neoforge", 1_21_04, "mojang") - Node mc_12105_neoforge = createNode("malilib-1.21.5-neoforge", 1_21_05, "mojang") - Node mc_12108_neoforge = createNode("malilib-1.21.8-neoforge", 1_21_08, "mojang") - Node mc_12110_neoforge = createNode("malilib-1.21.10-neoforge", 1_21_10, "mojang") - Node mc_12111_neoforge = createNode("malilib-1.21.11-neoforge", 1_21_11, "mojang") + id("top.hendrixshen.magiclib.build-logic.magic-loom-root") +} - mc_12006_fabric.link(mc_12006_neoforge, null) - mc_12101_fabric.link(mc_12101_neoforge, null) - mc_12103_fabric.link(mc_12103_neoforge, null) - mc_12104_fabric.link(mc_12104_neoforge, null) - mc_12105_fabric.link(mc_12105_neoforge, null) - mc_12108_fabric.link(mc_12108_neoforge, null) - mc_12110_fabric.link(mc_12110_neoforge, null) - mc_12111_fabric.link(mc_12111_neoforge, null) +magic { + magiclibMode = true + multiPlatformSupport = true } diff --git a/magiclib-malilib-extra/src/main/java/top/hendrixshen/magiclib/impl/malilib/config/MagicConfigHandlerImpl.java b/magiclib-malilib-extra/src/main/java/top/hendrixshen/magiclib/impl/malilib/config/MagicConfigHandlerImpl.java index cd2a526d..8defb2fe 100644 --- a/magiclib-malilib-extra/src/main/java/top/hendrixshen/magiclib/impl/malilib/config/MagicConfigHandlerImpl.java +++ b/magiclib-malilib-extra/src/main/java/top/hendrixshen/magiclib/impl/malilib/config/MagicConfigHandlerImpl.java @@ -241,7 +241,12 @@ public final void load() { JsonObject root = null; if (this.configFile.exists() && this.configFile.isFile() && this.configFile.canRead()) { - JsonElement element = JsonUtils.parseJsonFile(this.configFile); + JsonElement element = JsonUtils.parseJsonFile( + this.configFile + //#if MC >= 26.1 + //$$ .toPath() + //#endif + ); if (element != null && element.isJsonObject()) { root = element.getAsJsonObject(); @@ -258,7 +263,13 @@ public final void save() { this.saveToJson(); //#if MC > 11605 - //$$ JsonUtils.writeJsonToFile(this.loadedJson, configFile); + //$$ JsonUtils.writeJsonToFile( + //$$ this.loadedJson, + //$$ configFile + //$$ //#if MC >= 26.1 + //$$ //$$ .toPath() + //$$ //#endif + //$$ ); //#else try { File tempFile = new File(configFile.getParent(), configFile.getName() + ".tmp"); diff --git a/magiclib-malilib-extra/src/main/java/top/hendrixshen/magiclib/impl/malilib/config/gui/GuiVec3iEdit.java b/magiclib-malilib-extra/src/main/java/top/hendrixshen/magiclib/impl/malilib/config/gui/GuiVec3iEdit.java index fbbce8b1..d44730e8 100644 --- a/magiclib-malilib-extra/src/main/java/top/hendrixshen/magiclib/impl/malilib/config/gui/GuiVec3iEdit.java +++ b/magiclib-malilib-extra/src/main/java/top/hendrixshen/magiclib/impl/malilib/config/gui/GuiVec3iEdit.java @@ -9,6 +9,10 @@ import org.lwjgl.glfw.GLFW; // CHECKSTYLE.OFF: ImportOrder +//#if MC >= 26.1 +//$$ import org.jetbrains.annotations.NotNull; +//#endif + //#if MC >= 12111 //$$ import fi.dy.masa.malilib.render.GuiContext; //#endif @@ -17,18 +21,18 @@ import net.minecraft.client.gui.screens.Screen; // CHECKSTYLE.OFF: ImportOrder -//#if MC >= 12109 -//$$ import net.minecraft.client.input.KeyEvent; -//#endif -// CHECKSTYLE.ON: ImportOrder - -// CHECKSTYLE.OFF: ImportOrder -//#if MC > 11904 +//#if MC >= 26.1 +//$$ import net.minecraft.client.gui.GuiGraphicsExtractor; +//#elseif MC > 11904 //$$ import net.minecraft.client.gui.GuiGraphics; //#elseif MC > 11502 import com.mojang.blaze3d.vertex.PoseStack; //#endif +//#if MC >= 12109 +//$$ import net.minecraft.client.input.KeyEvent; +//#endif + //#if MC < 11700 import net.minecraft.client.Minecraft; //#endif @@ -122,6 +126,16 @@ public void removed() { super.removed(); } + //#if MC >= 26.1 + //$$ @Override + //$$ public void extractRenderState(@NotNull GuiGraphicsExtractor extractor, int mouseX, int mouseY, float partialTicks) { + //$$ if (this.getParent() != null) { + //$$ this.getParent().extractRenderState(extractor, mouseX, mouseY, partialTicks); + //$$ } + //$$ + //$$ super.extractRenderState(extractor, mouseX, mouseY, partialTicks); + //$$ } + //#else @Override public void render( //#if MC > 11904 @@ -153,6 +167,7 @@ public void render( partialTicks ); } + //#endif @Override protected void drawScreenBackground( diff --git a/magiclib-malilib-extra/src/main/java/top/hendrixshen/magiclib/impl/malilib/config/gui/GuiVec3iListEdit.java b/magiclib-malilib-extra/src/main/java/top/hendrixshen/magiclib/impl/malilib/config/gui/GuiVec3iListEdit.java index 9f596192..0f3c50a7 100644 --- a/magiclib-malilib-extra/src/main/java/top/hendrixshen/magiclib/impl/malilib/config/gui/GuiVec3iListEdit.java +++ b/magiclib-malilib-extra/src/main/java/top/hendrixshen/magiclib/impl/malilib/config/gui/GuiVec3iListEdit.java @@ -10,6 +10,10 @@ import org.lwjgl.glfw.GLFW; // CHECKSTYLE.OFF: ImportOrder +//#if MC >= 26.1 +//$$ import org.jetbrains.annotations.NotNull; +//#endif + //#if MC >= 12111 //$$ import fi.dy.masa.malilib.render.GuiContext; //#endif @@ -19,16 +23,18 @@ import net.minecraft.core.Vec3i; // CHECKSTYLE.OFF: ImportOrder -//#if MC >= 12109 -//$$ import net.minecraft.client.input.KeyEvent; -//#endif - -//#if MC > 11904 +//#if MC >= 26.1 +//$$ import net.minecraft.client.gui.GuiGraphicsExtractor; +//#elseif MC > 11904 //$$ import net.minecraft.client.gui.GuiGraphics; //#elseif MC > 11502 import com.mojang.blaze3d.vertex.PoseStack; //#endif +//#if MC >= 12109 +//$$ import net.minecraft.client.input.KeyEvent; +//#endif + //#if MC < 11700 import net.minecraft.client.Minecraft; //#endif @@ -124,6 +130,16 @@ public void removed() { super.removed(); } + //#if MC >= 26.1 + //$$ @Override + //$$ public void extractRenderState(@NotNull GuiGraphicsExtractor extractor, int mouseX, int mouseY, float partialTicks) { + //$$ if (this.getParent() != null) { + //$$ this.getParent().extractRenderState(extractor, mouseX, mouseY, partialTicks); + //$$ } + //$$ + //$$ super.extractRenderState(extractor, mouseX, mouseY, partialTicks); + //$$ } + //#else @Override public void render( //#if MC > 11904 @@ -155,6 +171,7 @@ public void render( partialTicks ); } + //#endif @Override protected void drawScreenBackground( diff --git a/magiclib-malilib-extra/src/main/java/top/hendrixshen/magiclib/impl/malilib/config/gui/GuiVec3iTupleEdit.java b/magiclib-malilib-extra/src/main/java/top/hendrixshen/magiclib/impl/malilib/config/gui/GuiVec3iTupleEdit.java index 8c00b30d..b549dafe 100644 --- a/magiclib-malilib-extra/src/main/java/top/hendrixshen/magiclib/impl/malilib/config/gui/GuiVec3iTupleEdit.java +++ b/magiclib-malilib-extra/src/main/java/top/hendrixshen/magiclib/impl/malilib/config/gui/GuiVec3iTupleEdit.java @@ -9,6 +9,10 @@ import org.lwjgl.glfw.GLFW; // CHECKSTYLE.OFF: ImportOrder +//#if MC >= 26.1 +//$$ import org.jetbrains.annotations.NotNull; +//#endif + //#if MC >= 12111 //$$ import fi.dy.masa.malilib.render.GuiContext; //#endif @@ -17,16 +21,18 @@ import net.minecraft.client.gui.screens.Screen; // CHECKSTYLE.OFF: ImportOrder -//#if MC >= 12109 -//$$ import net.minecraft.client.input.KeyEvent; -//#endif - -//#if MC > 11904 +//#if MC >= 26.1 +//$$ import net.minecraft.client.gui.GuiGraphicsExtractor; +//#elseif MC > 11904 //$$ import net.minecraft.client.gui.GuiGraphics; //#elseif MC > 11502 import com.mojang.blaze3d.vertex.PoseStack; //#endif +//#if MC >= 12109 +//$$ import net.minecraft.client.input.KeyEvent; +//#endif + //#if MC < 11700 import net.minecraft.client.Minecraft; //#endif @@ -124,6 +130,16 @@ public void removed() { super.removed(); } + //#if MC >= 26.1 + //$$ @Override + //$$ public void extractRenderState(@NotNull GuiGraphicsExtractor extractor, int mouseX, int mouseY, float partialTicks) { + //$$ if (this.getParent() != null) { + //$$ this.getParent().extractRenderState(extractor, mouseX, mouseY, partialTicks); + //$$ } + //$$ + //$$ super.extractRenderState(extractor, mouseX, mouseY, partialTicks); + //$$ } + //#else @Override public void render( //#if MC > 11904 @@ -155,6 +171,7 @@ public void render( partialTicks ); } + //#endif @Override protected void drawScreenBackground( diff --git a/magiclib-malilib-extra/src/main/java/top/hendrixshen/magiclib/impl/malilib/config/gui/GuiVec3iTupleListEdit.java b/magiclib-malilib-extra/src/main/java/top/hendrixshen/magiclib/impl/malilib/config/gui/GuiVec3iTupleListEdit.java index 0e60e998..3df21d7e 100644 --- a/magiclib-malilib-extra/src/main/java/top/hendrixshen/magiclib/impl/malilib/config/gui/GuiVec3iTupleListEdit.java +++ b/magiclib-malilib-extra/src/main/java/top/hendrixshen/magiclib/impl/malilib/config/gui/GuiVec3iTupleListEdit.java @@ -10,6 +10,10 @@ import org.lwjgl.glfw.GLFW; // CHECKSTYLE.OFF: ImportOrder +//#if MC >= 26.1 +//$$ import org.jetbrains.annotations.NotNull; +//#endif + //#if MC >= 12111 //$$ import fi.dy.masa.malilib.render.GuiContext; //#endif @@ -18,16 +22,18 @@ import net.minecraft.client.gui.screens.Screen; // CHECKSTYLE.OFF: ImportOrder -//#if MC >= 12109 -//$$ import net.minecraft.client.input.KeyEvent; -//#endif - -//#if MC > 11904 +//#if MC >= 26.1 +//$$ import net.minecraft.client.gui.GuiGraphicsExtractor; +//#elseif MC > 11904 //$$ import net.minecraft.client.gui.GuiGraphics; //#elseif MC > 11502 import com.mojang.blaze3d.vertex.PoseStack; //#endif +//#if MC >= 12109 +//$$ import net.minecraft.client.input.KeyEvent; +//#endif + //#if MC < 11700 import net.minecraft.client.Minecraft; //#endif @@ -123,6 +129,16 @@ public void removed() { super.removed(); } + //#if MC >= 26.1 + //$$ @Override + //$$ public void extractRenderState(@NotNull GuiGraphicsExtractor extractor, int mouseX, int mouseY, float partialTicks) { + //$$ if (this.getParent() != null) { + //$$ this.getParent().extractRenderState(extractor, mouseX, mouseY, partialTicks); + //$$ } + //$$ + //$$ super.extractRenderState(extractor, mouseX, mouseY, partialTicks); + //$$ } + //#else @Override public void render( //#if MC > 11904 @@ -154,6 +170,7 @@ public void render( partialTicks ); } + //#endif @Override protected void drawScreenBackground( diff --git a/magiclib-malilib-extra/src/main/java/top/hendrixshen/magiclib/impl/malilib/config/gui/widget/WidgetVec3iEdit.java b/magiclib-malilib-extra/src/main/java/top/hendrixshen/magiclib/impl/malilib/config/gui/widget/WidgetVec3iEdit.java index 07d8d3c3..d508cb24 100644 --- a/magiclib-malilib-extra/src/main/java/top/hendrixshen/magiclib/impl/malilib/config/gui/widget/WidgetVec3iEdit.java +++ b/magiclib-malilib-extra/src/main/java/top/hendrixshen/magiclib/impl/malilib/config/gui/widget/WidgetVec3iEdit.java @@ -23,17 +23,18 @@ import net.minecraft.core.Vec3i; // CHECKSTYLE.OFF: ImportOrder +//#if MC > 26.1 +//#elseif MC > 11904 +//$$ import net.minecraft.client.gui.GuiGraphics; +//#elseif MC > 11502 +import com.mojang.blaze3d.vertex.PoseStack; +//#endif + //#if MC >= 12109 //$$ import net.minecraft.client.input.CharacterEvent; //$$ import net.minecraft.client.input.KeyEvent; //$$ import net.minecraft.client.input.MouseButtonEvent; //#endif - -//#if MC > 11904 -//$$ import net.minecraft.client.gui.GuiGraphics; -//#elseif MC > 11502 -import com.mojang.blaze3d.vertex.PoseStack; -//#endif // CHECKSTYLE.ON: ImportOrder import top.hendrixshen.magiclib.api.i18n.I18n; @@ -148,17 +149,19 @@ protected List> getTextFields() { @Override //#if MC >= 12106 //$$ public void render( - //$$ //#if MC >= 12111 - //$$ //$$ GuiContext guiGraphics, + //$$ //#if MC >= 26.1 + //$$ //$$ GuiContext guiContext, + //$$ //#elseif MC >= 12111 + //$$ //$$ GuiContext guiContext, //$$ //#else - //$$ GuiGraphics guiGraphics, + //$$ GuiGraphics guiContext, //$$ //#endif //$$ int mouseX, //$$ int mouseY, //$$ boolean selected //$$ ) { - //$$ this.drawTextFields(mouseX, mouseY, guiGraphics); - //$$ super.render(guiGraphics, mouseX, mouseY, selected); + //$$ this.drawTextFields(mouseX, mouseY, guiContext); + //$$ super.render(guiContext, mouseX, mouseY, selected); //$$ } //#else public void render( @@ -328,10 +331,12 @@ protected void drawTextFields( // CHECKSTYLE.OFF: SeparatorWrap int mouseX, int mouseY - //#if MC > 11904 - //$$ , GuiGraphics poseStackOrGuiGraphics + //#if MC >= 26.1 + //$$ , GuiContext guiContext + //#elseif MC > 11904 + //$$ , GuiGraphics guiContext //#elseif MC > 11502 - , PoseStack poseStackOrGuiGraphics + , PoseStack guiContext //#endif // CHECKSTYLE.ON: SeparatorWrap // CHECKSTYLE.ON: NoWhitespaceBefore @@ -341,11 +346,15 @@ protected void drawTextFields( } Consumer> drawTextField = wrapper -> wrapper.getTextField() + //#if MC >= 26.1 + //$$ .renderWrapper( + //#else .render( + //#endif // CHECKSTYLE.OFF: NoWhitespaceBefore // CHECKSTYLE.OFF: SeparatorWrap //#if MC > 11502 - poseStackOrGuiGraphics, + guiContext, //#endif mouseX, mouseY, diff --git a/magiclib-malilib-extra/src/main/java/top/hendrixshen/magiclib/mixin/malilib/element/WidgetDropDownListMixin.java b/magiclib-malilib-extra/src/main/java/top/hendrixshen/magiclib/mixin/malilib/element/WidgetDropDownListMixin.java index 7dd45b3d..f6b0c8fd 100644 --- a/magiclib-malilib-extra/src/main/java/top/hendrixshen/magiclib/mixin/malilib/element/WidgetDropDownListMixin.java +++ b/magiclib-malilib-extra/src/main/java/top/hendrixshen/magiclib/mixin/malilib/element/WidgetDropDownListMixin.java @@ -28,30 +28,31 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; // CHECKSTYLE.OFF: ImportOrder +//#if MC < 12111 //#if FABRIC_LIKE import org.spongepowered.asm.mixin.injection.ModifyArgs; import org.spongepowered.asm.mixin.injection.invoke.arg.Args; //#else //$$ import org.spongepowered.asm.mixin.injection.ModifyArg; //#endif +//#endif // CHECKSTYLE.ON: ImportOrder import top.hendrixshen.magiclib.impl.malilib.config.gui.SelectorDropDownList; /** - * Reference to TweakerMore. + * Reference to TweakerMore. */ @Mixin(value = WidgetDropDownList.class, remap = false) public abstract class WidgetDropDownListMixin { + //#if MC < 12111 //#if FABRIC_LIKE @SuppressWarnings({"ConstantConditions", "PointlessBitwiseExpression", "PointlessArithmeticExpression"}) @ModifyArgs( method = "render", at = @At( value = "INVOKE", - //#if MC >= 12111 - //$$ target = "Lfi/dy/masa/malilib/render/RenderUtils;drawRect(Lfi/dy/masa/malilib/render/GuiContext;IIIII)V" - //#elseif MC >= 12106 + //#if MC >= 12106 //$$ target = "Lfi/dy/masa/malilib/render/RenderUtils;drawRect(Lnet/minecraft/client/gui/GuiGraphics;IIIII)V", //$$ remap = true //#elseif MC > 12104 @@ -142,6 +143,7 @@ private void selectorDropDownListMakeOpaque(Args args) { //$$ return x; //$$ } //#endif + //#endif @SuppressWarnings("ConstantConditions") @Inject( diff --git a/magiclib-malilib-extra/versions/1.14.4-fabric/gradle.properties b/magiclib-malilib-extra/versions/1.14.4-fabric/gradle.properties index 2215ae03..ac0d5d0e 100644 --- a/magiclib-malilib-extra/versions/1.14.4-fabric/gradle.properties +++ b/magiclib-malilib-extra/versions/1.14.4-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.14.x -dependencies.minecraft_version=1.14.4 # Publish properties publish.game_version=1.14.4 diff --git a/magiclib-malilib-extra/versions/1.15.2-fabric/gradle.properties b/magiclib-malilib-extra/versions/1.15.2-fabric/gradle.properties index a5055b68..857d799f 100644 --- a/magiclib-malilib-extra/versions/1.15.2-fabric/gradle.properties +++ b/magiclib-malilib-extra/versions/1.15.2-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.15.x -dependencies.minecraft_version=1.15.2 # Publish properties publish.game_version=1.15.2 diff --git a/magiclib-malilib-extra/versions/1.16.5-fabric/build.gradle b/magiclib-malilib-extra/versions/1.16.5-fabric/build.gradle index af29b17c..a0a72dc5 100644 --- a/magiclib-malilib-extra/versions/1.16.5-fabric/build.gradle +++ b/magiclib-malilib-extra/versions/1.16.5-fabric/build.gradle @@ -1,3 +1,5 @@ +import net.fabricmc.loom.util.ModPlatform + plugins { id("checkstyle") id("java") @@ -5,36 +7,21 @@ plugins { id("maven-publish") id("signing") - alias(libs.plugins.architectury.loom) - alias(libs.plugins.replace.token) alias(libs.plugins.yamlang) - alias(libs.plugins.preprocessor) + alias(libs.plugins.replace.token) + id("top.hendrixshen.magiclib.build-logic.magic-loom") id("top.hendrixshen.magiclib.build-logic.process-resources-minecraft") } -String modPlatform = loom.platform.get().toString().toLowerCase() -boolean fabricLike = modPlatform == "fabric" || modPlatform == "quilt" -boolean forgeLike = modPlatform == "forge" || modPlatform == "neoforge" +final int mcVersion = magic.projectDetail.get().getMinecraftVersionNumber() +final ModPlatform modPlatform = magic.projectDetail.get().getPlatform() +final boolean fabricLike = !modPlatform.isForgeLike() +final boolean forgeLike = modPlatform.isForgeLike() String projectName = project.name.replace("malilib-", "") Project betterDev = evaluationDependsOn(":magiclib-better-dev:better-dev-${projectName}") Project mcAPI = evaluationDependsOn(":magiclib-minecraft-api:mc-api-${projectName}") -int mcVersion = 0 -VersionCatalogsExtension catalogsExtension = project.getExtensions().getByType(VersionCatalogsExtension.class) - -preprocess { - mcVersion = vars.get().get("MC") - vars.put("MC", mcVersion) - vars.put("FABRIC", modPlatform == "fabric" ? 1 : 0) - vars.put("FORGE", modPlatform == "forge" ? 1 : 0) - vars.put("NEO_FORGE", modPlatform == "neoforge" ? 1 : 0) - vars.put("FABRIC_LIKE", fabricLike ? 1 : 0) - vars.put("FORGE_LIKE", forgeLike ? 1 : 0) -} - -loom { - silentMojangMappingsLicense() -} +final VersionCatalogsExtension catalogsExtension = project.getExtensions().getByType(VersionCatalogsExtension.class) repositories { mavenLocal() @@ -81,46 +68,32 @@ repositories { // Configuration name, Module, Resolve condition, Use version mapping, Configuration closure. def deps = [ - ["modApi", "badpackets", forgeLike && 12100 > mcVersion && mcVersion > 12004, true, { transitive = false }], - ["modApi", "malilib" , fabricLike , true, { transitive = false }], - ["modApi", "mafglib" , forgeLike , true, { transitive = false }] + ["autoApi", "badpackets" , forgeLike && 12100 > mcVersion && mcVersion > 12004, true , { transitive = false }], + ["autoApi", "malilib" , fabricLike , true , { transitive = false }], + ["autoApi", "mafglib" , forgeLike , true , { transitive = false }], + ["autoApi", "foxifiedclasstweaker", forgeLike && mcVersion >= 260100 , false, { transitive = false }] ] dependencies { - minecraft("com.mojang:minecraft:${project.property("dependencies.minecraft_version")}") - mappings(loom.officialMojangMappings()) - // Lombok compileOnly(libs.lombok) annotationProcessor(libs.lombok) // MagicLib Core - api(annotationProcessor(project(path: ":magiclib-core:${modPlatform}", configuration: "shadow"))) + api(annotationProcessor(project(path: ":magiclib-core:${modPlatform.id()}", configuration: "shadow"))) // MC-API - api(project(path: mcAPI.path, configuration: "namedElements")) + api(project(path: mcAPI.path, configuration: magic.projectDetail.get().isUnobfuscatedVersion() ? null : "namedElements")) // Dont publish better dev dependencies. - compileOnly(project(path: betterDev.path, configuration: "namedElements")) - localRuntime(project(path: betterDev.path, configuration: "namedElements")) + compileOnly(project(path: betterDev.path, configuration: magic.projectDetail.get().isUnobfuscatedVersion() ? null : "namedElements")) + localRuntime(project(path: betterDev.path, configuration: magic.projectDetail.get().isUnobfuscatedVersion() ? null : "namedElements")) - if (forgeLike) { + if (forgeLike && !magic.projectDetail.get().isUnobfuscatedVersion()) { compileOnly(project(path: betterDev.path, configuration: "modCompileClasspathMainMapped")) localRuntime(project(path: betterDev.path, configuration: "modRuntimeClasspathMainMapped")) } - switch (modPlatform) { - case "fabric": - modApi(libs.fabric.loader) - break - case "forge": - forge(catalogsExtension.named("forges").findLibrary("forge-mc${mcVersion}").orElseThrow { throw new GradleException("No Forge library found for mc${mcVersion}") }) - break - case "neoforge": - neoForge(catalogsExtension.named("forges").findLibrary("neoforge-mc${mcVersion}").orElseThrow { throw new GradleException("No NeoForge library found for mc${mcVersion}") }) - break - } - deps.forEach { item -> String configurationName = item[0] String dependencyName = item[1] @@ -149,24 +122,6 @@ loom { isEnabled.set(false) } - if (fabricLike) { - mixin { - useLegacyMixinAp.set(true) - } - } - - if (modPlatform == "forge") { - forge { - convertAccessWideners.set(true) - mixinConfig("${project.parent.property("mod.id")}.mixins.json") - } - } - - runConfigs.configureEach { - // Dump modified classes automatically. - property("mixin.debug.export", "true") - } - runConfigs.named("client") { programArgs([ "--width", @@ -176,18 +131,6 @@ loom { "--username", project.getOrDefault("ow.game.username", "dev") ]) - vmArgs("-Dmagiclib.debug=true") - vmArgs("-Dmagiclib.dev.malilib=true") - vmArgs("-Dmagiclib.dev.qol=true") - vmArgs("-Dmagiclib.dev.qol.dfu.destroy=true") - runDir("run/client") - } - - runConfigs.named("server") { - vmArgs("-Dmagiclib.debug=true") - vmArgs("-Dmagiclib.dev.qol=true") - vmArgs("-Dmagiclib.dev.qol.dfu.destroy=true") - runDir("run/server") } if (fabricLike) { @@ -210,7 +153,7 @@ loom { } base { - setArchivesName("${project.parent.property("mod.archives_base_name")}-mc${project.property("dependencies.minecraft_version")}-${modPlatform}") + setArchivesName("${project.parent.property("mod.archives_base_name")}-mc${magic.projectDetail.get().getMinecraftVersionName()}-${modPlatform.id()}") setGroup("${project.property("mod.maven_group")}") setVersion(project.getModVersion(project.parent)) } @@ -220,29 +163,12 @@ checkstyle { toolVersion = libs.versions.checkstyle.get() } -java { - if (mcVersion > 11204) { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 - } else if (mcVersion > 11701) { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } else if (mcVersion > 11605) { - sourceCompatibility = JavaVersion.VERSION_16 - targetCompatibility = JavaVersion.VERSION_16 - } else { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 - } - - withSourcesJar() - withJavadocJar() -} - -remapJar { - if (forgeLike) { - if (modPlatform == "neoforge") { - atAccessWideners.add("${project.parent.property("mod.id")}.accesswidener") +if (!magic.projectDetail.get().isUnobfuscatedVersion()) { + remapJar { + if (forgeLike) { + if (modPlatform == ModPlatform.NEOFORGE) { + atAccessWideners.add("${project.parent.property("mod.id")}.accesswidener") + } } } } @@ -327,74 +253,6 @@ tasks.withType(Javadoc).configureEach { Javadoc task -> (task.options as CoreJavadocOptions).addStringOption("Xdoclint:none", "-quiet") } -tasks.withType(JavaCompile).configureEach { JavaCompile task -> - task.options.encoding = "UTF-8" - - if (mcVersion > 12005) { - task.options.release.set(21) - } else if (mcVersion > 11701) { - task.options.release.set(17) - } else if (mcVersion > 11605) { - task.options.release.set(16) - } else { - task.options.release.set(8) - options.compilerArgs << '-Xlint:-options' - } -} - -// Setup client default settings. -tasks.named("runClient") { - defaultCharacterEncoding = "UTF-8" - - doFirst { - file("${project.projectDir}/run/client/config").mkdirs() - file("${project.projectDir}/run/client/options.txt").with { File f -> - { - if (!f.exists()) { - f.parentFile.mkdirs() - f.withWriter { BufferedWriter writer -> - writer.writeLine("autoJump:false") - writer.writeLine("enableVsync:false") - writer.writeLine("forceUnicodeFont:true") - writer.writeLine("fov:1.0") - - if (mcVersion < 11900) { - writer.writeLine("gamma:16.0") - } - - writer.writeLine("guiScale:3") - writer.writeLine("lang:${Locale.getDefault().toString().toLowerCase()}") - writer.writeLine("maxFps:260") - writer.writeLine("renderDistance:10") - writer.writeLine("soundCategory_master:0.0") - } - } - } - } - } -} - -// Setup server default settings. -tasks.named("runServer") { - defaultCharacterEncoding = "UTF-8" - - doFirst { - // Agree eula before server init. - file("${project.projectDir}/run/server/eula.txt").with { File f -> - { - if (!f.exists()) { - f.parentFile.mkdirs() - f.withWriter { BufferedWriter writer -> - writer.writeLine("#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).") - writer.writeLine("#${new Date()}") - writer.writeLine("eula=true") - } - } - } - } - } -} - tasks.register("cleanRuns", Delete.class) { Delete cleanTask -> dependsOn("cleanRunClient", "cleanRunServer") cleanTask.setGroup("${project.property("mod.id")}") diff --git a/magiclib-malilib-extra/versions/1.16.5-fabric/gradle.properties b/magiclib-malilib-extra/versions/1.16.5-fabric/gradle.properties index 4c7a96bc..c3d8fea5 100644 --- a/magiclib-malilib-extra/versions/1.16.5-fabric/gradle.properties +++ b/magiclib-malilib-extra/versions/1.16.5-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.16.x -dependencies.minecraft_version=1.16.5 # Publish properties publish.game_version=1.16.5 diff --git a/magiclib-malilib-extra/versions/1.17.1-fabric/gradle.properties b/magiclib-malilib-extra/versions/1.17.1-fabric/gradle.properties index d1b7dc8a..7c541880 100644 --- a/magiclib-malilib-extra/versions/1.17.1-fabric/gradle.properties +++ b/magiclib-malilib-extra/versions/1.17.1-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.17.x -dependencies.minecraft_version=1.17.1 # Publish properties publish.game_version=1.17.1 diff --git a/magiclib-malilib-extra/versions/1.17.1-forge/gradle.properties b/magiclib-malilib-extra/versions/1.17.1-forge/gradle.properties index 317e0c4b..11e0d493 100644 --- a/magiclib-malilib-extra/versions/1.17.1-forge/gradle.properties +++ b/magiclib-malilib-extra/versions/1.17.1-forge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.17.x -dependencies.minecraft_version=1.17.1 # Loom Properties loom.platform=forge diff --git a/magiclib-malilib-extra/versions/1.18.2-fabric/gradle.properties b/magiclib-malilib-extra/versions/1.18.2-fabric/gradle.properties index 3158fc52..aa4c6eac 100644 --- a/magiclib-malilib-extra/versions/1.18.2-fabric/gradle.properties +++ b/magiclib-malilib-extra/versions/1.18.2-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.18.x -dependencies.minecraft_version=1.18.2 # Publish properties publish.game_version=1.18.2 diff --git a/magiclib-malilib-extra/versions/1.18.2-forge/gradle.properties b/magiclib-malilib-extra/versions/1.18.2-forge/gradle.properties index 97b4bd13..1f33899c 100644 --- a/magiclib-malilib-extra/versions/1.18.2-forge/gradle.properties +++ b/magiclib-malilib-extra/versions/1.18.2-forge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.18.x -dependencies.minecraft_version=1.18.2 # Loom Properties loom.platform=forge diff --git a/magiclib-malilib-extra/versions/1.19.2-fabric/gradle.properties b/magiclib-malilib-extra/versions/1.19.2-fabric/gradle.properties index 5e5c4b21..5ded9432 100644 --- a/magiclib-malilib-extra/versions/1.19.2-fabric/gradle.properties +++ b/magiclib-malilib-extra/versions/1.19.2-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.19.2 -dependencies.minecraft_version=1.19.2 # Publish properties publish.game_version=1.19.2 diff --git a/magiclib-malilib-extra/versions/1.19.3-fabric/gradle.properties b/magiclib-malilib-extra/versions/1.19.3-fabric/gradle.properties index 50272eb8..859dd317 100644 --- a/magiclib-malilib-extra/versions/1.19.3-fabric/gradle.properties +++ b/magiclib-malilib-extra/versions/1.19.3-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.19.3 -dependencies.minecraft_version=1.19.3 # Publish properties publish.game_version=1.19.3 diff --git a/magiclib-malilib-extra/versions/1.19.4-fabric/gradle.properties b/magiclib-malilib-extra/versions/1.19.4-fabric/gradle.properties index 7c33d551..7d841992 100644 --- a/magiclib-malilib-extra/versions/1.19.4-fabric/gradle.properties +++ b/magiclib-malilib-extra/versions/1.19.4-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.19.4 -dependencies.minecraft_version=1.19.4 # Publish properties publish.game_version=1.19.4 diff --git a/magiclib-malilib-extra/versions/1.19.4-forge/gradle.properties b/magiclib-malilib-extra/versions/1.19.4-forge/gradle.properties index ef04b540..805d6a89 100644 --- a/magiclib-malilib-extra/versions/1.19.4-forge/gradle.properties +++ b/magiclib-malilib-extra/versions/1.19.4-forge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.19.4 -dependencies.minecraft_version=1.19.4 # Loom Properties loom.platform=forge diff --git a/magiclib-malilib-extra/versions/1.20.1-fabric/gradle.properties b/magiclib-malilib-extra/versions/1.20.1-fabric/gradle.properties index 1f9fa300..2a7bbe3e 100644 --- a/magiclib-malilib-extra/versions/1.20.1-fabric/gradle.properties +++ b/magiclib-malilib-extra/versions/1.20.1-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.20.1 -dependencies.minecraft_version=1.20.1 # Publish properties publish.game_version=1.20.1 diff --git a/magiclib-malilib-extra/versions/1.20.1-forge/gradle.properties b/magiclib-malilib-extra/versions/1.20.1-forge/gradle.properties index 2c3af517..d5833b21 100644 --- a/magiclib-malilib-extra/versions/1.20.1-forge/gradle.properties +++ b/magiclib-malilib-extra/versions/1.20.1-forge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.20.1 -dependencies.minecraft_version=1.20.1 # Loom Properties loom.platform=forge diff --git a/magiclib-malilib-extra/versions/1.20.2-fabric/gradle.properties b/magiclib-malilib-extra/versions/1.20.2-fabric/gradle.properties index a8242f13..f2887ede 100644 --- a/magiclib-malilib-extra/versions/1.20.2-fabric/gradle.properties +++ b/magiclib-malilib-extra/versions/1.20.2-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.20.2 -dependencies.minecraft_version=1.20.2 # Publish properties publish.game_version=1.20.2 diff --git a/magiclib-malilib-extra/versions/1.20.4-fabric/gradle.properties b/magiclib-malilib-extra/versions/1.20.4-fabric/gradle.properties index 727c90d5..52c74cfd 100644 --- a/magiclib-malilib-extra/versions/1.20.4-fabric/gradle.properties +++ b/magiclib-malilib-extra/versions/1.20.4-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=>=1.20.3- <1.20.5- -dependencies.minecraft_version=1.20.4 # Publish properties publish.game_version=1.20.3,1.20.4 diff --git a/magiclib-malilib-extra/versions/1.20.6-fabric/gradle.properties b/magiclib-malilib-extra/versions/1.20.6-fabric/gradle.properties index ccfe935d..10d8a63c 100644 --- a/magiclib-malilib-extra/versions/1.20.6-fabric/gradle.properties +++ b/magiclib-malilib-extra/versions/1.20.6-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=>=1.20.5- <1.20.7- -dependencies.minecraft_version=1.20.6 # Publish properties publish.game_version=1.20.5,1.20.6 diff --git a/magiclib-malilib-extra/versions/1.20.6-neoforge/gradle.properties b/magiclib-malilib-extra/versions/1.20.6-neoforge/gradle.properties index 4793b437..5bb02f1a 100644 --- a/magiclib-malilib-extra/versions/1.20.6-neoforge/gradle.properties +++ b/magiclib-malilib-extra/versions/1.20.6-neoforge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=[1.20.5,1.20.7) -dependencies.minecraft_version=1.20.6 # Loom Properties loom.platform=neoforge diff --git a/magiclib-malilib-extra/versions/1.21.1-fabric/gradle.properties b/magiclib-malilib-extra/versions/1.21.1-fabric/gradle.properties index 9426c692..804316a4 100644 --- a/magiclib-malilib-extra/versions/1.21.1-fabric/gradle.properties +++ b/magiclib-malilib-extra/versions/1.21.1-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=>=1.21- <1.21.2- -dependencies.minecraft_version=1.21.1 # Loom Properties loom.ignoreDependencyLoomVersionValidation=true diff --git a/magiclib-malilib-extra/versions/1.21.1-neoforge/gradle.properties b/magiclib-malilib-extra/versions/1.21.1-neoforge/gradle.properties index a273a4a7..b6dcdfda 100644 --- a/magiclib-malilib-extra/versions/1.21.1-neoforge/gradle.properties +++ b/magiclib-malilib-extra/versions/1.21.1-neoforge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=[1.21,1.21.2) -dependencies.minecraft_version=1.21.1 # Loom Properties loom.platform=neoforge diff --git a/magiclib-malilib-extra/versions/1.21.10-fabric/gradle.properties b/magiclib-malilib-extra/versions/1.21.10-fabric/gradle.properties index 30f2ce95..bd78f52b 100644 --- a/magiclib-malilib-extra/versions/1.21.10-fabric/gradle.properties +++ b/magiclib-malilib-extra/versions/1.21.10-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=>=1.21.9- <1.21.11- -dependencies.minecraft_version=1.21.10 # Loom Properties loom.ignoreDependencyLoomVersionValidation=true diff --git a/magiclib-malilib-extra/versions/1.21.10-neoforge/gradle.properties b/magiclib-malilib-extra/versions/1.21.10-neoforge/gradle.properties index fd3540ab..bbab434a 100644 --- a/magiclib-malilib-extra/versions/1.21.10-neoforge/gradle.properties +++ b/magiclib-malilib-extra/versions/1.21.10-neoforge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=[1.21.9,1.21.11) -dependencies.minecraft_version=1.21.10 # Loom Properties loom.platform=neoforge diff --git a/magiclib-malilib-extra/versions/1.21.11-fabric/gradle.properties b/magiclib-malilib-extra/versions/1.21.11-fabric/gradle.properties index c82e8826..3b21592f 100644 --- a/magiclib-malilib-extra/versions/1.21.11-fabric/gradle.properties +++ b/magiclib-malilib-extra/versions/1.21.11-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=>=1.21.11- <1.21.12- -dependencies.minecraft_version=1.21.11 # Loom Properties loom.ignoreDependencyLoomVersionValidation=true diff --git a/magiclib-malilib-extra/versions/1.21.11-neoforge/gradle.properties b/magiclib-malilib-extra/versions/1.21.11-neoforge/gradle.properties index ae52bd2e..fc64baf9 100644 --- a/magiclib-malilib-extra/versions/1.21.11-neoforge/gradle.properties +++ b/magiclib-malilib-extra/versions/1.21.11-neoforge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=[1.21.11,1.21.12) -dependencies.minecraft_version=1.21.11 # Loom Properties loom.platform=neoforge diff --git a/magiclib-malilib-extra/versions/1.21.3-fabric/gradle.properties b/magiclib-malilib-extra/versions/1.21.3-fabric/gradle.properties index 435c4b42..bdac53b6 100644 --- a/magiclib-malilib-extra/versions/1.21.3-fabric/gradle.properties +++ b/magiclib-malilib-extra/versions/1.21.3-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=>=1.21.2- <1.21.4- -dependencies.minecraft_version=1.21.3 # Loom Properties loom.ignoreDependencyLoomVersionValidation=true diff --git a/magiclib-malilib-extra/versions/1.21.3-neoforge/gradle.properties b/magiclib-malilib-extra/versions/1.21.3-neoforge/gradle.properties index 71a97fb6..b3a0a3dd 100644 --- a/magiclib-malilib-extra/versions/1.21.3-neoforge/gradle.properties +++ b/magiclib-malilib-extra/versions/1.21.3-neoforge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=[1.21.3,1.21.4) -dependencies.minecraft_version=1.21.3 # Loom Properties loom.platform=neoforge diff --git a/magiclib-malilib-extra/versions/1.21.4-fabric/gradle.properties b/magiclib-malilib-extra/versions/1.21.4-fabric/gradle.properties index 61fde5e9..9ad43297 100644 --- a/magiclib-malilib-extra/versions/1.21.4-fabric/gradle.properties +++ b/magiclib-malilib-extra/versions/1.21.4-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=>=1.21.4- <1.21.5- -dependencies.minecraft_version=1.21.4 # Loom Properties loom.ignoreDependencyLoomVersionValidation=true diff --git a/magiclib-malilib-extra/versions/1.21.4-neoforge/gradle.properties b/magiclib-malilib-extra/versions/1.21.4-neoforge/gradle.properties index a2fa84d6..701eee25 100644 --- a/magiclib-malilib-extra/versions/1.21.4-neoforge/gradle.properties +++ b/magiclib-malilib-extra/versions/1.21.4-neoforge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=[1.21.4,1.21.5) -dependencies.minecraft_version=1.21.4 # Loom Properties loom.platform=neoforge diff --git a/magiclib-malilib-extra/versions/1.21.5-fabric/gradle.properties b/magiclib-malilib-extra/versions/1.21.5-fabric/gradle.properties index c1e2c24f..79cac100 100644 --- a/magiclib-malilib-extra/versions/1.21.5-fabric/gradle.properties +++ b/magiclib-malilib-extra/versions/1.21.5-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=>=1.21.5- <1.21.6- -dependencies.minecraft_version=1.21.5 # Loom Properties loom.ignoreDependencyLoomVersionValidation=true diff --git a/magiclib-malilib-extra/versions/1.21.5-neoforge/gradle.properties b/magiclib-malilib-extra/versions/1.21.5-neoforge/gradle.properties index c7d869df..e0a84b1d 100644 --- a/magiclib-malilib-extra/versions/1.21.5-neoforge/gradle.properties +++ b/magiclib-malilib-extra/versions/1.21.5-neoforge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=[1.21.5,1.21.6) -dependencies.minecraft_version=1.21.5 # Loom Properties loom.platform=neoforge diff --git a/magiclib-malilib-extra/versions/1.21.8-fabric/gradle.properties b/magiclib-malilib-extra/versions/1.21.8-fabric/gradle.properties index 727bde0b..425862eb 100644 --- a/magiclib-malilib-extra/versions/1.21.8-fabric/gradle.properties +++ b/magiclib-malilib-extra/versions/1.21.8-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=>=1.21.6- <1.21.9- -dependencies.minecraft_version=1.21.8 # Loom Properties loom.ignoreDependencyLoomVersionValidation=true diff --git a/magiclib-malilib-extra/versions/1.21.8-neoforge/gradle.properties b/magiclib-malilib-extra/versions/1.21.8-neoforge/gradle.properties index 35057c98..fd7ad4c6 100644 --- a/magiclib-malilib-extra/versions/1.21.8-neoforge/gradle.properties +++ b/magiclib-malilib-extra/versions/1.21.8-neoforge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=[1.21.6,1.21.9) -dependencies.minecraft_version=1.21.8 # Loom Properties loom.platform=neoforge diff --git a/magiclib-malilib-extra/versions/26.1.2-fabric/gradle.properties b/magiclib-malilib-extra/versions/26.1.2-fabric/gradle.properties new file mode 100644 index 00000000..18056347 --- /dev/null +++ b/magiclib-malilib-extra/versions/26.1.2-fabric/gradle.properties @@ -0,0 +1,6 @@ +# Dependency Versions +dependencies.minecraft_dependency=~26.1- + +# Publish properties +publish.game_version=26.1,26.1.1,26.1.2 +publish.dependencies_list= diff --git a/magiclib-malilib-extra/versions/26.1.2-fabric/src/main/resources/magiclib-malilib-extra.accesswidener b/magiclib-malilib-extra/versions/26.1.2-fabric/src/main/resources/magiclib-malilib-extra.accesswidener new file mode 100644 index 00000000..ae163778 --- /dev/null +++ b/magiclib-malilib-extra/versions/26.1.2-fabric/src/main/resources/magiclib-malilib-extra.accesswidener @@ -0,0 +1 @@ +accessWidener v2 official diff --git a/magiclib-malilib-extra/versions/26.1.2-neoforge/gradle.properties b/magiclib-malilib-extra/versions/26.1.2-neoforge/gradle.properties new file mode 100644 index 00000000..4c21c955 --- /dev/null +++ b/magiclib-malilib-extra/versions/26.1.2-neoforge/gradle.properties @@ -0,0 +1,9 @@ +# Dependency Versions +dependencies.minecraft_dependency=[26.1,26.2) + +# Loom Properties +loom.platform=neoforge + +# Publish properties +publish.game_version=26.1,26.1.1,26.1.2 +publish.dependencies_list= diff --git a/magiclib-malilib-extra/versions/26.1.2-neoforge/src/main/resources/magiclib-malilib-extra.accesswidener b/magiclib-malilib-extra/versions/26.1.2-neoforge/src/main/resources/magiclib-malilib-extra.accesswidener new file mode 100644 index 00000000..ae163778 --- /dev/null +++ b/magiclib-malilib-extra/versions/26.1.2-neoforge/src/main/resources/magiclib-malilib-extra.accesswidener @@ -0,0 +1 @@ +accessWidener v2 official diff --git a/magiclib-malilib-extra/versions/mapping-fabric-1.21.11-26.1.2.txt b/magiclib-malilib-extra/versions/mapping-fabric-1.21.11-26.1.2.txt new file mode 100644 index 00000000..7023338f --- /dev/null +++ b/magiclib-malilib-extra/versions/mapping-fabric-1.21.11-26.1.2.txt @@ -0,0 +1,2 @@ +fi.dy.masa.malilib.gui.wrappers.TextFieldWrapper getTextField() textField() +fi.dy.masa.malilib.util.JsonUtils fi.dy.masa.malilib.util.data.json.JsonUtils diff --git a/magiclib-minecraft-api/build.gradle b/magiclib-minecraft-api/build.gradle index aa17f513..00e1eed0 100644 --- a/magiclib-minecraft-api/build.gradle +++ b/magiclib-minecraft-api/build.gradle @@ -1,85 +1,12 @@ -import com.replaymod.gradle.preprocess.Node -import com.replaymod.gradle.preprocess.RootPreprocessExtension - plugins { - alias(libs.plugins.architectury.loom).apply(false) + alias(libs.plugins.essential.loom.remap).apply(false) + alias(libs.plugins.essential.loom.no.remap).apply(false) alias(libs.plugins.preprocessor).apply(false) -} - -extensions.create("preprocess", RootPreprocessExtension.class) - -preprocess { - strictExtraMappings.set(false) - - // Fabric - Node mc_11404_fabric = createNode("mc-api-1.14.4-fabric", 1_14_04, "mojang") - Node mc_11502_fabric = createNode("mc-api-1.15.2-fabric", 1_15_02, "mojang") - Node mc_11605_fabric = createNode("mc-api-1.16.5-fabric", 1_16_05, "mojang") - Node mc_11701_fabric = createNode("mc-api-1.17.1-fabric", 1_17_01, "mojang") - Node mc_11802_fabric = createNode("mc-api-1.18.2-fabric", 1_18_02, "mojang") - Node mc_11902_fabric = createNode("mc-api-1.19.2-fabric", 1_19_02, "mojang") - Node mc_11903_fabric = createNode("mc-api-1.19.3-fabric", 1_19_03, "mojang") - Node mc_11904_fabric = createNode("mc-api-1.19.4-fabric", 1_19_04, "mojang") - Node mc_12001_fabric = createNode("mc-api-1.20.1-fabric", 1_20_01, "mojang") - Node mc_12002_fabric = createNode("mc-api-1.20.2-fabric", 1_20_02, "mojang") - Node mc_12004_fabric = createNode("mc-api-1.20.4-fabric", 1_20_04, "mojang") - Node mc_12006_fabric = createNode("mc-api-1.20.6-fabric", 1_20_06, "mojang") - Node mc_12101_fabric = createNode("mc-api-1.21.1-fabric", 1_21_01, "mojang") - Node mc_12103_fabric = createNode("mc-api-1.21.3-fabric", 1_21_03, "mojang") - Node mc_12104_fabric = createNode("mc-api-1.21.4-fabric", 1_21_04, "mojang") - Node mc_12105_fabric = createNode("mc-api-1.21.5-fabric", 1_21_05, "mojang") - Node mc_12108_fabric = createNode("mc-api-1.21.8-fabric", 1_21_08, "mojang") - Node mc_12110_fabric = createNode("mc-api-1.21.10-fabric", 1_21_10, "mojang") - Node mc_12111_fabric = createNode("mc-api-1.21.11-fabric", 1_21_11, "mojang") - mc_11502_fabric.link(mc_11404_fabric, file("versions/mapping-fabric-1.15.2-1.14.4.txt")) - mc_11605_fabric.link(mc_11502_fabric, file("versions/mapping-fabric-1.16.5-1.15.2.txt")) - mc_11605_fabric.link(mc_11701_fabric, file("versions/mapping-fabric-1.16.5-1.17.1.txt")) - mc_11701_fabric.link(mc_11802_fabric, file("versions/mapping-fabric-1.17.1-1.18.2.txt")) - mc_11802_fabric.link(mc_11902_fabric, file("versions/mapping-fabric-1.18.2-1.19.2.txt")) - mc_11902_fabric.link(mc_11903_fabric, file("versions/mapping-fabric-1.19.2-1.19.3.txt")) - mc_11903_fabric.link(mc_11904_fabric, file("versions/mapping-fabric-1.19.3-1.19.4.txt")) - mc_11904_fabric.link(mc_12001_fabric, file("versions/mapping-fabric-1.19.4-1.20.1.txt")) - mc_12001_fabric.link(mc_12002_fabric, file("versions/mapping-fabric-1.20.1-1.20.2.txt")) - mc_12002_fabric.link(mc_12004_fabric, file("versions/mapping-fabric-1.20.2-1.20.4.txt")) - mc_12004_fabric.link(mc_12006_fabric, file("versions/mapping-fabric-1.20.4-1.20.6.txt")) - mc_12006_fabric.link(mc_12101_fabric, file("versions/mapping-fabric-1.20.6-1.21.1.txt")) - mc_12101_fabric.link(mc_12103_fabric, file("versions/mapping-fabric-1.21.1-1.21.3.txt")) - mc_12103_fabric.link(mc_12104_fabric, file("versions/mapping-fabric-1.21.3-1.21.4.txt")) - mc_12104_fabric.link(mc_12105_fabric, file("versions/mapping-fabric-1.21.4-1.21.5.txt")) - mc_12105_fabric.link(mc_12108_fabric, file("versions/mapping-fabric-1.21.5-1.21.8.txt")) - mc_12108_fabric.link(mc_12110_fabric, file("versions/mapping-fabric-1.21.8-1.21.10.txt")) - mc_12110_fabric.link(mc_12111_fabric, file("versions/mapping-fabric-1.21.10-1.21.11.txt")) - - // Forge - Node mc_11701_forge = createNode("mc-api-1.17.1-forge", 1_17_01, "mojang") - Node mc_11802_forge = createNode("mc-api-1.18.2-forge", 1_18_02, "mojang") - Node mc_11904_forge = createNode("mc-api-1.19.4-forge", 1_19_04, "mojang") - Node mc_12001_forge = createNode("mc-api-1.20.1-forge", 1_20_01, "mojang") - - mc_11701_fabric.link(mc_11701_forge, null) - mc_11802_fabric.link(mc_11802_forge, null) - mc_11904_fabric.link(mc_11904_forge, null) - mc_12001_fabric.link(mc_12001_forge, null) - - // NeoForge - Node mc_12002_neoforge = createNode("mc-api-1.20.2-neoforge", 1_20_02, "mojang") - Node mc_12006_neoforge = createNode("mc-api-1.20.6-neoforge", 1_20_06, "mojang") - Node mc_12101_neoforge = createNode("mc-api-1.21.1-neoforge", 1_21_01, "mojang") - Node mc_12103_neoforge = createNode("mc-api-1.21.3-neoforge", 1_21_03, "mojang") - Node mc_12104_neoforge = createNode("mc-api-1.21.4-neoforge", 1_21_04, "mojang") - Node mc_12105_neoforge = createNode("mc-api-1.21.5-neoforge", 1_21_05, "mojang") - Node mc_12108_neoforge = createNode("mc-api-1.21.8-neoforge", 1_21_08, "mojang") - Node mc_12110_neoforge = createNode("mc-api-1.21.10-neoforge", 1_21_10, "mojang") - Node mc_12111_neoforge = createNode("mc-api-1.21.11-neoforge", 1_21_11, "mojang") + id("top.hendrixshen.magiclib.build-logic.magic-loom-root") +} - mc_12002_fabric.link(mc_12002_neoforge, null) - mc_12006_fabric.link(mc_12006_neoforge, null) - mc_12101_fabric.link(mc_12101_neoforge, null) - mc_12103_fabric.link(mc_12103_neoforge, null) - mc_12104_fabric.link(mc_12104_neoforge, null) - mc_12105_fabric.link(mc_12105_neoforge, null) - mc_12108_fabric.link(mc_12108_neoforge, null) - mc_12110_fabric.link(mc_12110_neoforge, null) - mc_12111_fabric.link(mc_12111_neoforge, null) +magic { + magiclibMode = true + multiPlatformSupport = true } diff --git a/magiclib-minecraft-api/src/main/java/top/hendrixshen/magiclib/api/compat/minecraft/network/chat/HoverEventCompat.java b/magiclib-minecraft-api/src/main/java/top/hendrixshen/magiclib/api/compat/minecraft/network/chat/HoverEventCompat.java index 2b9c2846..a015d642 100644 --- a/magiclib-minecraft-api/src/main/java/top/hendrixshen/magiclib/api/compat/minecraft/network/chat/HoverEventCompat.java +++ b/magiclib-minecraft-api/src/main/java/top/hendrixshen/magiclib/api/compat/minecraft/network/chat/HoverEventCompat.java @@ -12,6 +12,10 @@ import net.minecraft.network.chat.HoverEvent; // CHECKSTYLE.OFF: ImportOrder +//#if MC >= 26.1 +//$$ import net.minecraft.world.item.ItemStackTemplate; +//#endif + //#if MC < 12105 import net.minecraft.network.chat.HoverEvent.Action; //#endif @@ -76,7 +80,13 @@ public interface HoverEventCompat extends Provider { //#endif ) { //#if MC > 12104 - //$$ return new ShowItem(itemStack); + //$$ return new ShowItem( + //$$ //#if MC >= 26.1 + //$$ //$$ ItemStackTemplate.fromNonEmptyStack(itemStack) + //$$ //#else + //$$ itemStack + //$$ //#endif + //$$ ); //#else return new HoverEvent(Action.SHOW_ITEM, itemStack); //#endif diff --git a/magiclib-minecraft-api/src/main/java/top/hendrixshen/magiclib/impl/render/TextRenderer.java b/magiclib-minecraft-api/src/main/java/top/hendrixshen/magiclib/impl/render/TextRenderer.java index 27a320c3..fe03cdaa 100644 --- a/magiclib-minecraft-api/src/main/java/top/hendrixshen/magiclib/impl/render/TextRenderer.java +++ b/magiclib-minecraft-api/src/main/java/top/hendrixshen/magiclib/impl/render/TextRenderer.java @@ -189,7 +189,9 @@ public void render() { while (true) { MultiBufferSource.BufferSource immediate = RenderUtil.getBufferSource(); - //#if MC > 12104 + //#if MC >= 26.1 + //$$ Matrix4f matrix4f = new Matrix4f(Transformation.IDENTITY.getMatrix()); + //#elseif MC > 12104 //$$ Matrix4f matrix4f = new Matrix4f(Transformation.identity().getMatrix()); //#else Matrix4f matrix4f = Transformation.identity().getMatrix(); diff --git a/magiclib-minecraft-api/src/main/java/top/hendrixshen/magiclib/mixin/minecraft/accessor/GameRendererAccessor.java b/magiclib-minecraft-api/src/main/java/top/hendrixshen/magiclib/mixin/minecraft/accessor/GameRendererAccessor.java index dbf504d7..059bc7e3 100644 --- a/magiclib-minecraft-api/src/main/java/top/hendrixshen/magiclib/mixin/minecraft/accessor/GameRendererAccessor.java +++ b/magiclib-minecraft-api/src/main/java/top/hendrixshen/magiclib/mixin/minecraft/accessor/GameRendererAccessor.java @@ -6,8 +6,9 @@ // CHECKSTYLE.OFF: JavadocStyle /** - *
  • mc1.14 ~ mc1.21.5: subproject 1.16.5 (main project) [dummy] <--------
  • - *
  • mc1.21.6+ : subproject 1.21.8
  • + *
  • mc1.14 ~ mc1.21.5 : subproject 1.16.5 (main project) [dummy] <--------
  • + *
  • mc1.21.6 ~ mc1.26.11: subproject 1.21.8
  • + *
  • mc26.1+ : subproject 26.1.2 [dummy]
  • */ // CHECKSTYLE.ON: JavadocStyle @Mixin(DummyClass.class) diff --git a/magiclib-minecraft-api/src/main/java/top/hendrixshen/magiclib/util/minecraft/InfoUtil.java b/magiclib-minecraft-api/src/main/java/top/hendrixshen/magiclib/util/minecraft/InfoUtil.java index 3f29c4e8..3d0daa08 100644 --- a/magiclib-minecraft-api/src/main/java/top/hendrixshen/magiclib/util/minecraft/InfoUtil.java +++ b/magiclib-minecraft-api/src/main/java/top/hendrixshen/magiclib/util/minecraft/InfoUtil.java @@ -21,8 +21,18 @@ public class InfoUtil { public static void displayClientMessage(BaseComponent component, boolean useActionBar) { + //#if MC >= 21.1 + //$$ ValueContainer.ofNullable(Minecraft.getInstance().player).ifPresent(p -> { + //$$ if (useActionBar) { + //$$ p.sendOverlayMessage(component); + //$$ } else { + //$$ p.sendSystemMessage(component); + //$$ } + //$$ }); + //#else ValueContainer.ofNullable(Minecraft.getInstance().player).ifPresent(p -> p.displayClientMessage(component, useActionBar)); + //#endif } public static void displayClientMessage(@NotNull MutableComponentCompat component, boolean useActionBar) { diff --git a/magiclib-minecraft-api/src/main/java/top/hendrixshen/magiclib/util/minecraft/TextUtil.java b/magiclib-minecraft-api/src/main/java/top/hendrixshen/magiclib/util/minecraft/TextUtil.java index 2af1a8cf..86555cce 100644 --- a/magiclib-minecraft-api/src/main/java/top/hendrixshen/magiclib/util/minecraft/TextUtil.java +++ b/magiclib-minecraft-api/src/main/java/top/hendrixshen/magiclib/util/minecraft/TextUtil.java @@ -51,7 +51,15 @@ public static String tp(@NotNull Vec3i pos) { } public static String tp(@NotNull ChunkPos pos) { - return String.format("/tp %d ~ %d", pos.x * 16 + 8, pos.z * 16 + 8); + return String.format("/tp %d ~ %d", + //#if MC >= 26.1 + //$$ pos.x() * 16 + 8, + //$$ pos.z() * 16 + 8 + //#else + pos.x * 16 + 8, + pos.z * 16 + 8 + //#endif + ); } public static @NotNull String tp(Vec3 pos, DimensionWrapper dimensionType) { @@ -90,7 +98,13 @@ public static String coordinate(@NotNull Vec3i pos) { } public static String coordinate(@NotNull ChunkPos pos) { - return String.format("[%d, %d]", pos.x, pos.z); + return String.format("[%d, %d]", + //#if MC >= 26.1 + //$$ pos.x(), pos.z() + //#else + pos.x, pos.z + //#endif + ); } public static String vector(@NotNull Vec3 vec, int digits) { diff --git a/magiclib-minecraft-api/versions/1.14.4-fabric/gradle.properties b/magiclib-minecraft-api/versions/1.14.4-fabric/gradle.properties index 427a99ea..4527780e 100644 --- a/magiclib-minecraft-api/versions/1.14.4-fabric/gradle.properties +++ b/magiclib-minecraft-api/versions/1.14.4-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.14.x -dependencies.minecraft_version=1.14.4 # Publish properties publish.game_version=1.14.4 diff --git a/magiclib-minecraft-api/versions/1.15.2-fabric/gradle.properties b/magiclib-minecraft-api/versions/1.15.2-fabric/gradle.properties index bb48a84c..2d5d19b3 100644 --- a/magiclib-minecraft-api/versions/1.15.2-fabric/gradle.properties +++ b/magiclib-minecraft-api/versions/1.15.2-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.15.x -dependencies.minecraft_version=1.15.2 # Publish properties publish.game_version=1.15.2 diff --git a/magiclib-minecraft-api/versions/1.16.5-fabric/build.gradle b/magiclib-minecraft-api/versions/1.16.5-fabric/build.gradle index 99577bef..1ef2929e 100644 --- a/magiclib-minecraft-api/versions/1.16.5-fabric/build.gradle +++ b/magiclib-minecraft-api/versions/1.16.5-fabric/build.gradle @@ -1,3 +1,5 @@ +import net.fabricmc.loom.util.ModPlatform + plugins { id("checkstyle") id("java") @@ -5,34 +7,19 @@ plugins { id("maven-publish") id("signing") - alias(libs.plugins.architectury.loom) - alias(libs.plugins.replace.token) alias(libs.plugins.yamlang) - alias(libs.plugins.preprocessor) + alias(libs.plugins.replace.token) + id("top.hendrixshen.magiclib.build-logic.magic-loom") id("top.hendrixshen.magiclib.build-logic.process-resources-minecraft") } -String modPlatform = loom.platform.get().toString().toLowerCase() -boolean fabricLike = modPlatform == "fabric" || modPlatform == "quilt" -boolean forgeLike = modPlatform == "forge" || modPlatform == "neoforge" -String projectName = project.name.replace("mc-api-", "") +final int mcVersion = magic.projectDetail.get().getMinecraftVersionNumber() +final ModPlatform modPlatform = magic.projectDetail.get().getPlatform() +final boolean fabricLike = !modPlatform.isForgeLike() +final boolean forgeLike = modPlatform.isForgeLike() +final String projectName = project.name.replace("mc-api-", "") Project betterDev = evaluationDependsOn(":magiclib-better-dev:better-dev-${projectName}") -int mcVersion = 0 - -preprocess { - mcVersion = vars.get().get("MC") - vars.put("MC", mcVersion) - vars.put("FABRIC", modPlatform == "fabric" ? 1 : 0) - vars.put("FORGE", modPlatform == "forge" ? 1 : 0) - vars.put("NEO_FORGE", modPlatform == "neoforge" ? 1 : 0) - vars.put("FABRIC_LIKE", fabricLike ? 1 : 0) - vars.put("FORGE_LIKE", forgeLike ? 1 : 0) -} - -loom { - silentMojangMappingsLicense() -} repositories { mavenLocal() @@ -69,36 +56,21 @@ repositories { } dependencies { - minecraft("com.mojang:minecraft:${project.property("dependencies.minecraft_version")}") - mappings(loom.officialMojangMappings()) - // Lombok compileOnly(libs.lombok) annotationProcessor(libs.lombok) // MagicLib Core - api(annotationProcessor(project(path: ":magiclib-core:${modPlatform}", configuration: "shadow"))) + api(annotationProcessor(project(path: ":magiclib-core:${modPlatform.id()}", configuration: "shadow"))) // Dont publish better dev dependencies. - compileOnly(project(path: betterDev.path, configuration: "namedElements")) - localRuntime(project(path: betterDev.path, configuration: "namedElements")) + compileOnly(project(path: betterDev.path, configuration: magic.projectDetail.get().isUnobfuscatedVersion() ? null : "namedElements")) + localRuntime(project(path: betterDev.path, configuration: magic.projectDetail.get().isUnobfuscatedVersion() ? null : "namedElements")) - if (forgeLike) { + if (forgeLike && !magic.projectDetail.get().isUnobfuscatedVersion()) { compileOnly(project(path: betterDev.path, configuration: "modCompileClasspathMainMapped")) localRuntime(project(path: betterDev.path, configuration: "modRuntimeClasspathMainMapped")) } - - switch (modPlatform) { - case "fabric": - modApi(libs.fabric.loader) - break - case "forge": - forge(project.getExtensions().getByType(VersionCatalogsExtension.class).named("forges").findLibrary("forge-mc${mcVersion}").get()) - break - case "neoforge": - neoForge(project.getExtensions().getByType(VersionCatalogsExtension.class).named("forges").findLibrary("neoforge-mc${mcVersion}").get()) - break - } } loom { @@ -110,24 +82,6 @@ loom { isEnabled.set(false) } - if (fabricLike) { - mixin { - useLegacyMixinAp.set(true) - } - } - - if (modPlatform == "forge") { - forge { - convertAccessWideners.set(true) - mixinConfig("${project.parent.property("mod.id")}.mixins.json") - } - } - - runConfigs.configureEach { - // Dump modified classes automatically. - property("mixin.debug.export", "true") - } - runConfigs.named("client") { programArgs([ "--width", @@ -137,17 +91,6 @@ loom { "--username", project.getOrDefault("ow.game.username", "dev") ]) - vmArgs("-Dmagiclib.debug=true") - vmArgs("-Dmagiclib.dev.qol=true") - vmArgs("-Dmagiclib.dev.qol.dfu.destroy=true") - runDir("run/client") - } - - runConfigs.named("server") { - vmArgs("-Dmagiclib.debug=true") - vmArgs("-Dmagiclib.dev.qol=true") - vmArgs("-Dmagiclib.dev.qol.dfu.destroy=true") - runDir("run/server") } if (fabricLike) { @@ -170,7 +113,7 @@ loom { } base { - setArchivesName("${project.parent.property("mod.archives_base_name")}-mc${project.property("dependencies.minecraft_version")}-${modPlatform}") + setArchivesName("${project.parent.property("mod.archives_base_name")}-mc${magic.projectDetail.get().getMinecraftVersionName()}-${modPlatform.id()}") setGroup("${project.property("mod.maven_group")}") setVersion(project.getModVersion(project.parent)) } @@ -180,29 +123,12 @@ checkstyle { toolVersion = libs.versions.checkstyle.get() } -java { - if (mcVersion > 11204) { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 - } else if (mcVersion > 11701) { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } else if (mcVersion > 11605) { - sourceCompatibility = JavaVersion.VERSION_16 - targetCompatibility = JavaVersion.VERSION_16 - } else { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 - } - - withSourcesJar() - withJavadocJar() -} - -remapJar { - if (forgeLike) { - if (modPlatform == "neoforge") { - atAccessWideners.add("${project.parent.property("mod.id")}.accesswidener") +if (!magic.projectDetail.get().isUnobfuscatedVersion()) { + remapJar { + if (forgeLike) { + if (modPlatform == ModPlatform.NEOFORGE) { + atAccessWideners.add("${project.parent.property("mod.id")}.accesswidener") + } } } } @@ -283,74 +209,6 @@ tasks.withType(Javadoc).configureEach { Javadoc task -> (task.options as CoreJavadocOptions).addStringOption("Xdoclint:none", "-quiet") } -tasks.withType(JavaCompile).configureEach { JavaCompile task -> - task.options.encoding = "UTF-8" - - if (mcVersion > 12005) { - task.options.release.set(21) - } else if (mcVersion > 11701) { - task.options.release.set(17) - } else if (mcVersion > 11605) { - task.options.release.set(16) - } else { - task.options.release.set(8) - task.options.compilerArgs << '-Xlint:-options' - } -} - -// Setup client default settings. -tasks.named("runClient") { - defaultCharacterEncoding = "UTF-8" - - doFirst { - file("${project.projectDir}/run/client/config").mkdirs() - file("${project.projectDir}/run/client/options.txt").with { File f -> - { - if (!f.exists()) { - f.parentFile.mkdirs() - f.withWriter { BufferedWriter writer -> - writer.writeLine("autoJump:false") - writer.writeLine("enableVsync:false") - writer.writeLine("forceUnicodeFont:true") - writer.writeLine("fov:1.0") - - if (mcVersion < 11900) { - writer.writeLine("gamma:16.0") - } - - writer.writeLine("guiScale:3") - writer.writeLine("lang:${Locale.getDefault().toString().toLowerCase()}") - writer.writeLine("maxFps:260") - writer.writeLine("renderDistance:10") - writer.writeLine("soundCategory_master:0.0") - } - } - } - } - } -} - -// Setup server default settings. -tasks.named("runServer") { - defaultCharacterEncoding = "UTF-8" - - doFirst { - // Agree eula before server init. - file("${project.projectDir}/run/server/eula.txt").with { File f -> - { - if (!f.exists()) { - f.parentFile.mkdirs() - f.withWriter { BufferedWriter writer -> - writer.writeLine("#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).") - writer.writeLine("#${new Date()}") - writer.writeLine("eula=true") - } - } - } - } - } -} - tasks.register("cleanRuns", Delete.class) { Delete cleanTask -> dependsOn("cleanRunClient", "cleanRunServer") cleanTask.setGroup("${project.property("mod.id")}") diff --git a/magiclib-minecraft-api/versions/1.17.1-fabric/gradle.properties b/magiclib-minecraft-api/versions/1.17.1-fabric/gradle.properties index 57df3873..1ad18554 100644 --- a/magiclib-minecraft-api/versions/1.17.1-fabric/gradle.properties +++ b/magiclib-minecraft-api/versions/1.17.1-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.17.x -dependencies.minecraft_version=1.17.1 # Publish properties publish.game_version=1.17.1 diff --git a/magiclib-minecraft-api/versions/1.17.1-forge/gradle.properties b/magiclib-minecraft-api/versions/1.17.1-forge/gradle.properties index ea5e8ded..ee9f0b26 100644 --- a/magiclib-minecraft-api/versions/1.17.1-forge/gradle.properties +++ b/magiclib-minecraft-api/versions/1.17.1-forge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.17.x -dependencies.minecraft_version=1.17.1 # Loom Properties loom.platform=forge diff --git a/magiclib-minecraft-api/versions/1.18.2-fabric/gradle.properties b/magiclib-minecraft-api/versions/1.18.2-fabric/gradle.properties index c12724dc..53384465 100644 --- a/magiclib-minecraft-api/versions/1.18.2-fabric/gradle.properties +++ b/magiclib-minecraft-api/versions/1.18.2-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.18.x -dependencies.minecraft_version=1.18.2 # Publish properties publish.game_version=1.18.2 diff --git a/magiclib-minecraft-api/versions/1.18.2-forge/gradle.properties b/magiclib-minecraft-api/versions/1.18.2-forge/gradle.properties index 326535f7..05231e3a 100644 --- a/magiclib-minecraft-api/versions/1.18.2-forge/gradle.properties +++ b/magiclib-minecraft-api/versions/1.18.2-forge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.18.x -dependencies.minecraft_version=1.18.2 # Loom Properties loom.platform=forge diff --git a/magiclib-minecraft-api/versions/1.19.2-fabric/gradle.properties b/magiclib-minecraft-api/versions/1.19.2-fabric/gradle.properties index a3fb9c8c..552e3623 100644 --- a/magiclib-minecraft-api/versions/1.19.2-fabric/gradle.properties +++ b/magiclib-minecraft-api/versions/1.19.2-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.19.2 -dependencies.minecraft_version=1.19.2 # Publish properties publish.game_version=1.19.2 diff --git a/magiclib-minecraft-api/versions/1.19.3-fabric/gradle.properties b/magiclib-minecraft-api/versions/1.19.3-fabric/gradle.properties index 72373ef7..93e03eaa 100644 --- a/magiclib-minecraft-api/versions/1.19.3-fabric/gradle.properties +++ b/magiclib-minecraft-api/versions/1.19.3-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.19.3 -dependencies.minecraft_version=1.19.3 # Publish properties publish.game_version=1.19.3 diff --git a/magiclib-minecraft-api/versions/1.19.4-fabric/gradle.properties b/magiclib-minecraft-api/versions/1.19.4-fabric/gradle.properties index 320f59a0..92c2cbb9 100644 --- a/magiclib-minecraft-api/versions/1.19.4-fabric/gradle.properties +++ b/magiclib-minecraft-api/versions/1.19.4-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.19.4 -dependencies.minecraft_version=1.19.4 # Publish properties publish.game_version=1.19.4 diff --git a/magiclib-minecraft-api/versions/1.19.4-forge/gradle.properties b/magiclib-minecraft-api/versions/1.19.4-forge/gradle.properties index f392fbb3..ac3e4cc2 100644 --- a/magiclib-minecraft-api/versions/1.19.4-forge/gradle.properties +++ b/magiclib-minecraft-api/versions/1.19.4-forge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.19.4 -dependencies.minecraft_version=1.19.4 # Loom Properties loom.platform=forge diff --git a/magiclib-minecraft-api/versions/1.20.1-fabric/gradle.properties b/magiclib-minecraft-api/versions/1.20.1-fabric/gradle.properties index e9a128eb..1dfd8780 100644 --- a/magiclib-minecraft-api/versions/1.20.1-fabric/gradle.properties +++ b/magiclib-minecraft-api/versions/1.20.1-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.20.1 -dependencies.minecraft_version=1.20.1 # Publish properties publish.game_version=1.20.1 diff --git a/magiclib-minecraft-api/versions/1.20.1-fabric/src/main/java/top/hendrixshen/magiclib/util/minecraft/render/RenderContextUtil.java b/magiclib-minecraft-api/versions/1.20.1-fabric/src/main/java/top/hendrixshen/magiclib/util/minecraft/render/RenderContextUtil.java index acae9d1f..1f7d76a8 100644 --- a/magiclib-minecraft-api/versions/1.20.1-fabric/src/main/java/top/hendrixshen/magiclib/util/minecraft/render/RenderContextUtil.java +++ b/magiclib-minecraft-api/versions/1.20.1-fabric/src/main/java/top/hendrixshen/magiclib/util/minecraft/render/RenderContextUtil.java @@ -1,3 +1,4 @@ + package top.hendrixshen.magiclib.util.minecraft.render; import net.minecraft.client.Minecraft; @@ -10,9 +11,11 @@ // CHECKSTYLE.ON: ImportOrder // CHECKSTYLE.OFF: ImportOrder -//#if MC >= 12106 +//#if 26.1 > MC && MC >= 12106 //$$ import top.hendrixshen.magiclib.mixin.minecraft.accessor.GameRendererAccessor; -//#else +//#endif + +//#if MC < 12106 import top.hendrixshen.magiclib.mixin.minecraft.accessor.GuiGraphicsAccessor; //#endif // CHECKSTYLE.ON: ImportOrder @@ -29,7 +32,11 @@ public class RenderContextUtil { //$$ Minecraft minecraft = Minecraft.getInstance(); //$$ return new GuiGraphics( //$$ minecraft, + //$$ //#if MC >= 26.1 + //$$ //$$ minecraft.gameRenderer.getGameRenderState().guiRenderState + //$$ //#else //$$ ((GameRendererAccessor) minecraft.gameRenderer).magiclib$getGuiRenderState() + //$$ //#endif //$$ //#if MC >= 12111 //$$ // CHECKSTYLE.OFF: NoWhitespaceBefore //$$ // CHECKSTYLE.OFF: SeparatorWrap diff --git a/magiclib-minecraft-api/versions/1.20.1-forge/gradle.properties b/magiclib-minecraft-api/versions/1.20.1-forge/gradle.properties index 2d9b6da7..ef3ad4b5 100644 --- a/magiclib-minecraft-api/versions/1.20.1-forge/gradle.properties +++ b/magiclib-minecraft-api/versions/1.20.1-forge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.20.1 -dependencies.minecraft_version=1.20.1 # Loom Properties loom.platform=forge diff --git a/magiclib-minecraft-api/versions/1.20.2-fabric/gradle.properties b/magiclib-minecraft-api/versions/1.20.2-fabric/gradle.properties index 26d3f1c6..29a3786a 100644 --- a/magiclib-minecraft-api/versions/1.20.2-fabric/gradle.properties +++ b/magiclib-minecraft-api/versions/1.20.2-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.20.2 -dependencies.minecraft_version=1.20.2 # Publish properties publish.game_version=1.20.2 diff --git a/magiclib-minecraft-api/versions/1.20.2-neoforge/gradle.properties b/magiclib-minecraft-api/versions/1.20.2-neoforge/gradle.properties index 993bcd12..1b5681de 100644 --- a/magiclib-minecraft-api/versions/1.20.2-neoforge/gradle.properties +++ b/magiclib-minecraft-api/versions/1.20.2-neoforge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=1.20.2 -dependencies.minecraft_version=1.20.2 # Loom Properties loom.platform=neoforge diff --git a/magiclib-minecraft-api/versions/1.20.4-fabric/gradle.properties b/magiclib-minecraft-api/versions/1.20.4-fabric/gradle.properties index daf577e4..4d57b1a2 100644 --- a/magiclib-minecraft-api/versions/1.20.4-fabric/gradle.properties +++ b/magiclib-minecraft-api/versions/1.20.4-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=>=1.20.3- <1.20.5- -dependencies.minecraft_version=1.20.4 # Publish properties publish.game_version=1.20.3,1.20.4 diff --git a/magiclib-minecraft-api/versions/1.20.6-fabric/gradle.properties b/magiclib-minecraft-api/versions/1.20.6-fabric/gradle.properties index 2eac327d..ec53222f 100644 --- a/magiclib-minecraft-api/versions/1.20.6-fabric/gradle.properties +++ b/magiclib-minecraft-api/versions/1.20.6-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=>=1.20.5- <1.20.7- -dependencies.minecraft_version=1.20.6 # Publish properties publish.game_version=1.20.5,1.20.6 diff --git a/magiclib-minecraft-api/versions/1.20.6-neoforge/gradle.properties b/magiclib-minecraft-api/versions/1.20.6-neoforge/gradle.properties index c819bede..d40bc435 100644 --- a/magiclib-minecraft-api/versions/1.20.6-neoforge/gradle.properties +++ b/magiclib-minecraft-api/versions/1.20.6-neoforge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=[1.20.5,1.20.7) -dependencies.minecraft_version=1.20.6 # Loom Properties loom.platform=neoforge diff --git a/magiclib-minecraft-api/versions/1.21.1-fabric/gradle.properties b/magiclib-minecraft-api/versions/1.21.1-fabric/gradle.properties index f4e68e79..b0d20bba 100644 --- a/magiclib-minecraft-api/versions/1.21.1-fabric/gradle.properties +++ b/magiclib-minecraft-api/versions/1.21.1-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=>=1.21- <1.21.2- -dependencies.minecraft_version=1.21.1 # Publish properties publish.game_version=1.21,1.21.1 diff --git a/magiclib-minecraft-api/versions/1.21.1-neoforge/gradle.properties b/magiclib-minecraft-api/versions/1.21.1-neoforge/gradle.properties index 20864165..a537a8de 100644 --- a/magiclib-minecraft-api/versions/1.21.1-neoforge/gradle.properties +++ b/magiclib-minecraft-api/versions/1.21.1-neoforge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=[1.21,1.21.2) -dependencies.minecraft_version=1.21.1 # Loom Properties loom.platform=neoforge diff --git a/magiclib-minecraft-api/versions/1.21.10-fabric/gradle.properties b/magiclib-minecraft-api/versions/1.21.10-fabric/gradle.properties index c4f8926c..de224620 100644 --- a/magiclib-minecraft-api/versions/1.21.10-fabric/gradle.properties +++ b/magiclib-minecraft-api/versions/1.21.10-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=>=1.21.9- <1.21.11- -dependencies.minecraft_version=1.21.10 # Publish properties publish.game_version=1.21.9,1.21.10 diff --git a/magiclib-minecraft-api/versions/1.21.10-neoforge/gradle.properties b/magiclib-minecraft-api/versions/1.21.10-neoforge/gradle.properties index 0ad797d6..0eaa34a6 100644 --- a/magiclib-minecraft-api/versions/1.21.10-neoforge/gradle.properties +++ b/magiclib-minecraft-api/versions/1.21.10-neoforge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=[1.21.9,1.21.11) -dependencies.minecraft_version=1.21.10 # Loom Properties loom.platform=neoforge diff --git a/magiclib-minecraft-api/versions/1.21.11-fabric/gradle.properties b/magiclib-minecraft-api/versions/1.21.11-fabric/gradle.properties index 329c8353..9a3a03e2 100644 --- a/magiclib-minecraft-api/versions/1.21.11-fabric/gradle.properties +++ b/magiclib-minecraft-api/versions/1.21.11-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=>=1.21.11- <1.21.12- -dependencies.minecraft_version=1.21.11 # Publish properties publish.game_version=1.21.11 diff --git a/magiclib-minecraft-api/versions/1.21.11-neoforge/gradle.properties b/magiclib-minecraft-api/versions/1.21.11-neoforge/gradle.properties index 37f5ed7e..af0c9f58 100644 --- a/magiclib-minecraft-api/versions/1.21.11-neoforge/gradle.properties +++ b/magiclib-minecraft-api/versions/1.21.11-neoforge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=[1.21.11,1.21.12) -dependencies.minecraft_version=1.21.11 # Loom Properties loom.platform=neoforge diff --git a/magiclib-minecraft-api/versions/1.21.3-fabric/gradle.properties b/magiclib-minecraft-api/versions/1.21.3-fabric/gradle.properties index c18f08af..c4a90a37 100644 --- a/magiclib-minecraft-api/versions/1.21.3-fabric/gradle.properties +++ b/magiclib-minecraft-api/versions/1.21.3-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=>=1.21.2- <1.21.4- -dependencies.minecraft_version=1.21.3 # Publish properties publish.game_version=1.21.2,1.21.3 diff --git a/magiclib-minecraft-api/versions/1.21.3-neoforge/gradle.properties b/magiclib-minecraft-api/versions/1.21.3-neoforge/gradle.properties index 35dafa2b..887ab862 100644 --- a/magiclib-minecraft-api/versions/1.21.3-neoforge/gradle.properties +++ b/magiclib-minecraft-api/versions/1.21.3-neoforge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=[1.21.2,1.21.4) -dependencies.minecraft_version=1.21.3 # Loom Properties loom.platform=neoforge diff --git a/magiclib-minecraft-api/versions/1.21.4-fabric/gradle.properties b/magiclib-minecraft-api/versions/1.21.4-fabric/gradle.properties index 58d4eb2d..dbfd2ac5 100644 --- a/magiclib-minecraft-api/versions/1.21.4-fabric/gradle.properties +++ b/magiclib-minecraft-api/versions/1.21.4-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=>=1.21.4- <1.21.5- -dependencies.minecraft_version=1.21.4 # Publish properties publish.game_version=1.21.4 diff --git a/magiclib-minecraft-api/versions/1.21.4-neoforge/gradle.properties b/magiclib-minecraft-api/versions/1.21.4-neoforge/gradle.properties index 297ccd69..d96b0d98 100644 --- a/magiclib-minecraft-api/versions/1.21.4-neoforge/gradle.properties +++ b/magiclib-minecraft-api/versions/1.21.4-neoforge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=[1.21.4,1.21.5) -dependencies.minecraft_version=1.21.4 # Loom Properties loom.platform=neoforge diff --git a/magiclib-minecraft-api/versions/1.21.5-fabric/gradle.properties b/magiclib-minecraft-api/versions/1.21.5-fabric/gradle.properties index 9566876b..dfc53d0c 100644 --- a/magiclib-minecraft-api/versions/1.21.5-fabric/gradle.properties +++ b/magiclib-minecraft-api/versions/1.21.5-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=>=1.21.5- <1.21.6- -dependencies.minecraft_version=1.21.5 # Publish properties publish.game_version=1.21.5 diff --git a/magiclib-minecraft-api/versions/1.21.5-fabric/src/main/java/top/hendrixshen/magiclib/impl/render/context/RenderGlobal.java b/magiclib-minecraft-api/versions/1.21.5-fabric/src/main/java/top/hendrixshen/magiclib/impl/render/context/RenderGlobal.java index 76e0dae5..f9e8061b 100644 --- a/magiclib-minecraft-api/versions/1.21.5-fabric/src/main/java/top/hendrixshen/magiclib/impl/render/context/RenderGlobal.java +++ b/magiclib-minecraft-api/versions/1.21.5-fabric/src/main/java/top/hendrixshen/magiclib/impl/render/context/RenderGlobal.java @@ -29,6 +29,10 @@ import com.mojang.blaze3d.platform.SourceFactor; // CHECKSTYLE.OFF: ImportOrder +//#if MC >= 26.1 +//$$ import com.mojang.blaze3d.pipeline.ColorTargetState; +//#endif + //#if MC < 12106 import com.mojang.blaze3d.systems.RenderSystem; //#endif @@ -92,7 +96,15 @@ public static void blendFuncForAlpha() { } public static void colorMask(boolean red, boolean green, boolean blue, boolean alpha) { + //#if MC >= 26.1 + //$$ int colorMask = (red ? ColorTargetState.WRITE_RED : ColorTargetState.WRITE_NONE) + //$$ + (green ? ColorTargetState.WRITE_GREEN : ColorTargetState.WRITE_NONE) + //$$ + (blue ? ColorTargetState.WRITE_BLUE : ColorTargetState.WRITE_NONE) + //$$ + (alpha ? ColorTargetState.WRITE_ALPHA : ColorTargetState.WRITE_NONE); + //$$ GlStateManager._colorMask(colorMask); + //#else GlStateManager._colorMask(red, green, blue, alpha); + //#endif } //#if MC < 12106 diff --git a/magiclib-minecraft-api/versions/1.21.5-neoforge/gradle.properties b/magiclib-minecraft-api/versions/1.21.5-neoforge/gradle.properties index 575dca5c..c75891ac 100644 --- a/magiclib-minecraft-api/versions/1.21.5-neoforge/gradle.properties +++ b/magiclib-minecraft-api/versions/1.21.5-neoforge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=[1.21.5,1.21.6) -dependencies.minecraft_version=1.21.5 # Loom Properties loom.platform=neoforge diff --git a/magiclib-minecraft-api/versions/1.21.8-fabric/gradle.properties b/magiclib-minecraft-api/versions/1.21.8-fabric/gradle.properties index 6623ac55..1a842ed2 100644 --- a/magiclib-minecraft-api/versions/1.21.8-fabric/gradle.properties +++ b/magiclib-minecraft-api/versions/1.21.8-fabric/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=>=1.21.6- <1.21.9- -dependencies.minecraft_version=1.21.8 # Publish properties publish.game_version=1.21.6,1.21.7,1.21.8 diff --git a/magiclib-minecraft-api/versions/1.21.8-fabric/src/main/java/top/hendrixshen/magiclib/impl/render/context/InWorldGuiDrawer.java b/magiclib-minecraft-api/versions/1.21.8-fabric/src/main/java/top/hendrixshen/magiclib/impl/render/context/InWorldGuiDrawer.java index 07a8c493..6c10d4da 100644 --- a/magiclib-minecraft-api/versions/1.21.8-fabric/src/main/java/top/hendrixshen/magiclib/impl/render/context/InWorldGuiDrawer.java +++ b/magiclib-minecraft-api/versions/1.21.8-fabric/src/main/java/top/hendrixshen/magiclib/impl/render/context/InWorldGuiDrawer.java @@ -26,10 +26,17 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.render.GuiRenderer; -import net.minecraft.client.gui.render.state.GuiRenderState; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.fog.FogRenderer; +// CHECKSTYLE.OFF: ImportOrder +//#if MC >= 26.1 +//$$ import net.minecraft.client.renderer.state.gui.GuiRenderState; +//#else +import net.minecraft.client.gui.render.state.GuiRenderState; +//#endif +// CHECKSTYLE.ON: ImportOrder + import top.hendrixshen.magiclib.api.fake.render.InWorldGuiRendererHook; import top.hendrixshen.magiclib.util.function.MemoizedSupplier; import top.hendrixshen.magiclib.util.minecraft.render.RenderUtil; @@ -37,7 +44,7 @@ import java.util.List; /** - * Reference to TweakerMore. + * Reference to TweakerMore. * *
  • mc1.14 ~ mc1.21.5: subproject 1.16.5 (main project)
  • *
  • mc1.21.6+ : subproject 1.21.8 <--------
  • @@ -96,7 +103,13 @@ public void render() { RenderSystem.backupProjectionMatrix(); this.guiRenderer.render(this.fogRenderer.getBuffer(FogRenderer.FogMode.NONE)); RenderSystem.restoreProjectionMatrix(); + + //#if MC >= 26.1 + //$$ this.guiRenderer.endFrame(); + //#else this.guiRenderer.incrementFrameNumber(); + //#endif + this.fogRenderer.endFrame(); this.guiState.reset(); } diff --git a/magiclib-minecraft-api/versions/1.21.8-fabric/src/main/java/top/hendrixshen/magiclib/mixin/minecraft/accessor/GameRendererAccessor.java b/magiclib-minecraft-api/versions/1.21.8-fabric/src/main/java/top/hendrixshen/magiclib/mixin/minecraft/accessor/GameRendererAccessor.java index 73692ad2..fd0fdeb2 100644 --- a/magiclib-minecraft-api/versions/1.21.8-fabric/src/main/java/top/hendrixshen/magiclib/mixin/minecraft/accessor/GameRendererAccessor.java +++ b/magiclib-minecraft-api/versions/1.21.8-fabric/src/main/java/top/hendrixshen/magiclib/mixin/minecraft/accessor/GameRendererAccessor.java @@ -8,8 +8,9 @@ // CHECKSTYLE.OFF: JavadocStyle /** - *
  • mc1.14 ~ mc1.21.5: subproject 1.16.5 (main project) [dummy]
  • - *
  • mc1.21.6+ : subproject 1.21.8 <--------
  • + *
  • mc1.14 ~ mc1.21.5 : subproject 1.16.5 (main project) [dummy]
  • + *
  • mc1.21.6 ~ mc1.26.11: subproject 1.21.8 <--------
  • + *
  • mc26.1+ : subproject 26.1.2 [dummy]
  • */ // CHECKSTYLE.ON: JavadocStyle @Mixin(GameRenderer.class) diff --git a/magiclib-minecraft-api/versions/1.21.8-fabric/src/main/java/top/hendrixshen/magiclib/mixin/minecraft/render/context/GuiRendererMixin.java b/magiclib-minecraft-api/versions/1.21.8-fabric/src/main/java/top/hendrixshen/magiclib/mixin/minecraft/render/context/GuiRendererMixin.java index 7fd7ce22..22060c7f 100644 --- a/magiclib-minecraft-api/versions/1.21.8-fabric/src/main/java/top/hendrixshen/magiclib/mixin/minecraft/render/context/GuiRendererMixin.java +++ b/magiclib-minecraft-api/versions/1.21.8-fabric/src/main/java/top/hendrixshen/magiclib/mixin/minecraft/render/context/GuiRendererMixin.java @@ -24,7 +24,6 @@ import com.mojang.blaze3d.ProjectionType; import com.mojang.blaze3d.buffers.GpuBufferSlice; -import com.mojang.blaze3d.platform.Window; import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.client.gui.render.GuiRenderer; @@ -35,10 +34,9 @@ import top.hendrixshen.magiclib.api.fake.render.InWorldGuiRendererHook; import top.hendrixshen.magiclib.libs.com.llamalad7.mixinextras.injector.v2.WrapWithCondition; -import top.hendrixshen.magiclib.libs.com.llamalad7.mixinextras.sugar.Local; /** - * Reference to TweakerMore. + * Reference to TweakerMore. * *
  • mc1.14 ~ mc1.21.5: subproject 1.16.5 (main project) [dummy]
  • *
  • mc1.21.6+ : subproject 1.21.8 <--------
  • @@ -59,7 +57,7 @@ public abstract class GuiRendererMixin implements InWorldGuiRendererHook { value = "INVOKE", target = "Lcom/mojang/blaze3d/systems/RenderSystem;setProjectionMatrix(Lcom/mojang/blaze3d/buffers/GpuBufferSlice;Lcom/mojang/blaze3d/ProjectionType;)V") ) - private boolean skipSetProjectionMatrixForInWorldGuiRendering(GpuBufferSlice gpuBufferSlice, ProjectionType projectionType, @Local Window window) { + private boolean skipSetProjectionMatrixForInWorldGuiRendering(GpuBufferSlice gpuBufferSlice, ProjectionType projectionType) { return !this.magiclib$inWorldGuiRender; } diff --git a/magiclib-minecraft-api/versions/1.21.8-neoforge/gradle.properties b/magiclib-minecraft-api/versions/1.21.8-neoforge/gradle.properties index 8c3487c3..b75ea850 100644 --- a/magiclib-minecraft-api/versions/1.21.8-neoforge/gradle.properties +++ b/magiclib-minecraft-api/versions/1.21.8-neoforge/gradle.properties @@ -1,6 +1,5 @@ # Dependency Versions dependencies.minecraft_dependency=[1.21.6,1.21.9) -dependencies.minecraft_version=1.21.8 # Loom Properties loom.platform=neoforge diff --git a/magiclib-minecraft-api/versions/26.1.2-fabric/gradle.properties b/magiclib-minecraft-api/versions/26.1.2-fabric/gradle.properties new file mode 100644 index 00000000..18056347 --- /dev/null +++ b/magiclib-minecraft-api/versions/26.1.2-fabric/gradle.properties @@ -0,0 +1,6 @@ +# Dependency Versions +dependencies.minecraft_dependency=~26.1- + +# Publish properties +publish.game_version=26.1,26.1.1,26.1.2 +publish.dependencies_list= diff --git a/magiclib-minecraft-api/versions/26.1.2-fabric/src/main/java/top/hendrixshen/magiclib/mixin/minecraft/accessor/GameRendererAccessor.java b/magiclib-minecraft-api/versions/26.1.2-fabric/src/main/java/top/hendrixshen/magiclib/mixin/minecraft/accessor/GameRendererAccessor.java new file mode 100644 index 00000000..1de8d7a3 --- /dev/null +++ b/magiclib-minecraft-api/versions/26.1.2-fabric/src/main/java/top/hendrixshen/magiclib/mixin/minecraft/accessor/GameRendererAccessor.java @@ -0,0 +1,16 @@ +package top.hendrixshen.magiclib.mixin.minecraft.accessor; + +import org.spongepowered.asm.mixin.Mixin; + +import top.hendrixshen.magiclib.api.preprocess.DummyClass; + +// CHECKSTYLE.OFF: JavadocStyle +/** + *
  • mc1.14 ~ mc1.21.5 : subproject 1.16.5 (main project) [dummy]
  • + *
  • mc1.21.6 ~ mc1.26.11: subproject 1.21.8
  • + *
  • mc26.1+ : subproject 26.1.2 [dummy] <--------
  • + */ +// CHECKSTYLE.ON: JavadocStyle +@Mixin(DummyClass.class) +public interface GameRendererAccessor { +} diff --git a/magiclib-minecraft-api/versions/26.1.2-fabric/src/main/resources/magiclib-minecraft-api.accesswidener b/magiclib-minecraft-api/versions/26.1.2-fabric/src/main/resources/magiclib-minecraft-api.accesswidener new file mode 100644 index 00000000..18c4ff05 --- /dev/null +++ b/magiclib-minecraft-api/versions/26.1.2-fabric/src/main/resources/magiclib-minecraft-api.accesswidener @@ -0,0 +1,3 @@ +accessWidener v2 official +accessible class net/minecraft/server/packs/FilePackResources$SharedZipFileAccess +accessible field net/minecraft/server/packs/FilePackResources$SharedZipFileAccess file Ljava/io/File; diff --git a/magiclib-minecraft-api/versions/26.1.2-neoforge/gradle.properties b/magiclib-minecraft-api/versions/26.1.2-neoforge/gradle.properties new file mode 100644 index 00000000..4c21c955 --- /dev/null +++ b/magiclib-minecraft-api/versions/26.1.2-neoforge/gradle.properties @@ -0,0 +1,9 @@ +# Dependency Versions +dependencies.minecraft_dependency=[26.1,26.2) + +# Loom Properties +loom.platform=neoforge + +# Publish properties +publish.game_version=26.1,26.1.1,26.1.2 +publish.dependencies_list= diff --git a/magiclib-minecraft-api/versions/26.1.2-neoforge/src/main/resources/magiclib-minecraft-api.accesswidener b/magiclib-minecraft-api/versions/26.1.2-neoforge/src/main/resources/magiclib-minecraft-api.accesswidener new file mode 100644 index 00000000..18c4ff05 --- /dev/null +++ b/magiclib-minecraft-api/versions/26.1.2-neoforge/src/main/resources/magiclib-minecraft-api.accesswidener @@ -0,0 +1,3 @@ +accessWidener v2 official +accessible class net/minecraft/server/packs/FilePackResources$SharedZipFileAccess +accessible field net/minecraft/server/packs/FilePackResources$SharedZipFileAccess file Ljava/io/File; diff --git a/magiclib-minecraft-api/versions/mapping-1.17.1-fabric-forge.txt b/magiclib-minecraft-api/versions/mapping-1.17.1-fabric-forge.txt deleted file mode 100644 index 3b776e6c..00000000 --- a/magiclib-minecraft-api/versions/mapping-1.17.1-fabric-forge.txt +++ /dev/null @@ -1,3 +0,0 @@ -net.fabricmc.api.EnvType net.minecraftforge.api.distmarker.Dist -net.fabricmc.api.Environment net.minecraftforge.api.distmarker.OnlyIn -net.fabricmc.api.EnvType SERVER net.minecraftforge.api.distmarker.Dist DEDICATED_SERVER diff --git a/magiclib-minecraft-api/versions/mapping-1.18.2-fabric-forge.txt b/magiclib-minecraft-api/versions/mapping-1.18.2-fabric-forge.txt deleted file mode 100644 index 3b776e6c..00000000 --- a/magiclib-minecraft-api/versions/mapping-1.18.2-fabric-forge.txt +++ /dev/null @@ -1,3 +0,0 @@ -net.fabricmc.api.EnvType net.minecraftforge.api.distmarker.Dist -net.fabricmc.api.Environment net.minecraftforge.api.distmarker.OnlyIn -net.fabricmc.api.EnvType SERVER net.minecraftforge.api.distmarker.Dist DEDICATED_SERVER diff --git a/magiclib-minecraft-api/versions/mapping-1.19.4-fabric-forge.txt b/magiclib-minecraft-api/versions/mapping-1.19.4-fabric-forge.txt deleted file mode 100644 index 3b776e6c..00000000 --- a/magiclib-minecraft-api/versions/mapping-1.19.4-fabric-forge.txt +++ /dev/null @@ -1,3 +0,0 @@ -net.fabricmc.api.EnvType net.minecraftforge.api.distmarker.Dist -net.fabricmc.api.Environment net.minecraftforge.api.distmarker.OnlyIn -net.fabricmc.api.EnvType SERVER net.minecraftforge.api.distmarker.Dist DEDICATED_SERVER diff --git a/magiclib-minecraft-api/versions/mapping-1.20.1-fabric-forge.txt b/magiclib-minecraft-api/versions/mapping-1.20.1-fabric-forge.txt deleted file mode 100644 index 3b776e6c..00000000 --- a/magiclib-minecraft-api/versions/mapping-1.20.1-fabric-forge.txt +++ /dev/null @@ -1,3 +0,0 @@ -net.fabricmc.api.EnvType net.minecraftforge.api.distmarker.Dist -net.fabricmc.api.Environment net.minecraftforge.api.distmarker.OnlyIn -net.fabricmc.api.EnvType SERVER net.minecraftforge.api.distmarker.Dist DEDICATED_SERVER diff --git a/magiclib-minecraft-api/versions/mapping-1.20.2-fabric-neoforge.txt b/magiclib-minecraft-api/versions/mapping-1.20.2-fabric-neoforge.txt deleted file mode 100644 index d2217f91..00000000 --- a/magiclib-minecraft-api/versions/mapping-1.20.2-fabric-neoforge.txt +++ /dev/null @@ -1,3 +0,0 @@ -net.fabricmc.api.EnvType net.neoforged.api.distmarker.Dist -net.fabricmc.api.Environment net.neoforged.api.distmarker.OnlyIn -net.fabricmc.api.EnvType SERVER net.neoforged.api.distmarker.Dist DEDICATED_SERVER diff --git a/magiclib-minecraft-api/versions/mapping-1.20.6-fabric-neoforge.txt b/magiclib-minecraft-api/versions/mapping-1.20.6-fabric-neoforge.txt deleted file mode 100644 index d2217f91..00000000 --- a/magiclib-minecraft-api/versions/mapping-1.20.6-fabric-neoforge.txt +++ /dev/null @@ -1,3 +0,0 @@ -net.fabricmc.api.EnvType net.neoforged.api.distmarker.Dist -net.fabricmc.api.Environment net.neoforged.api.distmarker.OnlyIn -net.fabricmc.api.EnvType SERVER net.neoforged.api.distmarker.Dist DEDICATED_SERVER diff --git a/magiclib-minecraft-api/versions/mapping-1.21.1-fabric-neoforge.txt b/magiclib-minecraft-api/versions/mapping-1.21.1-fabric-neoforge.txt deleted file mode 100644 index d2217f91..00000000 --- a/magiclib-minecraft-api/versions/mapping-1.21.1-fabric-neoforge.txt +++ /dev/null @@ -1,3 +0,0 @@ -net.fabricmc.api.EnvType net.neoforged.api.distmarker.Dist -net.fabricmc.api.Environment net.neoforged.api.distmarker.OnlyIn -net.fabricmc.api.EnvType SERVER net.neoforged.api.distmarker.Dist DEDICATED_SERVER diff --git a/magiclib-minecraft-api/versions/mapping-1.21.10-fabric-neoforge.txt b/magiclib-minecraft-api/versions/mapping-1.21.10-fabric-neoforge.txt deleted file mode 100644 index d2217f91..00000000 --- a/magiclib-minecraft-api/versions/mapping-1.21.10-fabric-neoforge.txt +++ /dev/null @@ -1,3 +0,0 @@ -net.fabricmc.api.EnvType net.neoforged.api.distmarker.Dist -net.fabricmc.api.Environment net.neoforged.api.distmarker.OnlyIn -net.fabricmc.api.EnvType SERVER net.neoforged.api.distmarker.Dist DEDICATED_SERVER diff --git a/magiclib-minecraft-api/versions/mapping-1.21.3-fabric-neoforge.txt b/magiclib-minecraft-api/versions/mapping-1.21.3-fabric-neoforge.txt deleted file mode 100644 index d2217f91..00000000 --- a/magiclib-minecraft-api/versions/mapping-1.21.3-fabric-neoforge.txt +++ /dev/null @@ -1,3 +0,0 @@ -net.fabricmc.api.EnvType net.neoforged.api.distmarker.Dist -net.fabricmc.api.Environment net.neoforged.api.distmarker.OnlyIn -net.fabricmc.api.EnvType SERVER net.neoforged.api.distmarker.Dist DEDICATED_SERVER diff --git a/magiclib-minecraft-api/versions/mapping-1.21.4-fabric-neoforge.txt b/magiclib-minecraft-api/versions/mapping-1.21.4-fabric-neoforge.txt deleted file mode 100644 index d2217f91..00000000 --- a/magiclib-minecraft-api/versions/mapping-1.21.4-fabric-neoforge.txt +++ /dev/null @@ -1,3 +0,0 @@ -net.fabricmc.api.EnvType net.neoforged.api.distmarker.Dist -net.fabricmc.api.Environment net.neoforged.api.distmarker.OnlyIn -net.fabricmc.api.EnvType SERVER net.neoforged.api.distmarker.Dist DEDICATED_SERVER diff --git a/magiclib-minecraft-api/versions/mapping-1.21.5-fabric-neoforge.txt b/magiclib-minecraft-api/versions/mapping-1.21.5-fabric-neoforge.txt deleted file mode 100644 index d2217f91..00000000 --- a/magiclib-minecraft-api/versions/mapping-1.21.5-fabric-neoforge.txt +++ /dev/null @@ -1,3 +0,0 @@ -net.fabricmc.api.EnvType net.neoforged.api.distmarker.Dist -net.fabricmc.api.Environment net.neoforged.api.distmarker.OnlyIn -net.fabricmc.api.EnvType SERVER net.neoforged.api.distmarker.Dist DEDICATED_SERVER diff --git a/magiclib-minecraft-api/versions/mapping-1.21.8-fabric-neoforge.txt b/magiclib-minecraft-api/versions/mapping-1.21.8-fabric-neoforge.txt deleted file mode 100644 index d2217f91..00000000 --- a/magiclib-minecraft-api/versions/mapping-1.21.8-fabric-neoforge.txt +++ /dev/null @@ -1,3 +0,0 @@ -net.fabricmc.api.EnvType net.neoforged.api.distmarker.Dist -net.fabricmc.api.Environment net.neoforged.api.distmarker.OnlyIn -net.fabricmc.api.EnvType SERVER net.neoforged.api.distmarker.Dist DEDICATED_SERVER diff --git a/magiclib-minecraft-api/versions/mapping-fabric-1.21.11-26.1.2.txt b/magiclib-minecraft-api/versions/mapping-fabric-1.21.11-26.1.2.txt new file mode 100644 index 00000000..bc85e054 --- /dev/null +++ b/magiclib-minecraft-api/versions/mapping-fabric-1.21.11-26.1.2.txt @@ -0,0 +1,2 @@ +net.minecraft.client.gui.GuiGraphics net.minecraft.client.gui.GuiGraphicsExtractor +net.minecraft.client.gui.render.state.GuiRenderState net.minecraft.client.renderer.state.gui.GuiRenderState diff --git a/magiclib-wrapper/fabric/build.gradle b/magiclib-wrapper/fabric/build.gradle index f0951f5d..14d0511a 100644 --- a/magiclib-wrapper/fabric/build.gradle +++ b/magiclib-wrapper/fabric/build.gradle @@ -195,13 +195,23 @@ subprojects { } tasks.register("copyPublishModule", Copy.class) { Copy copyTask -> - copyTask.dependsOn(submodules.collect { it.tasks.remapJar }) + copyTask.dependsOn(submodules.collect { + if (it.magic.projectDetail.get().isUnobfuscatedVersion()) { + it.tasks.jar + } else { + it.tasks.remapJar + } + }) copyTask.setGroup("${project.property("mod.id")}") delete(project.layout.buildDirectory.file("tmp/submods/publish")) from { submodules_publish.collect { - it.tasks.remapJar.outputs.files + if (it.magic.projectDetail.get().isUnobfuscatedVersion()) { + it.tasks.jar.outputs.files + } else { + it.tasks.remapJar.outputs.files + } } } @@ -209,13 +219,23 @@ subprojects { } tasks.register("copyUnpublishModule", Copy.class) { Copy copyTask -> - copyTask.dependsOn(submodules.collect { it.tasks.remapJar }) + copyTask.dependsOn(submodules.collect { + if (it.magic.projectDetail.get().isUnobfuscatedVersion()) { + it.tasks.jar + } else { + it.tasks.remapJar + } + }) copyTask.setGroup("${project.property("mod.id")}") delete(project.layout.buildDirectory.file("tmp/submods/unpublish")) from { submodules_unpublish.collect { - it.tasks.remapJar.outputs.files + if (it.magic.projectDetail.get().isUnobfuscatedVersion()) { + it.tasks.jar.outputs.files + } else { + it.tasks.remapJar.outputs.files + } } } @@ -257,7 +277,7 @@ abstract class ProcessMetadata extends DefaultTask { this.subProjects.get().forEach { mc_condition.add("${it.property("dependencies.minecraft_dependency")}") - jars.add(["file": "META-INF/jars/${it.parent.property("mod.archives_base_name")}-mc${it.property("dependencies.minecraft_version")}-${it.loom.platform.get().toString().toLowerCase()}-${it.version}.jar"]) + jars.add(["file": "META-INF/jars/${it.parent.property("mod.archives_base_name")}-mc${it.magic.projectDetail.get().getMinecraftVersionName()}-${it.loom.platform.get().toString().toLowerCase()}-${it.version}.jar"]) } diff --git a/magiclib-wrapper/forge/build.gradle b/magiclib-wrapper/forge/build.gradle index 14f64451..cdd8b6c9 100644 --- a/magiclib-wrapper/forge/build.gradle +++ b/magiclib-wrapper/forge/build.gradle @@ -4,7 +4,7 @@ import org.apache.groovy.toml.util.TomlConverter buildscript { dependencies { - classpath("org.apache.groovy:groovy-toml:5.0.5") + classpath("org.apache.groovy:groovy-toml:5.0.6") } } @@ -241,13 +241,23 @@ subprojects { } tasks.register("copyPublishModule", Copy.class) { Copy copyTask -> - copyTask.dependsOn(submodules.collect { it.tasks.remapJar }) + copyTask.dependsOn(submodules.collect { + if (it.magic.projectDetail.get().isUnobfuscatedVersion()) { + it.tasks.jar + } else { + it.tasks.remapJar + } + }) copyTask.setGroup("${project.property("mod.id")}") delete(project.layout.buildDirectory.file("tmp/submods/publish")) from { submodules_publish.collect { - it.tasks.remapJar.outputs.files + if (it.magic.projectDetail.get().isUnobfuscatedVersion()) { + it.tasks.jar.outputs.files + } else { + it.tasks.remapJar.outputs.files + } } } @@ -255,13 +265,23 @@ subprojects { } tasks.register("copyUnpublishModule", Copy.class) { Copy copyTask -> - copyTask.dependsOn(submodules.collect { it.tasks.remapJar }) + copyTask.dependsOn(submodules.collect { + if (it.magic.projectDetail.get().isUnobfuscatedVersion()) { + it.tasks.jar + } else { + it.tasks.remapJar + } + }) copyTask.setGroup("${project.property("mod.id")}") delete(project.layout.buildDirectory.file("tmp/submods/unpublish")) from { submodules_unpublish.collect { - it.tasks.remapJar.outputs.files + if (it.magic.projectDetail.get().isUnobfuscatedVersion()) { + it.tasks.jar.outputs.files + } else { + it.tasks.remapJar.outputs.files + } } } diff --git a/magiclib-wrapper/neoforge/build.gradle b/magiclib-wrapper/neoforge/build.gradle index a20d97e8..5c0cddb5 100644 --- a/magiclib-wrapper/neoforge/build.gradle +++ b/magiclib-wrapper/neoforge/build.gradle @@ -4,7 +4,7 @@ import org.apache.groovy.toml.util.TomlConverter buildscript { dependencies { - classpath("org.apache.groovy:groovy-toml:5.0.5") + classpath("org.apache.groovy:groovy-toml:5.0.6") } } @@ -245,13 +245,23 @@ subprojects { } tasks.register("copyPublishModule", Copy.class) { Copy copyTask -> - copyTask.dependsOn(submodules.collect { it.tasks.remapJar }) + copyTask.dependsOn(submodules.collect { + if (it.magic.projectDetail.get().isUnobfuscatedVersion()) { + it.tasks.jar + } else { + it.tasks.remapJar + } + }) copyTask.setGroup("${project.property("mod.id")}") delete(project.layout.buildDirectory.file("tmp/submods/publish")) from { submodules_publish.collect { - it.tasks.remapJar.outputs.files + if (it.magic.projectDetail.get().isUnobfuscatedVersion()) { + it.tasks.jar.outputs.files + } else { + it.tasks.remapJar.outputs.files + } } } @@ -259,13 +269,23 @@ subprojects { } tasks.register("copyUnpublishModule", Copy.class) { Copy copyTask -> - copyTask.dependsOn(submodules.collect { it.tasks.remapJar }) + copyTask.dependsOn(submodules.collect { + if (it.magic.projectDetail.get().isUnobfuscatedVersion()) { + it.tasks.jar + } else { + it.tasks.remapJar + } + }) copyTask.setGroup("${project.property("mod.id")}") delete(project.layout.buildDirectory.file("tmp/submods/unpublish")) from { submodules_unpublish.collect { - it.tasks.remapJar.outputs.files + if (it.magic.projectDetail.get().isUnobfuscatedVersion()) { + it.tasks.jar.outputs.files + } else { + it.tasks.remapJar.outputs.files + } } } diff --git a/settings.gradle b/settings.gradle index 233dc91b..af04021f 100644 --- a/settings.gradle +++ b/settings.gradle @@ -12,11 +12,6 @@ pluginManagement { url = "https://maven.hendrixshen.moe/mirror" } - maven { - name = "Architectury" - url = "https://maven.architectury.dev" - } - maven { name = "MinecraftForge" url = "https://files.minecraftforge.net/maven" @@ -112,16 +107,26 @@ for (String module_name : settings.get("projects").keySet()) { } for (String ver : versions) { - Matcher matcher = Pattern.compile("^((?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)(?:_\\w+)*)-(fabric|forge|neoforge|quilt)?\$").matcher(ver) + Matcher matcher = Pattern.compile("^((?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)(?:\\.(?:0|[1-9]\\d*))?(?:_\\w+)*)-(fabric|forge|neoforge|quilt)?\$").matcher(ver) if (!matcher.matches()) { throw new IllegalArgumentException("Invalid submodule name: ${ver}") } + File project_dir = file("${module_name}/versions/${ver}") + + if (!project_dir.exists()) { + if (!project_dir.mkdirs()) { + throw new IllegalArgumentException("Failed to create missing submodule directory: ${project_dir.absolutePath}") + } + + logger.warn("Creating missing submodule directory: ${project_dir.absolutePath}") + } + String project_name = "${module_name}:${prefix}-${ver}" include("${project_name}") ProjectDescriptor proj = project(":${project_name}") - proj.setProjectDir(file("${module_name}/versions/${ver}")) + proj.setProjectDir(project_dir) proj.setBuildFileName("../${mainProject}/build.gradle") wrappers.computeIfAbsent(matcher.group(2), key -> new HashSet<>()).add(matcher.group(1)) } diff --git a/settings.json b/settings.json index e6a61495..5bf2f866 100644 --- a/settings.json +++ b/settings.json @@ -22,6 +22,7 @@ "1.21.8-fabric", "1.21.10-fabric", "1.21.11-fabric", + "26.1.2-fabric", "1.17.1-forge", "1.18.2-forge", @@ -36,7 +37,8 @@ "1.21.5-neoforge", "1.21.8-neoforge", "1.21.10-neoforge", - "1.21.11-neoforge" + "1.21.11-neoforge", + "26.1.2-neoforge" ] }, "magiclib-legacy-compat": { @@ -60,7 +62,8 @@ "1.21.5-fabric", "1.21.8-fabric", "1.21.10-fabric", - "1.21.11-fabric" + "1.21.11-fabric", + "26.1.2-fabric" ] }, "magiclib-malilib-extra": { @@ -85,6 +88,7 @@ "1.21.8-fabric", "1.21.10-fabric", "1.21.11-fabric", + "26.1.2-fabric", "1.17.1-forge", "1.18.2-forge", @@ -98,7 +102,8 @@ "1.21.5-neoforge", "1.21.8-neoforge", "1.21.10-neoforge", - "1.21.11-neoforge" + "1.21.11-neoforge", + "26.1.2-neoforge" ] }, "magiclib-minecraft-api": { @@ -123,6 +128,7 @@ "1.21.8-fabric", "1.21.10-fabric", "1.21.11-fabric", + "26.1.2-fabric", "1.17.1-forge", "1.18.2-forge", @@ -137,7 +143,8 @@ "1.21.5-neoforge", "1.21.8-neoforge", "1.21.10-neoforge", - "1.21.11-neoforge" + "1.21.11-neoforge", + "26.1.2-neoforge" ] } }