From 120126d8ca2333ad57120baccd294e4320841bf6 Mon Sep 17 00:00:00 2001
From: Michael Hillcox <michaelhillcox@gmail.com>
Date: Thu, 28 Dec 2023 22:02:25 +0000
Subject: [PATCH 1/2] feat: ported to 1.20.2

---
 .gitignore                                    |  4 +-
 CHANGELOG.md                                  |  4 +-
 build.gradle                                  | 33 +++++--
 .../resources/accelerateddecay.mixins.json    |  1 +
 forge/build.gradle                            |  4 +-
 .../resources/accelerateddecay.mixins.json    |  3 +-
 gradle.properties                             | 15 ++--
 gradle/wrapper/gradle-wrapper.properties      |  2 +-
 neoforge/build.gradle                         | 85 +++++++++++++++++++
 neoforge/gradle.properties                    |  1 +
 .../neoforge/AcceleratedDecayNeoforge.java    | 12 +++
 .../src/main/resources/META-INF/mods.toml     | 41 +++++++++
 .../resources/accelerateddecay.mixins.json    | 10 +++
 neoforge/src/main/resources/pack.mcmeta       |  6 ++
 settings.gradle                               | 17 ++--
 15 files changed, 207 insertions(+), 31 deletions(-)
 create mode 100644 neoforge/build.gradle
 create mode 100644 neoforge/gradle.properties
 create mode 100644 neoforge/src/main/java/pro/mikey/accelerateddecay/neoforge/AcceleratedDecayNeoforge.java
 create mode 100644 neoforge/src/main/resources/META-INF/mods.toml
 create mode 100644 neoforge/src/main/resources/accelerateddecay.mixins.json
 create mode 100644 neoforge/src/main/resources/pack.mcmeta

diff --git a/.gitignore b/.gitignore
index ccb0c56..27264ca 100644
--- a/.gitignore
+++ b/.gitignore
@@ -16,4 +16,6 @@ classes/
 .metadata
 .vscode
 .settings
-*.launch
\ No newline at end of file
+*.launch
+
+.DS_Store
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5662a28..3e59a5e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,5 @@
-## [3.0.1]
+## [82.0.0]
 
 ### Changed
 
-- Improved multi-threading safety and performance thanks to [(#7)](https://github.com/ErrorMikey/AcceleratedDecay/pull/7) [BumbleTree](https://github.com/BumbleTree)
+- Ported to 1.20.2
diff --git a/build.gradle b/build.gradle
index 529ffa6..80ba12f 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,7 +1,7 @@
 plugins {
     id "architectury-plugin" version "3.4-SNAPSHOT"
-    id "dev.architectury.loom" version "1.3-SNAPSHOT" apply false
-    id "me.modmuss50.mod-publish-plugin" version "0.3.5"
+    id "dev.architectury.loom" version "1.4-SNAPSHOT" apply false
+    id "me.modmuss50.mod-publish-plugin" version "0.4.5"
 }
 
 architectury {
@@ -45,7 +45,7 @@ allprojects {
     apply plugin: "maven-publish"
 
     archivesBaseName = rootProject.archives_base_name
-    version = "${rootProject.mod_version}+mc${rootProject.minecraft_version}"
+    version = "${rootProject.mod_version}"
     group = rootProject.maven_group
 
 
@@ -67,13 +67,19 @@ publishMods {
 
     def fabricOptions = publishOptions {
         file = project.provider { project(":fabric").tasks.remapJar }.flatMap { it.archiveFile }
-        displayName = "${project.name} Fabric ${mod_version}+mc${minecraft_version}"
+        displayName = "[FABRIC][${rootProject.minecraft_version}] ${project.name} ${mod_version}"
         modLoaders.add("fabric")
     }
 
+    def neoforgeOptions = publishOptions {
+        file = project.provider { project(":neoforge").tasks.remapJar }.flatMap { it.archiveFile }
+        displayName = "[NEOFORGE][${rootProject.minecraft_version}] ${project.name} ${mod_version}"
+        modLoaders.add("forge")
+    }
+
     def forgeOptions = publishOptions {
         file = project.provider { project(":forge").tasks.remapJar }.flatMap { it.archiveFile }
-        displayName = "${project.name} Forge ${mod_version}+mc${minecraft_version}"
+        displayName = "[FORGE][${rootProject.minecraft_version}] ${project.name} ${mod_version}"
         modLoaders.add("neoforge")
     }
 
@@ -97,6 +103,13 @@ publishMods {
         }
     }
 
+    curseforge("curseforgeNeoforge") {
+        from(curseForgeOptions, neoforgeOptions)
+        requires {
+            slug = "architectury-api"
+        }
+    }
+
     curseforge("curseforgeForge") {
         from(curseForgeOptions, forgeOptions)
         requires {
@@ -113,6 +126,13 @@ publishMods {
     }
 
     modrinth("modrinthForge") {
+        from(modrinthOptions, neoforgeOptions)
+        requires {
+            slug = "architectury-api"
+        }
+    }
+
+    modrinth("modrinthNeoforge") {
         from(modrinthOptions, forgeOptions)
         requires {
             slug = "architectury-api"
@@ -120,8 +140,9 @@ publishMods {
     }
 
     github {
-        file = project.provider { project(":forge").tasks.remapJar }.flatMap { it.archiveFile }
+        file = project.provider { project(":neoforge").tasks.remapJar }.flatMap { it.archiveFile }
         additionalFiles.from project.provider { project(":fabric").tasks.remapJar }.flatMap { it.archiveFile }
+        additionalFiles.from project.provider { project(":forge").tasks.remapJar }.flatMap { it.archiveFile }
 
         repository = "${project.github_repo}"
         accessToken = providers.environmentVariable("GITHUB_TOKEN")
diff --git a/fabric/src/main/resources/accelerateddecay.mixins.json b/fabric/src/main/resources/accelerateddecay.mixins.json
index 8397e44..daecf87 100644
--- a/fabric/src/main/resources/accelerateddecay.mixins.json
+++ b/fabric/src/main/resources/accelerateddecay.mixins.json
@@ -2,6 +2,7 @@
   "required": true,
   "package": "pro.mikey.accelerateddecay.mixin.fabric",
   "compatibilityLevel": "JAVA_17",
+  "minVersion": "0.7",
   "client": [],
   "mixins": [],
   "injectors": {
diff --git a/forge/build.gradle b/forge/build.gradle
index e92d14d..0a28dc9 100644
--- a/forge/build.gradle
+++ b/forge/build.gradle
@@ -8,7 +8,7 @@ architectury {
 }
 
 repositories {
-    maven { url "https://maven.neoforged.net/releases" }
+    maven { url "https://files.minecraftforge.net/" }
     maven { url "https://maven.creeperhost.net/" }
 }
 
@@ -33,7 +33,7 @@ configurations {
 }
 
 dependencies {
-    forge "net.neoforged:forge:${rootProject.minecraft_version}-${rootProject.forge_version}"
+    forge "net.minecraftforge:forge:${rootProject.minecraft_version}-${rootProject.forge_version}"
     // Remove the next line if you don't want to depend on the API
     modApi "dev.architectury:architectury-forge:${rootProject.architectury_version}"
 
diff --git a/forge/src/main/resources/accelerateddecay.mixins.json b/forge/src/main/resources/accelerateddecay.mixins.json
index 8cbf179..df08133 100644
--- a/forge/src/main/resources/accelerateddecay.mixins.json
+++ b/forge/src/main/resources/accelerateddecay.mixins.json
@@ -1,7 +1,8 @@
 {
   "required": true,
-  "package": "pro.mikey.accelerateddecay.mixin.forge",
+  "package": "pro.mikey.accelerateddecay.mixin.neoforge",
   "compatibilityLevel": "JAVA_17",
+  "minVersion": "0.7",
   "client": [],
   "mixins": [],
   "injectors": {
diff --git a/gradle.properties b/gradle.properties
index 57b2b88..e5f30df 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,17 +1,18 @@
 org.gradle.jvmargs=-Xmx2048M
 
-minecraft_version=1.20.1
-enabled_platforms=fabric,forge
+minecraft_version=1.20.2
+enabled_platforms=fabric,forge,neoforge
 
 archives_base_name=accelerated-decay
-mod_version=3.0.1
+mod_version=82.0.0
 maven_group=pro.mikey.mods
 
-architectury_version=9.1.12
+architectury_version=10.0.17
 
-fabric_loader_version=0.14.22
-fabric_api_version=0.88.1+1.20.1
-forge_version=47.1.76
+fabric_loader_version=0.15.3
+fabric_api_version=0.91.2+1.20.2
+forge_version=48.1.0
+neoforge_version=20.2.88
 
 curseforge_id=699872
 modrinth_id=laX5CckD
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 15de902..a595206 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
diff --git a/neoforge/build.gradle b/neoforge/build.gradle
new file mode 100644
index 0000000..ddd3531
--- /dev/null
+++ b/neoforge/build.gradle
@@ -0,0 +1,85 @@
+plugins {
+    id "com.github.johnrengelman.shadow" version "7.1.2"
+}
+
+architectury {
+    platformSetupLoomIde()
+    neoForge()
+}
+
+repositories {
+    maven { url "https://maven.neoforged.net/releases" }
+    maven { url "https://maven.creeperhost.net/" }
+}
+
+loom {
+    accessWidenerPath = project(":common").loom.accessWidenerPath
+
+    neoForge {}
+}
+
+configurations {
+    common
+    shadowCommon // Don't use shadow from the shadow plugin because we don't want IDEA to index this.
+    compileClasspath.extendsFrom common
+    runtimeClasspath.extendsFrom common
+    developmentNeoForge.extendsFrom common
+}
+
+dependencies {
+    neoForge "net.neoforged:neoforge:${rootProject.neoforge_version}"
+    // Remove the next line if you don't want to depend on the API
+    modApi "dev.architectury:architectury-neoforge:${rootProject.architectury_version}"
+
+    common(project(path: ":common", configuration: "namedElements")) { transitive false }
+    shadowCommon(project(path: ":common", configuration: "transformProductionNeoForge")) { transitive = false }
+}
+
+processResources {
+    inputs.property "version", project.version
+
+    filesMatching("META-INF/mods.toml") {
+        expand "version": project.version
+    }
+}
+
+shadowJar {
+    exclude "fabric.mod.json"
+    exclude "architectury.common.json"
+
+    configurations = [project.configurations.shadowCommon]
+    setArchiveClassifier "dev-shadow"
+}
+
+remapJar {
+    input.set shadowJar.archiveFile
+    dependsOn shadowJar
+    setArchiveClassifier null
+    setArchivesBaseName("${rootProject.archivesBaseName}-${project.name}") // adds fabric to the maven and curse name
+    atAccessWideners.add('accelerateddecay.accesswidener')
+}
+
+jar {
+    setArchiveClassifier "dev"
+}
+
+sourcesJar {
+    def commonSources = project(":common").sourcesJar
+    dependsOn commonSources
+    from commonSources.archiveFile.map { zipTree(it) }
+}
+
+components.java {
+    withVariantsFromConfiguration(project.configurations.shadowRuntimeElements) {
+        skip()
+    }
+}
+
+publishing {
+    publications {
+        mavenForge(MavenPublication) {
+            artifactId = "${rootProject.archivesBaseName}-${project.name}"
+            from components.java
+        }
+    }
+}
diff --git a/neoforge/gradle.properties b/neoforge/gradle.properties
new file mode 100644
index 0000000..7da18ea
--- /dev/null
+++ b/neoforge/gradle.properties
@@ -0,0 +1 @@
+loom.platform=neoforge
diff --git a/neoforge/src/main/java/pro/mikey/accelerateddecay/neoforge/AcceleratedDecayNeoforge.java b/neoforge/src/main/java/pro/mikey/accelerateddecay/neoforge/AcceleratedDecayNeoforge.java
new file mode 100644
index 0000000..10dd7dd
--- /dev/null
+++ b/neoforge/src/main/java/pro/mikey/accelerateddecay/neoforge/AcceleratedDecayNeoforge.java
@@ -0,0 +1,12 @@
+package pro.mikey.accelerateddecay.neoforge;
+
+import net.neoforged.fml.common.Mod;
+import pro.mikey.accelerateddecay.AcceleratedDecay;
+
+@Mod(AcceleratedDecay.MOD_ID)
+public class AcceleratedDecayNeoforge {
+    public AcceleratedDecayNeoforge() {
+//        EventBuses.registerModEventBus(AcceleratedDecay.MOD_ID, FMLJavaModLoadingContext.get().getModEventBus());
+        AcceleratedDecay.init();
+    }
+}
diff --git a/neoforge/src/main/resources/META-INF/mods.toml b/neoforge/src/main/resources/META-INF/mods.toml
new file mode 100644
index 0000000..24dace3
--- /dev/null
+++ b/neoforge/src/main/resources/META-INF/mods.toml
@@ -0,0 +1,41 @@
+modLoader = "javafml"
+loaderVersion = "[1,)"
+#issueTrackerURL = ""
+license = "GPL3"
+
+[[mods]]
+modId = "accelerateddecay"
+version = "${version}"
+displayName = "Accelerated Decay"
+authors = "ErrorMikey"
+description = '''
+Speeds up the decay of leaves
+'''
+#logoFile = ""
+
+[[dependencies.accelerateddecay]]
+modId = "neoforge"
+mandatory = true
+versionRange = "[20.2,)"
+ordering = "NONE"
+side = "BOTH"
+
+[[dependencies.accelerateddecay]]
+modId = "minecraft"
+mandatory = true
+versionRange = "[1.20.2,)"
+ordering = "NONE"
+side = "BOTH"
+
+[[dependencies.accelerateddecay]]
+modId = "architectury"
+mandatory = true
+versionRange = "[9.1.12,)"
+ordering = "AFTER"
+side = "BOTH"
+
+[[mixins]]
+config = "accelerateddecay-common.mixins.json"
+
+[[mixins]]
+config = "accelerateddecay.mixins.json"
diff --git a/neoforge/src/main/resources/accelerateddecay.mixins.json b/neoforge/src/main/resources/accelerateddecay.mixins.json
new file mode 100644
index 0000000..fa1ba19
--- /dev/null
+++ b/neoforge/src/main/resources/accelerateddecay.mixins.json
@@ -0,0 +1,10 @@
+{
+  "required": true,
+  "package": "pro.mikey.accelerateddecay.mixin.neoforge",
+  "compatibilityLevel": "JAVA_17",
+  "client": [],
+  "mixins": [],
+  "injectors": {
+    "defaultRequire": 1
+  }
+}
diff --git a/neoforge/src/main/resources/pack.mcmeta b/neoforge/src/main/resources/pack.mcmeta
new file mode 100644
index 0000000..e53603f
--- /dev/null
+++ b/neoforge/src/main/resources/pack.mcmeta
@@ -0,0 +1,6 @@
+{
+  "pack": {
+    "description": "accelerateddecay Mod",
+    "pack_format": 8
+  }
+}
diff --git a/settings.gradle b/settings.gradle
index d50ee5b..f1699d7 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,23 +1,17 @@
 pluginManagement {
     repositories {
         gradlePluginPortal()
+
+        maven {
+            url "https://files.minecraftforge.net/"
+        }
+
         maven {
             url "https://maven.neoforged.net/releases"
-            content {
-                includeGroup "net.neoforged"
-            }
         }
 
         maven {
             url "https://maven.creeperhost.net/"
-            content {
-                includeGroup "net.minecraftforge"
-                includeGroup "net.fabricmc"
-                includeGroup "de.oceanlabs.mcp"
-                includeGroup "dev.architectury"
-                includeGroup "dev.architectury.loom"
-                includeGroup "architectury-plugin"
-            }
         }
     }
 }
@@ -25,5 +19,6 @@ pluginManagement {
 include("common")
 include("fabric")
 include("forge")
+include("neoforge")
 
 rootProject.name = "accelerated-decay"

From 8faf9674e737ad6195b84184bd6e3923dd12260d Mon Sep 17 00:00:00 2001
From: Michael Hillcox <michaelhillcox@gmail.com>
Date: Thu, 28 Dec 2023 22:12:41 +0000
Subject: [PATCH 2/2] feat: ported to 1.20.4

---
 CHANGELOG.md                                   |  4 ++--
 gradle.properties                              | 14 +++++++-------
 neoforge/build.gradle                          |  6 ++++++
 neoforge/src/main/resources/META-INF/mods.toml |  6 +++---
 4 files changed, 18 insertions(+), 12 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3e59a5e..c437399 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,5 @@
-## [82.0.0]
+## [84.0.0]
 
 ### Changed
 
-- Ported to 1.20.2
+- Ported to 1.20.4
diff --git a/gradle.properties b/gradle.properties
index e5f30df..7239913 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,18 +1,18 @@
 org.gradle.jvmargs=-Xmx2048M
 
-minecraft_version=1.20.2
+minecraft_version=1.20.4
 enabled_platforms=fabric,forge,neoforge
 
 archives_base_name=accelerated-decay
-mod_version=82.0.0
+mod_version=84.0.0
 maven_group=pro.mikey.mods
 
-architectury_version=10.0.17
-
 fabric_loader_version=0.15.3
-fabric_api_version=0.91.2+1.20.2
-forge_version=48.1.0
-neoforge_version=20.2.88
+fabric_api_version=0.92.0+1.20.4
+forge_version=49.0.12
+neoforge_version=20.4.62-beta
+
+architectury_version=11.0.9
 
 curseforge_id=699872
 modrinth_id=laX5CckD
diff --git a/neoforge/build.gradle b/neoforge/build.gradle
index ddd3531..e1303c3 100644
--- a/neoforge/build.gradle
+++ b/neoforge/build.gradle
@@ -83,3 +83,9 @@ publishing {
         }
     }
 }
+
+sourceSets.each {
+    def dir = layout.buildDirectory.dir("sourcesSets/$it.name")
+    it.output.resourcesDir = dir
+    it.java.destinationDirectory = dir
+}
diff --git a/neoforge/src/main/resources/META-INF/mods.toml b/neoforge/src/main/resources/META-INF/mods.toml
index 24dace3..2d8df43 100644
--- a/neoforge/src/main/resources/META-INF/mods.toml
+++ b/neoforge/src/main/resources/META-INF/mods.toml
@@ -15,21 +15,21 @@ Speeds up the decay of leaves
 
 [[dependencies.accelerateddecay]]
 modId = "neoforge"
-mandatory = true
+required = true
 versionRange = "[20.2,)"
 ordering = "NONE"
 side = "BOTH"
 
 [[dependencies.accelerateddecay]]
 modId = "minecraft"
-mandatory = true
+required = true
 versionRange = "[1.20.2,)"
 ordering = "NONE"
 side = "BOTH"
 
 [[dependencies.accelerateddecay]]
 modId = "architectury"
-mandatory = true
+required = true
 versionRange = "[9.1.12,)"
 ordering = "AFTER"
 side = "BOTH"