22
33import net .neoforged .gradle .common .dependency .ExtraJarDependencyManager ;
44import net .neoforged .gradle .common .runtime .extensions .CommonRuntimeExtension ;
5+ import net .neoforged .gradle .common .runtime .tasks .BinaryAccessTransformer ;
56import net .neoforged .gradle .common .util .*;
67import net .neoforged .gradle .common .util .run .TypesUtil ;
8+ import net .neoforged .gradle .dsl .common .extensions .AccessTransformers ;
9+ import net .neoforged .gradle .dsl .common .extensions .Minecraft ;
710import net .neoforged .gradle .dsl .common .extensions .subsystems .Conventions ;
811import net .neoforged .gradle .dsl .common .extensions .subsystems .Decompiler ;
912import net .neoforged .gradle .dsl .common .extensions .subsystems .Subsystems ;
2629import org .gradle .api .artifacts .Dependency ;
2730import org .gradle .api .file .FileTree ;
2831import org .gradle .api .provider .Provider ;
32+ import org .gradle .api .tasks .TaskProvider ;
2933import org .jetbrains .annotations .NotNull ;
3034import org .jetbrains .annotations .Nullable ;
3135
@@ -47,6 +51,8 @@ public UserDevRuntimeExtension(Project project)
4751 protected @ NotNull UserDevRuntimeDefinition doCreate (UserDevRuntimeSpecification spec )
4852 {
4953 final NeoFormRuntimeExtension neoFormRuntimeExtension = getProject ().getExtensions ().getByType (NeoFormRuntimeExtension .class );
54+ final Decompiler decompilerSubsystemConfiguration = getProject ().getExtensions ().getByType (Subsystems .class ).getDecompiler ();
55+ final Minecraft minecraftExtension = getProject ().getExtensions ().getByType (Minecraft .class );
5056
5157 final UserdevProfile userDevProfile = spec .getProfile ();
5258 final FileTree userDevJar = spec .getUserDevArchive ();
@@ -56,7 +62,7 @@ public UserDevRuntimeExtension(Project project)
5662 "AdditionalDependenciesFor" + spec .getIdentifier ()
5763 );
5864
59- if (useCombinedJarWithNeoForgeOnRecompile (spec , userDevProfile ))
65+ if (useCombinedJarWithNeoForgeOnRecompile (userDevProfile ))
6066 {
6167 userDevAdditionalDependenciesConfiguration .getDependencies ().addLater (
6268 userDevProfile .getUniversalJarArtifactCoordinate ().map (spec .getProject ().getDependencies ()::create )
@@ -86,7 +92,7 @@ public UserDevRuntimeExtension(Project project)
8692
8793 builder .withPostTaskAdapter ("patch" , createPatchAdapter (userDevJar , userDevProfile .getSourcePatchesDirectory ().get ()));
8894
89- if (!useCombinedJarWithNeoForgeOnRecompile (spec , userDevProfile ))
95+ if (!useCombinedJarWithNeoForgeOnRecompile (userDevProfile ))
9096 {
9197 builder .withTaskCustomizer ("inject" , InjectZipContent .class , task -> {
9298 FileTree injectionDirectoryTree ;
@@ -106,12 +112,35 @@ public UserDevRuntimeExtension(Project project)
106112 ConfigurationUtils .getArtifactProvider (getProject (), "NeoForgeRawLookupFor" + spec .getIdentifier (), userDevProfile .getUniversalJarArtifactCoordinate ())
107113 );
108114 });
115+ } else if (decompilerSubsystemConfiguration .getIsDisabled ().get ()){
116+ builder .withPostTaskAdapter ("setup" , (definition , previousTasksOutput , runtimeWorkspace , gameArtifacts , mappingVersionData , dependentTaskConfigurationHandler ) -> {
117+ final AccessTransformers userAts = minecraftExtension .getAccessTransformers ();
118+
119+ if (accessTransformerFiles .getFiles ().isEmpty ()) {
120+ return null ;
121+ }
122+
123+ final TaskProvider <? extends BinaryAccessTransformer > task = CommonRuntimeTaskUtils .createBinaryAccessTransformer (
124+ definition ,
125+ "" ,
126+ userAts .getFiles ().getAsFileTree ()
127+ );
128+
129+ task .configure (t -> {
130+ t .getInputFile ().set (previousTasksOutput .flatMap (WithOutput ::getOutput ));
131+ t .dependsOn (previousTasksOutput );
132+ });
133+
134+ dependentTaskConfigurationHandler .accept (task );
135+
136+ return task ;
137+ });
109138 }
110139 });
111140
112141 spec .setMinecraftVersion (neoFormRuntimeDefinition .getSpecification ().getMinecraftVersion ());
113142
114- if (!useCombinedJarWithNeoForgeOnRecompile (spec , userDevProfile ))
143+ if (!useCombinedJarWithNeoForgeOnRecompile (userDevProfile ))
115144 {
116145 //Create the client-extra jar dependency.
117146 final Dependency clientExtraJar = spec .getProject ().getDependencies ().create (
@@ -139,7 +168,7 @@ public UserDevRuntimeExtension(Project project)
139168 final FileTree userDevJar )
140169 {
141170 return (steps , functions ) -> {
142- if (!useCombinedJarWithNeoForgeOnRecompile (spec , userDevProfile ))
171+ if (!useCombinedJarWithNeoForgeOnRecompile (userDevProfile ))
143172 {
144173 return ;
145174 }
@@ -170,7 +199,6 @@ public UserDevRuntimeExtension(Project project)
170199
171200 final Subsystems subsystems = spec .getProject ().getExtensions ().getByType (Subsystems .class );
172201 final SetupConfiguration configuration = buildSetupConfiguration (
173- spec ,
174202 userDevProfile ,
175203 userDevJar
176204 );
@@ -199,10 +227,10 @@ private record SetupConfiguration(
199227 List <String > arguments ,
200228 Map <String , String > values ) {}
201229
202- private SetupConfiguration buildSetupConfiguration (UserDevRuntimeSpecification spec , final UserdevProfile userDevProfile , final FileTree userDevJar )
230+ private SetupConfiguration buildSetupConfiguration (final UserdevProfile userDevProfile , final FileTree userDevJar )
203231 {
204232 final Decompiler decompilerSubsystemConfiguration = getProject ().getExtensions ().getByType (Subsystems .class ).getDecompiler ();
205- if (decompilerSubsystemConfiguration .getIsDisabled ().get () && useCombinedJarWithNeoForgeOnRecompile (spec , userDevProfile ))
233+ if (decompilerSubsystemConfiguration .getIsDisabled ().get () && useCombinedJarWithNeoForgeOnRecompile (userDevProfile ))
206234 {
207235 return new SetupConfiguration (
208236 List .of (
@@ -245,7 +273,7 @@ private SetupConfiguration buildSetupConfiguration(UserDevRuntimeSpecification s
245273 );
246274 }
247275
248- private boolean useCombinedJarWithNeoForgeOnRecompile (final UserDevRuntimeSpecification specification , final UserdevProfile userDevProfile )
276+ private boolean useCombinedJarWithNeoForgeOnRecompile (final UserdevProfile userDevProfile )
249277 {
250278 return userDevProfile .getFeatures ()
251279 .flatMap (UserdevProfile .Features ::getUsesCombinedBinaryPatches )
@@ -293,7 +321,7 @@ protected void afterRegistration(UserDevRuntimeDefinition runtime)
293321 private void bakeDefinition (UserDevRuntimeDefinition definition )
294322 {
295323 final Decompiler decompilerSubsystemConfiguration = this .getProject ().getExtensions ().getByType (Subsystems .class ).getDecompiler ();
296- if (decompilerSubsystemConfiguration .getIsDisabled ().get () && useCombinedJarWithNeoForgeOnRecompile (definition .getSpecification (), definition . getUserdevConfiguration ()))
324+ if (decompilerSubsystemConfiguration .getIsDisabled ().get () && useCombinedJarWithNeoForgeOnRecompile (definition .getUserdevConfiguration ()))
297325 {
298326 definition .getNeoFormRuntimeDefinition ().getRawJarTask ().configure (task -> {
299327 task .getInput ().set (definition .getNeoFormRuntimeDefinition ().getTask ("setup" ).flatMap (WithOutput ::getOutput ));
0 commit comments