The remaining classes are either API types like ModPlatform
or single classes that make sense in specific packages
next to e.g. other implementations of the same interface.
- Added ForgeToolService to run tools in tasks
- Added AccessTransformerService to simplify applying ATs and
to make the tool config cache-compatible
- Split McpExecutor into an execution stage (McpE) and
a setup stage (McpExecutorBuilder)
- McpExecutor is now a service
- All StepLogic implementations are now services
* Remap Forge dependency from mojang instead of srg
* Replace Union Relauncher with Bootstrap Dev
* Add mixins to forge 1206 test
* This should be forgelike
Why didn't this break unit tests?
* Replace with EnumMap
* Add version check for source roots separator
* Fix possible NPE
* Fix checkstyle in javadocs
such fun
* Fix codenarc styling
* fix usage
* remove hashcode and equals
* format code better
* Prepare for SelfResolvingDependency's removal
Update to Gradle 8.6
* Update docker images
* ProjectDependency is also a SRD
* Throw if layered mappings are created too late.
* Initial plumbing for NeoForge support
* Fix checkstyle
* Add ModPlatform.id
* Use NeoForge-specific cache
* Use NeoForge-specific dependency configuration
This is only for the "(neo)forge" configuration exposed
as API. The other configurations remain the same.
* Add test for basic NeoForge 1.20.2 projects
* Implement hacky fast track for NeoForge field migration
In other works, we skip field migrating for now.
* Disable patched decompilation task on Neo
* Disable mixin AP for building on NeoForge
* Many changes related to NeoForge mappings and remapping
* Code style and related fixes
* McpExecutor: Add support for downloading deps via Gradle
Also adds support for downloading a file without a repo
for NeoForm functions.
* Fix wrong configurations being used on NeoForge
* Fix mixin version detection on NeoForge
* Rename MinecraftPatchedProvider jar paths on NeoForge
* Test NeoForge against a client-only MC jar
* Add DFU for codecs, support NeoForge run config templates
* Centralise userdev config reading, support missing SAS
* Set up Shadow for bundling DFU
* Use correct name for NeoForm in cache files
* RemapJarTask: Fix check using isForgeLike for Forge
* MojangMappingsMerger: Complete and reorder mappings
* Fix SRG being used on NeoForge
* Fix SRG being used on NeoForge for ATs
* Use client pipeline for merged to avoid patch issues on Neo
* Update to architectury-loom-runtime 2.0
* Fix Minecraft jar name on Neo
* Fix MojangMappingsMerger having incomplete names
* Fix NeoForge mod dependency remapping using wrong mappings
* Quiet down MojangMappingsMerger
* Fix (Neo)Forge builtin coremods not being remapped
Fixes#146.
* Disable deprecated data generation API on NeoForge
* Use release version of the forge runtime
* Revert "Set up Shadow for bundling DFU"
This reverts commit 2bb8166744.
* Make NeoForge Field Migration work
* NeoForge shouldn't try to get datagen mods
* Fix checkstyle
* Remove mojang maven
* Split Forge and NeoForge extensions
* SimpleNeoForgeTest: Bump Neo version and fix Yarn version
* Remove resolved TODOs
* Re-enable joined NeoForm pipeline
* MPP: Rename srg -> intermediate jars
* Reintroduce namespace filtering for mapping trees
Should be a simple optimisation to avoid reading an
additional ns.
* ForgeRunTemplateTest: Fix code format
* Adapt SrgMerger into ForgeMappingsMerger (#169)
* Fix crash with NeoForge ext creation
* Adapt SrgMerger into ForgeMappingsMerger
* Update tiny-remapper
* Fix spotless
* Resolve reviews
* Fix checkstyle
* Remap ASMAPI.redirectFieldToMethod (#171)
* Remap ASMAPI.redirectFieldToMethod
* Move lastClassName outside the if
* Fix missing template variables in tests using forge/simple
* Add Java version to forge/simple test variables
* Disable naming service dependency on Neo
* Fix changing patch version not affecting mapped game jars
Fixes#167.
* Rename configuration: neoforge -> neoForge
---------
Co-authored-by: shedaniel <daniel@shedaniel.me>
* Add gradle 8 tests
Reuse gradle home between tests
Misc perf and mem optimisations
* Fix build warning.
* Added multi mc version test
* Use server launcher in ServerRunner
Co-authored-by: Luna <62033805+Luna5ama@users.noreply.github.com>
* Remove LaunchProviderSettings
Closes#99.
- Added new RunConfigSettings.forgeTemplate API
- Removed LaunchProviderSettings and loom.launches
- Removed most evaluateLater usages, only used for configuring the
RunConfigSettings since Forge runs aren't resolved yet when they're
created
- Didn't migrate Forge userdev stuff to runs, most of it still injects
directly into DLI
* Fix Fabric
* Fix 1.14 - 1.16.5 Forge, add test for ForgeRunTemplate for those versions
* Move ConfigValue out of mcpconfig, clean up
* Add test for config values
* Stop replacing user config values with ours
- eTag support (It seems Mojang's CDN and our meta/maven do not support this right now)
- Age based caching.
- Sha1 based caching.
- HTTP(S) proxy settings should now be respected.
- The downloader has better awareness of offline mode and refresh deps, cleaning up the calling code a bit.
- Uses the new Java 11 HTTP client, provides async support for downloading multiple files
- Progress handling (TODO needs hooking up to gradle)
- Better compression support. Handled by [Methanol](https://mizosoft.github.io/methanol/)
- Unit tested with a real web server.
* Use MCPConfig data for merging and remapping Forge jar
* Make DependencyDownloader support multiple deps
* Support server-/client-only Minecraft with Forge
There's one slight caveat here: the server jar
contains some client-only classes that have been
patched. This also happens with the official
Forge installer in production, so it's
probably fine.
* Remove binpatcher dep
* Move McpConfigProvider to correct package
* Print tool name for functions in McpExecutor
* Fix Forge tools outputting verbose output at IDEA refresh
* Fix certain Forge deps being excluded from run configs
* Always produce the client extra jar
* Add step count to McpExecutor logging
* Allow missing args and jvmargs in MCP functions
This should fix using 1.14.4 and 1.16.5, which
don't have JVM args for everything.
* Make MCP function downloads follow redirects
* Refactor MCP step outputs, don't copy raw MC jars
* Remove MinecraftProviderBridge
* Add API for intermediate mappings. Add hacky option to run with no intermediate mappings.
* Add setter, and some getters that I need :)
* Remove unused inject.
* Don't add asm-all to the libraries.
* Fix unit tests.