Skip to content

Commit

Permalink
Merge branch 'experimental/foundation' into experimental/cfml
Browse files Browse the repository at this point in the history
  • Loading branch information
Oganesson897 authored Feb 27, 2025
2 parents e741f5e + 088854a commit 727a4ff
Show file tree
Hide file tree
Showing 773 changed files with 13,570 additions and 48,230 deletions.
26 changes: 9 additions & 17 deletions .github/ISSUE_TEMPLATE/000-report-bug.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ body:
attributes:
label: Cleanroom Version
description: "What version of the Cleanroom are you using?"
placeholder: "Example: 15.24.0.3000"
placeholder: "Example: 0.2.4-alpha"
validations:
required: true
- type: dropdown
Expand All @@ -25,13 +25,11 @@ body:
description: What Java version are you using? It's worth mentioning that if you play on Java9+ you should try update to latest minor release (e.g. prefer Java 17.0.6 over 17.0.2) of that version.
options:
- Java 8
- Java 9
- Java 11
- Java 17
- Java 19
- Java 20
- Java 21
- Java 22
- Java 23
- Java 24 (Release Candidate)
- Java 25 (Early Access)
- Other (Please Specify)
validations:
required: true
Expand Down Expand Up @@ -65,14 +63,6 @@ body:
placeholder: "List of mods goes here"
validations:
required: true
- type: textarea
id: notes
attributes:
label: MMC Instance Notes
description: "Obtain from Notes sections if using MMC instance pack."
placeholder: "Notes goes here"
validations:
required: true
- type: checkboxes
id: final
attributes:
Expand All @@ -81,11 +71,13 @@ body:
options:
- label: "I have searched the issues and haven't found a similar issue."
required: true
- label: "I have read the known incompatibilities and this is not related to one of those."
- label: "I have read the readme and know that what is action build and non-MMC based launcher are unsupported."
required: true
- label: "I have installed [Fugue](https://www.curseforge.com/minecraft/mc-mods/fugue) and it does not fix this issue."
required: true
- label: "I have installed [Fugue](https://github.com/CleanroomMC/Fugue) and it does not fix this issue."
- label: "I have installed [Scalar](https://www.curseforge.com/minecraft/mc-mods/scalar) and it does not fix this issue."
required: true
- label: "I am using experimental branch and have installed [Scalar](https://github.com/CleanroomMC/Scalar/releases/tag/2.11.1) and it does not fix this issue."
- label: "I have switched my Forgelin and LibrarianLib to continuous versions(check readme for more detail)."
required: true
- label: "I am running a test build from Cleanroom Github Actions. (Or, if I've compiled it myself I plan to fix the issue)"
required: true
43 changes: 43 additions & 0 deletions .github/workflows/Publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Manually Publish

on:
workflow_dispatch:

jobs:

build:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/[email protected]
with:
fetch-tags: true
fetch-depth: 0

- name: Set up JDK 21
uses: actions/[email protected]
with:
java-version: '21'
distribution: 'temurin'

- name: Fix Gradle permission
run: chmod +x ./gradlew

- name: Setup Forge env
run: ./gradlew setup -Prun_number=${{ github.run_number }}

- name: Get version
run: echo "CLEANROOM_VERSION=$(cat version.txt)" >> $GITHUB_ENV

- name: Stop Gradle daemon
run: ./gradlew --stop

- name: Build Jars
run: ./gradlew installerJar -Prun_number=${{ github.run_number }}

- name: Stop Gradle daemon again
run: ./gradlew --stop

- name: Publish to maven for mod development
run: ./gradlew publish -PoutlandUsername=${{ secrets.MAVEN_USERNAME }} -PoutlandPassword="${{ secrets.MAVEN_PASSWORD }}" -Prun_number=${{ github.run_number }}
8 changes: 4 additions & 4 deletions .github/workflows/Release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@ jobs:
permissions:
contents: write
steps:
- uses: actions/checkout@v4.1.4
- uses: actions/checkout@v4.2.2
with:
fetch-tags: true
fetch-depth: 0

- name: Set up JDK 21
uses: actions/setup-java@v4.2.1
uses: actions/setup-java@v4.5.0
with:
java-version: '21'
distribution: 'temurin'
Expand All @@ -45,13 +45,13 @@ jobs:
run: ./gradlew publish -PoutlandUsername=${{ secrets.MAVEN_USERNAME }} -PoutlandPassword="${{ secrets.MAVEN_PASSWORD }}" -Prun_number=${{ github.run_number }} -Prelease=true

- name: Checkout CleanroomMMC
uses: actions/checkout@v4.1.4
uses: actions/checkout@v4.2.2
with:
repository: CleanroomMC/CleanroomMMC
path: mmc

- name: setup python
uses: actions/setup-python@v5.1.0
uses: actions/setup-python@v5.3.0
with:
python-version: '3.12'

Expand Down
8 changes: 6 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
/.idea/
/.idea/*
/.run/
/.gradle/
/projects/
/buildSrc/.gradle/
/buildSrc/build/
/logs/
build/
version.txt
src/main/java/com/cleanroommc/common/CleanroomVersion.java
src/main/java/com/cleanroommc/common/CleanroomVersion.java
build/

!/.idea/icon.svg
14 changes: 14 additions & 0 deletions .idea/icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
16 changes: 10 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
### Implemented

- 1.12.2 on Java 21
- LWJGL3
- *Latest* LWJGL3
- A working *mod development template/kit*
- Patches for loading incompatible mods
- Built-in Mixin w/ handy bootstrapping
Expand All @@ -25,16 +25,20 @@
- Cleanroom Minecraft (Continuation + Revamp of MinecraftForge)
- Customized Mixin
- Bytecode Patcher (Coming Soon) \[Inspired by [Bansoukou](https://github.com/LoliKingdom/Bansoukou) and [Bytecode Patcher](https://github.com/jbredwards/Bytecode-Patcher)]
- [Fugue](https://github.com/CleanroomMC/Fugue), a mod patches many incompatibilities.
- [Fugue](https://www.curseforge.com/minecraft/mc-mods/fugue), a mod patches many incompatibilities.
- Javassist
- [Scalar](https://github.com/CleanroomMC/Scalar/releases/tag/2.11.1), a Scala provider. We made Scala libraries become a standalone mod so it can be updated.
- [Scalar](https://www.curseforge.com/minecraft/mc-mods/scalar), a Scala provider. We made Scala libraries become a standalone mod so it can be updated.
- [Forgelin-Continuous](https://www.curseforge.com/minecraft/mc-mods/forgelin-continuous) and [LibrarianLib-Continuous](https://www.curseforge.com/minecraft/mc-mods/librarianlib-continuous)

## Download & Installation:

- For MultiMC-based launchers (PolyMC, PrismLauncher), download the MMC instance from [release](https://github.com/CleanroomMC/Cleanroom/releases), import it in your launcher(alternatively unzip patches and json inside to your 1.12 instance).
- For regular launcher (official launcher, AT launcher, FTB, HMCL), download the installer jar from release. You could use the installer like the Forge one.
- **Remember to install Fugue!**
- **And Scalar!**
- **WARNING:** Only MultiMC-based launchers are officially supported. This is because of the limit on removing vanilla libraries in other launchers.
- **Remember to install [Fugue](https://www.curseforge.com/minecraft/mc-mods/fugue)!**
- **And [Scalar](https://www.curseforge.com/minecraft/mc-mods/scalar)!**
- If you were told to use **action builds** (aka bleeding edge), here: [Cleanroom jar](https://github.com/CleanroomMC/Cleanroom/actions), [Cleanroom MMC zip](https://github.com/CleanroomMC/CleanroomMMC/actions/), [Fugue](https://github.com/CleanroomMC/Fugue/actions)
- You need to log-in with a GitHub account to download action artifacts.

## Build Instructions:

Expand All @@ -49,7 +53,7 @@
- Run `gradlew genPatches` before commit, or the changes won't exist
- Modifications on `src/` doesn't need generating patches
- [Tips from Forge](https://github.com/MinecraftForge/MinecraftForge/wiki/If-you-want-to-contribute-to-Forge) are still apply, keep the patches clean!
- The current patches is full of useless hunks after we switched to VineFlower, we encourage contributors to manual clean up their patches
- The current patches is full of useless hunks after we switched to VineFlower, we encourage contributors to clean up these patches manually.

## Mod Development:

Expand Down
82 changes: 46 additions & 36 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -245,8 +245,8 @@ project(':cleanroom') {
// Do not change the order unless it is required so
lwjglLibraries = [
[
'lwjgl3-glfw', 'lwjgl3-jemalloc', 'lwjgl3-openal',
'lwjgl3-opengl', 'lwjgl3-stb', 'lwjgl3-tinyfd', 'lwjgl3'
'lwjgl-glfw', 'lwjgl-jemalloc', 'lwjgl-openal',
'lwjgl-opengl', 'lwjgl-stb', 'lwjgl-tinyfd', 'lwjgl'
],

[
Expand Down Expand Up @@ -290,7 +290,7 @@ project(':cleanroom') {
environment 'FORGE_GROUP', project.group
environment 'FORGE_VERSION', props.last_forge_version

jvmArgs jvm_arguments + '-Dmixin.debug.export=true' + '-Dmixin.checks.interfaces=true' + '-Djava.system.class.loader=net.minecraft.launchwrapper.LaunchClassLoader'
jvmArgs jvm_arguments + '-Dmixin.debug.export=true' + '-Dmixin.checks.interfaces=true'
//jvmArgs jvm_arguments

// Lazily supply the Mappings target, createSrg2Mcp.getMappings() doesn't get populated until later
Expand Down Expand Up @@ -416,12 +416,14 @@ project(':cleanroom') {
}

dependencies {
compileOnly "com.cleanroommc:lwjglx:1.0.0"
installer "com.cleanroommc:lwjglxx:1.0.16"
lwjglLibraries[0].each {
installer "org.lwjgl3:$it:$props.lwjgl_version"
runtimeOnly "org.lwjgl3:$it::$lwjglArch"
installer "org.lwjgl:$it:$props.lwjgl_version"
runtimeOnly "org.lwjgl:$it::$lwjglArch"

lwjglLibraries[1].each { arch ->
lwjglNatives "org.lwjgl3:$it:$props.lwjgl_version:$arch"
lwjglNatives "org.lwjgl:$it:$props.lwjgl_version:$arch"
}
}

Expand All @@ -435,36 +437,39 @@ project(':cleanroom') {
installer "org.ow2.asm:asm-deprecated:$props.asm_deprecated"

//installer "com.cleanroommc:bouncepad:$props.bouncepad_version"
installer "top.outlands:foundation:0.13.8"
installer "top.outlands:foundation:0.14.3"
installer 'org.burningwave:jvm-driver:8.16.1'
installer 'io.github.toolfactory:jvm-driver:9.7.1'
installer 'io.github.toolfactory:narcissus:1.0.7'
installer 'org.javassist:javassist:3.30.2-GA'
installer "zone.rong:imaginebreaker:2.1"

installer 'com.ibm.icu:icu4j:75.1'
installer 'com.ibm.icu:icu4j:76.1'

installer 'org.jline:jline:3.26.1'
installer 'org.jline:jline:3.29.0'
installer 'org.jline:jline-native:3.29.0'

installer 'net.java.jinput:jinput:2.0.10'

installer 'lzma:lzma:0.0.1'
installer 'java3d:vecmath:1.5.2'
installer 'net.sf.trove4j:trove4j:3.0.3'
installer 'org.apache.maven:maven-artifact:3.9.7'
installer 'org.apache.maven:maven-artifact:3.9.9'
installer 'net.sf.jopt-simple:jopt-simple:5.0.4'
installer 'org.apache.commons:commons-lang3:3.14.0'
installer 'org.apache.commons:commons-compress:1.26.2'
installer 'org.apache.commons:commons-lang3:3.17.0'
installer 'org.apache.commons:commons-compress:1.27.1'
installer 'org.apache.httpcomponents:httpclient:4.5.14'
installer 'org.apache.httpcomponents:httpcore:4.4.16'
installer 'com.github.oshi:oshi-core:6.5.0'
installer 'net.java.dev.jna:jna:5.14.0'
installer 'net.java.dev.jna:jna-platform:5.14.0'
installer 'it.unimi.dsi:fastutil:8.5.13'
installer 'commons-codec:commons-codec:1.16.0'
installer 'commons-io:commons-io:2.16.1'
installer 'commons-logging:commons-logging:1.3.1'
installer 'com.google.guava:guava:33.2.1-jre'
installer 'com.github.oshi:oshi-core:6.6.6'
installer 'net.java.dev.jna:jna:5.16.0'
installer 'net.java.dev.jna:jna-platform:5.16.0'
installer 'it.unimi.dsi:fastutil:8.5.15'
installer 'commons-codec:commons-codec:1.17.2'
installer 'commons-io:commons-io:2.18.0'
installer 'commons-logging:commons-logging:1.3.4'
installer 'com.google.guava:guava:33.4.0-jre'
installer 'com.google.guava:failureaccess:1.0.2'
installer 'com.google.code.gson:gson:2.11.0'
installer 'com.google.code.gson:gson:2.12.1'
installer 'com.google.code.findbugs:jsr305:3.0.2'

// Netty
Expand All @@ -482,28 +487,33 @@ project(':cleanroom') {
installer "io.netty:netty-codec-dns:$props.netty_version"
installer "io.netty:netty-resolver-dns:$props.netty_version"

// installer 'io.netty:netty-all:4.1.93.Final'

// TODO: Unpin in 1.18.1 or when Mojang bumps the Log4J version
installer 'org.apache.logging.log4j:log4j-api:2.23.1'
installer 'org.apache.logging.log4j:log4j-core:2.23.1'
installer 'org.apache.logging.log4j:log4j-slf4j2-impl:2.23.1'
installer 'org.slf4j:slf4j-api:2.0.13'
installer 'jakarta.annotation:jakarta.annotation-api:2.1.1'
installer 'org.apache.logging.log4j:log4j-api:2.24.1'
installer 'org.apache.logging.log4j:log4j-core:2.24.1'
installer 'org.apache.logging.log4j:log4j-slf4j2-impl:2.24.1'
installer 'org.slf4j:slf4j-api:2.0.16'
installer 'jakarta.annotation:jakarta.annotation-api:3.0.0'
installer 'jakarta.xml.bind:jakarta.xml.bind-api:4.0.2'
installer 'org.glassfish.jaxb:jaxb-core:4.0.5'
installer 'org.glassfish.jaxb:txw2:4.0.5'
installer 'com.sun.istack:istack-commons-runtime:4.2.0'
installer 'org.glassfish.jaxb:jaxb-runtime:4.0.5'
installer 'org.jvnet.staxex:stax-ex:2.1.0'
installer 'com.sun.xml.fastinfoset:FastInfoset:2.1.1'
installer 'jakarta.xml.ws:jakarta.xml.ws-api:4.0.2'
installer 'jakarta.activation:jakarta.activation-api:2.1.3'
installer 'org.glassfish.corba:glassfish-corba-omgapi:4.2.5'
installer 'org.openjdk.nashorn:nashorn-core:15.4'
// installer 'ca.weblite:java-objc-bridge:1.2'


// Mixin
installer 'com.cleanroommc:sponge-mixin:0.20.5+mixin.0.8.7'
installer annotationProcessor('io.github.llamalad7:mixinextras-common:0.4.0')
installer 'com.cleanroommc:sponge-mixin:0.20.10+mixin.0.8.7'
installer annotationProcessor('io.github.llamalad7:mixinextras-common:0.5.0-beta.5')

testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.1'
testImplementation 'org.junit.vintage:junit-vintage-engine:5.10.1'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.11.0'
testImplementation 'org.junit.vintage:junit-vintage-engine:5.11.0'
testImplementation 'org.opentest4j:opentest4j:1.3.0' // Needed for junit 5
testImplementation 'org.hamcrest:hamcrest:2.2' // Needs advanced matching for list order
testImplementation 'org.hamcrest:hamcrest:3.0' // Needs advanced matching for list order


}
Expand Down Expand Up @@ -605,7 +615,7 @@ project(':cleanroom') {
zip.entries().findAll {
!it.directory && it.name.endsWith('.class')
}.each { entry ->
new ClassReader(zip.getInputStream(entry)).accept(new ClassVisitor(Opcodes.ASM7) {
new ClassReader(zip.getInputStream(entry)).accept(new ClassVisitor(Opcodes.ASM9) {

String name

Expand Down Expand Up @@ -1045,4 +1055,4 @@ subprojects {
options.compilerArgs += compiler_jvm_arguments
options.encoding = 'UTF-8'
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ class Util {
"https://maven.minecraftforge.net/",
"https://repo.maven.apache.org/maven2/",
"https://libraries.minecraft.net/",
"https://maven.outlands.top/releases/"
"https://maven.arcseekers.com/releases/"
]
try {
return urlList.stream().map(original -> original + path)
Expand Down
8 changes: 4 additions & 4 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ last_forge_version = 14.23.5.2860
mapping_channel = stable
mapping_version = 39-1.12
minecraft_version = 1.12.2
mcp_version = 20240102.171137
mcp_version = 20241220.122414

# Related Tooling
special_source = net.md-5:SpecialSource:1.9.0
Expand All @@ -16,10 +16,10 @@ binary_patcher = net.minecraftforge:binarypatcher:1.1.1:fatjar
installer_tools_version = 1.4.1

# Libraries
asm_version = 9.7
asm_version = 9.7.1
asm_deprecated = 7.1
netty_version = 4.1.110.Final
lwjgl_version = 3.3.4-27-CLEANROOM
netty_version = 4.1.117.Final
lwjgl_version = 3.3.6

# Sets default memory used for Gradle commands. Can be overridden by user or command line properties.
# This is required to provide enough memory for the Minecraft decompilation process.
Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading

0 comments on commit 727a4ff

Please sign in to comment.