Fix @Environment(EnvType.CLIENT) not being added to the named minecraft client only jar.

This commit is contained in:
modmuss50
2023-04-23 14:15:45 +01:00
parent 2e6a1a9128
commit dcbdbf0e30
3 changed files with 14 additions and 13 deletions

View File

@@ -46,6 +46,7 @@ import net.fabricmc.loom.configuration.providers.minecraft.MinecraftProvider;
import net.fabricmc.loom.configuration.providers.minecraft.MinecraftSourceSets;
import net.fabricmc.loom.configuration.providers.minecraft.SignatureFixerApplyVisitor;
import net.fabricmc.loom.extension.LoomFiles;
import net.fabricmc.loom.util.SidedClassVisitor;
import net.fabricmc.loom.util.TinyRemapperHelper;
import net.fabricmc.tinyremapper.OutputConsumerPath;
import net.fabricmc.tinyremapper.TinyRemapper;
@@ -196,6 +197,17 @@ public abstract class AbstractMappedMinecraftProvider<M extends MinecraftProvide
protected void configureRemapper(RemappedJars remappedJars, TinyRemapper.Builder tinyRemapperBuilder) {
}
// Configure the remapper to add the client @Environment annotation to all classes in the client jar.
public static void configureSplitRemapper(RemappedJars remappedJars, TinyRemapper.Builder tinyRemapperBuilder) {
final MinecraftJar outputJar = remappedJars.outputJar();
assert !outputJar.isMerged();
if (outputJar.includesClient()) {
assert !outputJar.includesServer();
tinyRemapperBuilder.extraPostApplyVisitor(SidedClassVisitor.CLIENT);
}
}
private void cleanOutputs(List<RemappedJars> remappedJars) throws IOException {
for (RemappedJars remappedJar : remappedJars) {
Files.deleteIfExists(remappedJar.outputJarPath());

View File

@@ -29,12 +29,10 @@ import java.util.List;
import net.fabricmc.loom.api.mappings.layered.MappingsNamespace;
import net.fabricmc.loom.configuration.ConfigContext;
import net.fabricmc.loom.configuration.providers.minecraft.MergedMinecraftProvider;
import net.fabricmc.loom.configuration.providers.minecraft.MinecraftJar;
import net.fabricmc.loom.configuration.providers.minecraft.MinecraftProvider;
import net.fabricmc.loom.configuration.providers.minecraft.SingleJarEnvType;
import net.fabricmc.loom.configuration.providers.minecraft.SingleJarMinecraftProvider;
import net.fabricmc.loom.configuration.providers.minecraft.SplitMinecraftProvider;
import net.fabricmc.loom.util.SidedClassVisitor;
import net.fabricmc.tinyremapper.TinyRemapper;
public abstract sealed class IntermediaryMinecraftProvider<M extends MinecraftProvider> extends AbstractMappedMinecraftProvider<M> permits IntermediaryMinecraftProvider.MergedImpl, IntermediaryMinecraftProvider.SingleJarImpl, IntermediaryMinecraftProvider.SplitImpl {
@@ -80,13 +78,7 @@ public abstract sealed class IntermediaryMinecraftProvider<M extends MinecraftPr
@Override
protected void configureRemapper(RemappedJars remappedJars, TinyRemapper.Builder tinyRemapperBuilder) {
final MinecraftJar outputJar = remappedJars.outputJar();
assert !outputJar.isMerged();
if (outputJar.includesClient()) {
assert !outputJar.includesServer();
tinyRemapperBuilder.extraPostApplyVisitor(SidedClassVisitor.CLIENT);
}
configureSplitRemapper(remappedJars, tinyRemapperBuilder);
}
}

View File

@@ -33,7 +33,6 @@ import net.fabricmc.loom.configuration.providers.minecraft.MinecraftProvider;
import net.fabricmc.loom.configuration.providers.minecraft.SingleJarEnvType;
import net.fabricmc.loom.configuration.providers.minecraft.SingleJarMinecraftProvider;
import net.fabricmc.loom.configuration.providers.minecraft.SplitMinecraftProvider;
import net.fabricmc.loom.util.SidedClassVisitor;
import net.fabricmc.tinyremapper.TinyRemapper;
public abstract class NamedMinecraftProvider<M extends MinecraftProvider> extends AbstractMappedMinecraftProvider<M> {
@@ -84,9 +83,7 @@ public abstract class NamedMinecraftProvider<M extends MinecraftProvider> extend
@Override
protected void configureRemapper(RemappedJars remappedJars, TinyRemapper.Builder tinyRemapperBuilder) {
if (remappedJars.outputJar().equals(getClientOnlyJar())) {
tinyRemapperBuilder.extraPostApplyVisitor(SidedClassVisitor.CLIENT);
}
configureSplitRemapper(remappedJars, tinyRemapperBuilder);
}
@Override