Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
59c9fa0
fix: fix checkstyle (#3492)
QiuShui1012 May 20, 2026
191e585
Port to 26.1 移植到 26.1 (#3491)
ZhuRuoLing May 21, 2026
670fed8
Port Fish Tank to 1.6 and fix some bugs 移植鱼缸至1.6并修复部分问题 (#3526)
QiuShui1012 May 23, 2026
15bb62d
Improve QoL of using AdvancementLineHelper 提升AdvancementLineHelper的使用…
QiuShui1012 May 24, 2026
f8b575b
Merge pull request #3531 from Anvil-Dev/port/26.1/1.6
ZhuRuoLing May 24, 2026
507e3a8
Refactor dependency configurations and clean up category files (#3538)
Gu-ZT May 24, 2026
0e23695
Enhance block state verification and add utility methods (#3545)
Gu-ZT May 26, 2026
e9772e8
Refactor recipe handling and improve item insertion logic 重构配方处理逻辑并改进…
ZhuRuoLing May 28, 2026
8b715b9
Refactor amulet system and fix some bugs 重构护符系统并修复部分问题 (#3597)
QiuShui1012 May 31, 2026
d93b7f7
fix: memory leak by DeflectionRingBlockEntity (#3606)
ZhuRuoLing May 31, 2026
1d8c092
Enhance amulet system and fix some bugs 增强护符系统并修复部分问题 (#3617)
QiuShui1012 Jun 2, 2026
31c0e6b
Continue to enchance amulet system and fix some bugs 继续增强护符系统并修复部分问题 …
QiuShui1012 Jun 2, 2026
7280030
Update code format, fix some bugs and improve QoL 更新代码格式,修复部分问题并提升体验 …
QiuShui1012 Jun 4, 2026
b6dd8ae
feat(data-gen): add horizontalFacingBlockInverted method for block mo…
QiuShui1012 Jun 4, 2026
7b67540
fix(amulet): prevent inventory tick processing when amulet is disable…
QiuShui1012 Jun 4, 2026
6848de8
fix(gui): adjust rendering positions for anvil and trapdoor in Unpack…
QiuShui1012 Jun 4, 2026
618a5fd
Add the block for the storage system and implement the foundational c…
QiuShui1012 Jun 10, 2026
7d05f0b
fix propel piston crash (#3707)
ZhuRuoLing Jun 12, 2026
beab848
Fix the crash issue caused by premature initialization 修复过早初始化导致的崩溃问题…
QiuShui1012 Jun 13, 2026
4b37774
Ported numerous features to 26.1 将大量特性移植到26.1 (#3740)
PigeonNian Jun 15, 2026
b97eed5
fix multiphase save crash (#3749)
ZhuRuoLing Jun 17, 2026
761e0b5
Continue synchronizing the features of 26.1. 继续同步26.1的特性 (#3744)
PigeonNian Jun 17, 2026
f2a28c7
Optimize the rendering of ground-shaking bouncing blocks and add bloc…
PigeonNian Jun 18, 2026
0afeb87
Fix item collector functionality and correct drop contents behavior (…
ZhuRuoLing Jun 19, 2026
4bd525d
Fix multiblock display issue (#3780)
ZhuRuoLing Jun 19, 2026
ef588ed
feat(damage): 添加 heaterBurn 伤害类型支持 (#3779)
PigeonNian Jun 21, 2026
ffc65e9
fix unnecessary bloom (#3797)
ZhuRuoLing Jun 21, 2026
0d41c63
Changes
WhereisFff Jun 22, 2026
4df3022
feat(cfa): port Phase 1 basic data types to 26.1
WhereisFff Jun 22, 2026
e93e59f
feat(cfa): port Phase 2 celestial body data records and resource set
WhereisFff Jun 22, 2026
b64e12e
fix(cfa): update CompoundTag read API to 26.1 get*Or() pattern
WhereisFff Jun 22, 2026
c85ac8a
fix(cfa): update 26.1 API — Identifier, UUID codec, getList signature
WhereisFff Jun 22, 2026
75c5017
feat(cfa): port Phase 3 recipe system
WhereisFff Jun 22, 2026
b83cb2f
fix(cfa): update Recipe interface methods for 26.1
WhereisFff Jun 22, 2026
82f2cc7
fix(cfa): remove Serializer inner class, add group() for 26.1 Recipe
WhereisFff Jun 22, 2026
5939a33
feat(cfa): port PlanetResourceGenerator and recipe loaders
WhereisFff Jun 22, 2026
a445749
fix(cfa): update 26.1 API — recipe access, ResourceKey, EntitySpawnRe…
WhereisFff Jun 22, 2026
ee646ce
fix(cfa): add RecipesRecord import, Optional getLootTable, Identifier…
WhereisFff Jun 22, 2026
4956823
fix(cfa): Identifier factory methods, include user cleanup
WhereisFff Jun 22, 2026
4b5f91a
Changes phase4
WhereisFff Jun 22, 2026
d73cca0
Changes phase5
WhereisFff Jun 22, 2026
11f4b44
Changes phase6
WhereisFff Jun 22, 2026
80adfd1
Changes phase7
WhereisFff Jun 22, 2026
6c4a12a
Changes phase7.1
WhereisFff Jun 22, 2026
3c4d057
Changes phase8
WhereisFff Jun 22, 2026
a9185dc
Changes phase9
WhereisFff Jun 22, 2026
5b6d6f7
Changes phase10
WhereisFff Jun 22, 2026
4846772
Changes phase11
WhereisFff Jun 22, 2026
32cad24
Changes phase11.1
WhereisFff Jun 22, 2026
9a2e097
Changes phase11.2
WhereisFff Jun 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
24 changes: 20 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,16 @@ jobs:
path: gradle.properties
properties: 'mod_id mod_name java_version'

- name: Read Lib Version
id: 'lib_version'
uses: Gu-ZT/toml-reader-action@1.0.0
with:
file: gradle/libs.versions.toml
fields: |
versions.minecraft
versions.neoForge
versions.anvillib

- name: Setup Java ${{ steps.properties.outputs.java_version }}
uses: actions/setup-java@v3.6.0
with:
Expand Down Expand Up @@ -67,20 +77,26 @@ jobs:
continue-on-error: true

- name: gametest
uses: Anvil-Dev/dedicated-server-launch-test@1.21.1-neoforge
uses: Anvil-Dev/dedicated-server-launch-test@universal
continue-on-error: false
with:
mod: build/libs/anvilcraft-neoforge-${{ steps.version.outputs.version }}.jar
mods: |
build/libs/anvilcraft-neoforge-${{ steps.version.outputs.version }}.jar
minecraft_version: ${{ steps.lib_version.outputs.versions_minecraft }}
mod_loader: 'neoforge'
loader_version: ${{ steps.lib_version.outputs.versions_neoForge }}
extra-mods: "anvil-lib:${{ steps.lib_version.outputs.versions_anvillib }}"
quiet-setup: 'True'

- name: publish neoforge mc mod
uses: Kir-Antipov/mc-publish@v3.3
continue-on-error: true
with:
name: "${{ steps.properties.outputs.mod_name }} For NeoForge v${{ steps.version.outputs.version }}"
version: ${{ steps.version.outputs.version }}
game-versions: 1.21.1
game-versions: 26.1.2
version-type: ${{ env.VERSION_TYPE }}
java: 21
java: ${{ steps.properties.outputs.java_version }}
fail-mode: skip
changelog: Early test version, please download and play with caution. 早期测试版本,请谨慎下载游玩
dependencies: |
Expand Down
21 changes: 18 additions & 3 deletions .github/workflows/pull_request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,16 @@ jobs:
path: gradle.properties
properties: 'mod_id mod_name java_version'

- name: Read Lib Version
id: 'lib_version'
uses: Gu-ZT/toml-reader-action@1.0.0
with:
file: gradle/libs.versions.toml
fields: |
versions.minecraft
versions.neoForge
versions.anvillib

- name: Setup Java ${{ steps.properties.outputs.java_version }}
uses: actions/setup-java@v3.6.0
with:
Expand Down Expand Up @@ -58,7 +68,12 @@ jobs:
path: build/libs/anvilcraft-neoforge-${{ steps.version.outputs.version }}.jar

- name: gametest
uses: Anvil-Dev/dedicated-server-launch-test@1.21.1-neoforge
uses: Anvil-Dev/dedicated-server-launch-test@universal
with:
mod: build/libs/anvilcraft-neoforge-${{ steps.version.outputs.version }}.jar
extra-mods: patchouli:1.21-87-neoforge cloth-config:15.0.140+neoforge
mods: |
build/libs/anvilcraft-neoforge-${{ steps.version.outputs.version }}.jar
minecraft_version: ${{ steps.lib_version.outputs.versions_minecraft }}
mod_loader: 'neoforge'
loader_version: ${{ steps.lib_version.outputs.versions_neoForge }}
extra-mods: "anvil-lib:${{ steps.lib_version.outputs.versions_anvillib }}"
quiet-setup: 'True'
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,9 +70,9 @@ jobs:
with:
name: "${{ steps.properties.outputs.mod_name }} For NeoForge v${{ steps.version.outputs.version }}"
version: ${{ steps.version.outputs.version }}
game-versions: 1.21.1
game-versions: 26.1.2
version-type: ${{ env.VERSION_TYPE }}
java: 21
java: ${{ steps.properties.outputs.java_version }}
fail-mode: skip
changelog: ${{ github.event.release.body }}
dependencies: |
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/style_check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,17 @@ jobs:
uses: actions/checkout@v4
with:
ref: refs/pull/${{ github.event.number }}/merge
- name: Setup Java 17
- name: Setup Java 25
uses: actions/setup-java@v3.6.0
with:
distribution: zulu
java-version: 17
java-version: 25
- uses: reviewdog/action-setup@v1
with:
reviewdog_version: latest
- name: download checkstyle
run: curl -o checkstyle.jar -L https://github.com/checkstyle/checkstyle/releases/download/checkstyle-12.1.2/checkstyle-12.1.2-all.jar
run: curl -o checkstyle.jar -L https://github.com/checkstyle/checkstyle/releases/download/checkstyle-13.4.2/checkstyle-13.4.2-all.jar
- name: checkstyle
env:
REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: java -jar checkstyle.jar -c style.xml -f xml src | reviewdog -f=checkstyle -name="Checkstyle" -reporter=github-pr-review -fail-level=any
run: java -jar checkstyle.jar -c style.xml -f xml src | reviewdog -f=checkstyle -name="Checkstyle" -reporter=github-pr-review -fail-level=any
20 changes: 13 additions & 7 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -39,18 +39,24 @@ apply from: "$rootDir/gradle/scripts/resources.gradle"
apply from: "$rootDir/dependencies.gradle"

// Mojang ships Java 21 to end users starting in 1.20.5, so mods should target Java 21.
java.toolchain.languageVersion = JavaLanguageVersion.of(21)
java.toolchain.languageVersion = JavaLanguageVersion.of(java_version)

// Include resources generated by data generators.
sourceSets.main.resources { srcDir 'src/generated/resources' }

compileJava.options.encoding = 'UTF-8'

machete {
// disable machete locally for faster builds
enabled = false
}
// disable machete locally for faster builds
machete.enabled = false

lombok.version = "1.18.44"

lombok {
version = "1.18.34"
allprojects {
gradle.projectsEvaluated {
tasks.withType(JavaCompile).tap {
configureEach {
options.compilerArgs << "-Xmaxerrs" << "10000"
}
}
}
}
21 changes: 10 additions & 11 deletions dependencies.gradle
Original file line number Diff line number Diff line change
@@ -1,21 +1,20 @@
dependencies {
// AnvilLib
runtimeOnly(libs.anvillib)
compileOnly(libs.bundles.anvillib)
api(libs.anvillib)
interfaceInjectionData(libs.anvillib.recipe)
interfaceInjectionData(libs.anvillib.moveableEntityBlock)
jarJar(libs.anvillib)
// jarJar(libs.anvillib)

// JEI
compileOnlyApi(libs.jei.common.api) { transitive = false }
compileOnlyApi(libs.jei.forge.api) { transitive = false }
implementation(libs.jei.forge) { transitive = false }
compileClasspath(libs.jei.common.api) { transitive = false }
compileClasspath(libs.jei.forge.api) { transitive = false }
compileClasspath(libs.jei.forge) { transitive = false }
runtimeClasspath(libs.jei.forge) { transitive = false }

// Sodium, Iris, Embeddium
compileOnly(libs.sodium)
compileOnly(libs.embeddium)
compileOnly(libs.iris)
// Sodium, Iris
compileClasspath(libs.sodium)
compileClasspath(libs.iris)

// Jade
compileOnly(libs.jade)
compileClasspath(libs.jade)
}
8 changes: 4 additions & 4 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Jvm info
java_version=21
org.gradle.jvmargs=-Xmx1G
java_version=25
org.gradle.jvmargs=-Xmx2G
org.gradle.daemon=false
org.gradle.debug=false

Expand All @@ -17,8 +17,8 @@ mod_url=https://github.com/Anvil-Dev/AnvilCraft
# Development info
maven_group=dev.dubhe

minecraft_version_range=[1.21,1.21.1)
neo_version_range=[21.0.0-beta,)
minecraft_version_range=[26.1,26.2)
neo_version_range=[26.1.0.0-beta,)

# The loader version range can only use the major version of FML as bounds
loader_version_range=[4,)
44 changes: 15 additions & 29 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,39 +1,25 @@
[versions]
minecraft = "1.21.1"
neoForge = "21.1.219"
jei = "19.21.0.247"
jade = "15.3.4+neoforge"
parchment = "2024.11.17"
modDevGradle = "2.0.140"
minecraft = "26.1.2"
neoForge = "26.1.2.71"
jei = "29.6.2.31"
jade = "26.1.1+neoforge"
modDevGradle = "2.0.141"
lombok = "8.7.1"
machete = "1.+"
anvillib = "2.0.0+snapshot.314"
sodium = "mc1.21.1-0.6.13-neoforge"
embeddium = "1.0.11+mc1.21.1"
iris = "1.8.1+1.21.1-neoforge"
machete = "1.2.0"
anvillib = "2.0.0+snapshot.453"
sodium = "mc26.1.2-0.8.10-neoforge"
iris = "1.10.9+26.1-neoforge"

[libraries]
jei-common-api = { group = "mezz.jei", name = "jei-1.21.1-common-api", version.ref = "jei" }
jei-forge-api = { group = "mezz.jei", name = "jei-1.21.1-neoforge-api", version.ref = "jei" }
jei-forge = { group = "mezz.jei", name = "jei-1.21.1-neoforge", version.ref = "jei" }
jei-common-api = { group = "mezz.jei", name = "jei-26.1.2-common-api", version.ref = "jei" }
jei-forge-api = { group = "mezz.jei", name = "jei-26.1.2-neoforge-api", version.ref = "jei" }
jei-forge = { group = "mezz.jei", name = "jei-26.1.2-neoforge", version.ref = "jei" }
sodium = { group = "maven.modrinth", name = "sodium", version.ref = "sodium"}
embeddium = { group = "maven.modrinth", name = "embeddium", version.ref = "embeddium"}
iris = { group = "maven.modrinth", name = "iris", version.ref = "iris"}
jade = { group = "maven.modrinth", name = "jade", version.ref = "jade" }
anvillib-codec = { group = "dev.anvilcraft.lib", name = "anvillib-codec-neoforge-1.21.1", version.ref = "anvillib" }
anvillib-config = { group = "dev.anvilcraft.lib", name = "anvillib-config-neoforge-1.21.1", version.ref = "anvillib" }
anvillib-recipe = { group = "dev.anvilcraft.lib", name = "anvillib-recipe-neoforge-1.21.1", version.ref = "anvillib" }
anvillib-registrum = { group = "dev.anvilcraft.lib", name = "anvillib-registrum-neoforge-1.21.1", version.ref = "anvillib" }
anvillib-moveableEntityBlock = { group = "dev.anvilcraft.lib", name = "anvillib-moveable-entity-block-neoforge-1.21.1", version.ref = "anvillib" }
anvillib-multiblock = { group = "dev.anvilcraft.lib", name = "anvillib-multiblock-neoforge-1.21.1", version.ref = "anvillib" }
anvillib-network = { group = "dev.anvilcraft.lib", name = "anvillib-network-neoforge-1.21.1", version.ref = "anvillib" }
anvillib-integration = { group = "dev.anvilcraft.lib", name = "anvillib-integration-neoforge-1.21.1", version.ref = "anvillib" }
anvillib-util = { group = "dev.anvilcraft.lib", name = "anvillib-util-neoforge-1.21.1", version.ref = "anvillib" }
anvillib-wheel = { group = "dev.anvilcraft.lib", name = "anvillib-wheel-neoforge-1.21.1", version.ref = "anvillib" }
anvillib = { group = "dev.anvilcraft.lib", name = "anvillib-neoforge-1.21.1", version.ref = "anvillib" }

[bundles]
anvillib = [ "anvillib-codec", "anvillib-config", "anvillib-recipe", "anvillib-registrum", "anvillib-moveableEntityBlock", "anvillib-multiblock", "anvillib-network", "anvillib-integration", "anvillib-util", "anvillib-wheel" ]
anvillib-recipe = { group = "dev.anvilcraft.lib", name = "anvillib-recipe-neoforge-26.1", version.ref = "anvillib" }
anvillib-moveableEntityBlock = { group = "dev.anvilcraft.lib", name = "anvillib-moveable-entity-block-neoforge-26.1", version.ref = "anvillib" }
anvillib = { group = "dev.anvilcraft.lib", name = "anvillib-neoforge-26.1", version.ref = "anvillib" }

[plugins]
modDevGradle = { id = "net.neoforged.moddev", version.ref = "modDevGradle" }
Expand Down
4 changes: 1 addition & 3 deletions gradle/scripts/jars.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,4 @@ jar {
}
}

base {
archivesName = "${project.name}-${libs.versions.minecraft.get()}"
}
base.archivesName = "${project.name}-${libs.versions.minecraft.get()}"
37 changes: 31 additions & 6 deletions gradle/scripts/moddevgradle.gradle
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
neoForge {
version = libs.versions.neoForge.get()

parchment {
minecraftVersion = "1.21.1"
mappingsVersion = libs.versions.parchment.get()
}

// This line is optional. Access Transformers are automatically detected
accessTransformers = project.files('src/main/resources/META-INF/accesstransformer.cfg')

Expand All @@ -31,6 +26,8 @@ neoForge {
jvmArgument "-XX:+AllowEnhancedClassRedefinition"
}

jvmArgument "-XX:+IgnoreUnrecognizedVMOptions"

// Recommended logging level for the console
// You can set various levels here.
// Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels
Expand All @@ -43,6 +40,34 @@ neoForge {
systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id
}

clientMSA {
client()
devLogin = true
// Comma-separated list of namespaces to load gametests from. Empty = all namespaces.
systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id
}

clientRenderDoc {
client()
// Comma-separated list of namespaces to load gametests from. Empty = all namespaces.
systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id
systemProperty 'anvillib.rendering.debugMode', 'true'
systemProperty('neoforge.rendernurse.renderdoc.library', file("libs/renderdoc.dll").absolutePath)
programArgument("--renderDebugLabels")
jvmArgument("-javaagent:" + file("libs/renderdoc-loader.jar").absolutePath)
}

clientRenderDocMSA {
client()
devLogin = true
// Comma-separated list of namespaces to load gametests from. Empty = all namespaces.
systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id
systemProperty 'anvillib.rendering.debugMode', 'true'
systemProperty('neoforge.rendernurse.renderdoc.library', file("libs/renderdoc.dll").absolutePath)
programArgument("--renderDebugLabels")
jvmArgument("-javaagent:" + file("libs/renderdoc-loader.jar").absolutePath)
}

server {
server()
programArgument '--nogui'
Expand All @@ -58,7 +83,7 @@ neoForge {
}

data {
data()
clientData()

// example of overriding the workingDirectory set in configureEach above, uncomment if you want to use it
// gameDirectory = project.file('run-data')
Expand Down
8 changes: 4 additions & 4 deletions gradle/scripts/publishing.gradle
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
artifacts {
archives tasks.jar
archives tasks.sourcesJar
tasks.named("assemble") {
dependsOn tasks.jar
dependsOn tasks.sourcesJar
}

publishing {
publications {
mavenJava(MavenPublication) {
groupId = project.group
artifactId = project.archivesBaseName
artifactId = project.base.archivesName.get()
version = project.version

from components.java
Expand Down
2 changes: 2 additions & 0 deletions gradle/scripts/repositories.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,13 @@ repositories {
url = "https://server.cjsah.net:1002/maven/"
content {
includeGroup "dev.anvilcraft.lib"
includeGroup "dev.dubhe"
}
}
)
filter {
includeGroup "dev.anvilcraft.lib"
includeGroup "dev.dubhe"
}
}
maven { // Sodium, Embeddium, Iris, Jade
Expand Down
24 changes: 12 additions & 12 deletions gradle/scripts/resources.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,18 @@ def supporters = getConfig("supporters")
// See https://docs.gradle.org/current/dsl/org.gradle.language.jvm.tasks.ProcessResources.html
tasks.withType(ProcessResources).configureEach {
var replaceProperties = [
minecraft_version : libs.versions.minecraft.get(),
minecraft_version_range: minecraft_version_range,
neo_version : libs.versions.neoForge.get(),
neo_version_range : neo_version_range,
loader_version_range : loader_version_range,
mod_id : mod_id,
mod_name : mod_name,
mod_license : mod_license,
mod_version : version,
mod_description : mod_description,
"contributors" : contributors,
"supporters" : supporters
minecraft_version : libs.versions.minecraft.get(),
minecraft_version_range : minecraft_version_range,
neo_version : libs.versions.neoForge.get(),
neo_version_range : neo_version_range,
loader_version_range : loader_version_range,
mod_id : mod_id,
mod_name : mod_name,
mod_license : mod_license,
mod_version : version,
mod_description : mod_description,
"contributors" : contributors,
"supporters" : supporters
]
inputs.properties replaceProperties

Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.0-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
Loading
Loading