Fix server only jars. (#968)

* Actally fix server only jars.

* Cleanup the single jar names
This commit is contained in:
modmuss
2023-11-06 10:40:49 +00:00
committed by GitHub
parent 731f0728da
commit ee0e5df98c
4 changed files with 50 additions and 21 deletions

View File

@@ -28,7 +28,7 @@ import java.io.File;
import java.nio.file.Path;
import java.util.Objects;
public abstract sealed class MinecraftJar permits MinecraftJar.Merged, MinecraftJar.Common, MinecraftJar.ServerOnly, MinecraftJar.ClientOnly {
public abstract sealed class MinecraftJar permits MinecraftJar.Client, MinecraftJar.ClientOnly, MinecraftJar.Common, MinecraftJar.Merged, MinecraftJar.Server {
private final Path path;
private final boolean merged, client, server;
private final String name;
@@ -68,8 +68,10 @@ public abstract sealed class MinecraftJar permits MinecraftJar.Merged, Minecraft
public abstract MinecraftJar forPath(Path path);
public static final class Merged extends MinecraftJar {
public static final String NAME = "merged";
public Merged(Path path) {
super(path, true, true, true, "merged");
super(path, true, true, true, NAME);
}
@Override
@@ -79,8 +81,10 @@ public abstract sealed class MinecraftJar permits MinecraftJar.Merged, Minecraft
}
public static final class Common extends MinecraftJar {
public static final String NAME = "common";
public Common(Path path) {
super(path, false, false, true, "common");
super(path, false, false, true, NAME);
}
@Override
@@ -89,20 +93,39 @@ public abstract sealed class MinecraftJar permits MinecraftJar.Merged, Minecraft
}
}
public static final class ServerOnly extends MinecraftJar {
public ServerOnly(Path path) {
super(path, false, false, true, "serverOnly");
public static final class Server extends MinecraftJar {
public static final String NAME = "server";
public Server(Path path) {
super(path, false, false, true, NAME);
}
@Override
public MinecraftJar forPath(Path path) {
return new ServerOnly(path);
return new Server(path);
}
}
// Un-split client jar
public static final class Client extends MinecraftJar {
public static final String NAME = "client";
public Client(Path path) {
super(path, false, true, false, NAME);
}
@Override
public MinecraftJar forPath(Path path) {
return new Client(path);
}
}
// Split client jar
public static final class ClientOnly extends MinecraftJar {
public static final String NAME = "clientOnly";
public ClientOnly(Path path) {
super(path, false, true, false, "clientOnly");
super(path, false, true, false, NAME);
}
@Override

View File

@@ -152,13 +152,13 @@ public abstract sealed class MinecraftSourceSets permits MinecraftSourceSets.Sin
@Override
public void applyDependencies(BiConsumer<String, String> consumer, List<String> targets) {
Preconditions.checkArgument(targets.size() == 2);
Preconditions.checkArgument(targets.contains("common"));
Preconditions.checkArgument(targets.contains("clientOnly"));
Preconditions.checkArgument(targets.contains(MinecraftJar.Common.NAME));
Preconditions.checkArgument(targets.contains(MinecraftJar.ClientOnly.NAME));
consumer.accept(MINECRAFT_COMMON_NAMED.runtime(), "common");
consumer.accept(MINECRAFT_CLIENT_ONLY_NAMED.runtime(), "clientOnly");
consumer.accept(MINECRAFT_COMMON_NAMED.compile(), "common");
consumer.accept(MINECRAFT_CLIENT_ONLY_NAMED.compile(), "clientOnly");
consumer.accept(MINECRAFT_COMMON_NAMED.runtime(), MinecraftJar.Common.NAME);
consumer.accept(MINECRAFT_CLIENT_ONLY_NAMED.runtime(), MinecraftJar.ClientOnly.NAME);
consumer.accept(MINECRAFT_COMMON_NAMED.compile(), MinecraftJar.Common.NAME);
consumer.accept(MINECRAFT_CLIENT_ONLY_NAMED.compile(), MinecraftJar.ClientOnly.NAME);
}
@Override

View File

@@ -28,16 +28,22 @@ import java.nio.file.Path;
import java.util.function.Function;
public enum SingleJarEnvType {
CLIENT(MinecraftJar.ClientOnly::new),
SERVER(MinecraftJar.ServerOnly::new);
CLIENT(MinecraftJar.Client::new, MinecraftJar.Client.NAME),
SERVER(MinecraftJar.Server::new, MinecraftJar.Server.NAME);
private final Function<Path, MinecraftJar> jarFunction;
private final String name;
SingleJarEnvType(Function<Path, MinecraftJar> jarFunction) {
SingleJarEnvType(Function<Path, MinecraftJar> jarFunction, String name) {
this.jarFunction = jarFunction;
this.name = name;
}
public Function<Path, MinecraftJar> getJar() {
return jarFunction;
}
public String getName() {
return name;
}
}

View File

@@ -42,7 +42,7 @@ public interface MappedMinecraftProvider {
}
interface Merged extends ProviderImpl {
String MERGED = "merged";
String MERGED = MinecraftJar.Merged.NAME;
default MinecraftJar getMergedJar() {
return new MinecraftJar.Merged(getJar(MERGED));
@@ -55,8 +55,8 @@ public interface MappedMinecraftProvider {
}
interface Split extends ProviderImpl {
String COMMON = "common";
String CLIENT_ONLY = "clientOnly";
String COMMON = MinecraftJar.Common.NAME;
String CLIENT_ONLY = MinecraftJar.ClientOnly.NAME;
default MinecraftJar getCommonJar() {
return new MinecraftJar.Common(getJar(COMMON));
@@ -76,7 +76,7 @@ public interface MappedMinecraftProvider {
SingleJarEnvType env();
default String envName() {
return "%sOnly".formatted(env());
return env().getName();
}
default MinecraftJar getEnvOnlyJar() {