Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,9 @@ public boolean isAnyVersionExcluded() {
}

public Optional<MappingFlavour> getMappingsForMinecraftVersion(OrderedVersion mcVersion) {
if (mcVersion.isUnobfuscated()) {
return Optional.of(MappingFlavour.IDENTITY_UNMAPPED);
}
if (this.usedMapping().exists(mcVersion)) {
return Optional.of(this.usedMapping());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,51 @@ public MojangLauncherMetadataProvider() {
"24w14potato_original",
"https://maven.fabricmc.net/net/minecraft/24w14potato_original.json",
"4e54c25e6eafdf0a2f1f6e86fb1b8c1d239dd8d5");
// support unobfuscated versions
this.addMetadataSource(
"25w45a_unobfuscated",
"https://piston-data.mojang.com/v1/objects/de334d80d9ddc5abb94c611b8ad10f9125c4c421/25w45a_unobfuscated.zip",
"de334d80d9ddc5abb94c611b8ad10f9125c4c421");
this.addMetadataSource(
"25w46a_unobfuscated",
"https://piston-data.mojang.com/v1/objects/f9c5e4f9c1469296299635b498438e94d312f0c6/25w46a_unobfuscated.zip",
"f9c5e4f9c1469296299635b498438e94d312f0c6");
this.addMetadataSource(
"1.21.11-pre1_unobfuscated",
"https://piston-data.mojang.com/v1/objects/f98a0c053a8246cce12f8f29f2ba4ce00872fd53/1_21_11-pre1_unobfuscated.zip",
"f98a0c053a8246cce12f8f29f2ba4ce00872fd53");
this.addMetadataSource(
"1.21.11-pre2_unobfuscated",
"https://piston-data.mojang.com/v1/objects/528731e05b7be26c90fedf8f2ef6470abb0d1994/1_21_11-pre2_unobfuscated.zip",
"528731e05b7be26c90fedf8f2ef6470abb0d1994");
this.addMetadataSource(
"1.21.11-pre3_unobfuscated",
"https://piston-data.mojang.com/v1/objects/7717a481468cc33d2414d82ee9c0450f56264db0/1_21_11-pre3_unobfuscated.zip",
"7717a481468cc33d2414d82ee9c0450f56264db0");
this.addMetadataSource(
"1.21.11-pre4_unobfuscated",
"https://piston-data.mojang.com/v1/objects/834666571f1e1374923b73f4baec4203d44e9c0d/1_21_11-pre4_unobfuscated.zip",
"834666571f1e1374923b73f4baec4203d44e9c0d");
this.addMetadataSource(
"1.21.11-pre5_unobfuscated",
"https://piston-data.mojang.com/v1/objects/931df659128f913ce356d6036c318c5d9a039e85/1_21_11-pre5_unobfuscated.zip",
"931df659128f913ce356d6036c318c5d9a039e85");
this.addMetadataSource(
"1.21.11-rc1_unobfuscated",
"https://piston-data.mojang.com/v1/objects/38712002b9d02061e662b69c44753a47d24da516/1_21_11-rc1_unobfuscated.zip",
"38712002b9d02061e662b69c44753a47d24da516");
this.addMetadataSource(
"1.21.11-rc2_unobfuscated",
"https://piston-data.mojang.com/v1/objects/fb70de3ae3e19825622b7687d2fd783d78c4b05f/1_21_11-rc2_unobfuscated.zip",
"fb70de3ae3e19825622b7687d2fd783d78c4b05f");
this.addMetadataSource(
"1.21.11-rc3_unobfuscated",
"https://piston-data.mojang.com/v1/objects/7abe399a1b3c07754c5dc3ec4e5c6f50ee03c10e/1_21_11-rc3_unobfuscated.zip",
"7abe399a1b3c07754c5dc3ec4e5c6f50ee03c10e");
this.addMetadataSource(
"1.21.11_unobfuscated",
"https://piston-data.mojang.com/v1/objects/82332dfb17146de34cb7a36d2b910e3b2009191a/1_21_11_unobfuscated.zip",
"82332dfb17146de34cb7a36d2b910e3b2009191a");
}

protected MojangLauncherMetadataProvider(String manifestUrl) {
Expand Down Expand Up @@ -247,6 +292,12 @@ private Path clientJarArtifactParentPath(VersionInfo versionMeta) {
}

private String fixupSemver(String proposedSemVer) {
if (proposedSemVer.equals("1.21.11+unobfuscated")) { // support unobfuscated versions (release)
return proposedSemVer.replace("+unobfuscated", "-unobfuscated");
}
if (proposedSemVer.endsWith("+unobfuscated")) { // support unobfuscated versions (snapshot)
return proposedSemVer.replace("+unobfuscated", ".unobfuscated");
}
if (proposedSemVer.contains("-Experimental")) {
return proposedSemVer.replace("-Experimental", "-alpha.0.0.Experimental");
}
Expand Down Expand Up @@ -365,13 +416,56 @@ protected List<String> getParentVersionIds(String versionId) {
case "1.9.2" -> {
return List.of("1.9.1");
}
// support unobfuscated versions
case "25w45a_unobfuscated" -> {
return List.of("25w44a");
}
case "25w46a_unobfuscated" -> {
return List.of("25w45a_unobfuscated");
}
case "1.21.11-pre1_unobfuscated" -> {
return List.of("25w46a_unobfuscated");
}
case "1.21.11-pre2_unobfuscated" -> {
return List.of("1.21.11-pre1_unobfuscated");
}
case "1.21.11-pre3_unobfuscated" -> {
return List.of("1.21.11-pre2_unobfuscated");
}
case "1.21.11-pre4_unobfuscated" -> {
return List.of("1.21.11-pre3_unobfuscated");
}
case "1.21.11-pre5_unobfuscated" -> {
return List.of("1.21.11-pre4_unobfuscated");
}
case "1.21.11-rc1_unobfuscated" -> {
return List.of("1.21.11-pre5_unobfuscated");
}
case "1.21.11-rc2_unobfuscated" -> {
return List.of("1.21.11-rc1_unobfuscated");
}
case "1.21.11-rc3_unobfuscated" -> {
return List.of("1.21.11-rc2_unobfuscated");
}
case "1.21.11_unobfuscated" -> {
return List.of("1.21.10", "1.21.11-rc3_unobfuscated");
}
case "1.21.11-rc3" -> {
return List.of("1.21.11-rc2");
}
case "1.21.11" -> {
return List.of("1.21.10", "1.21.11-rc3");
}
case "26.1-snapshot-1" -> {
return List.of("1.21.11_unobfuscated");
}
default -> {
return null;
}
}
}

private static final Pattern NORMAL_SNAPSHOT_PATTERN = Pattern.compile("(^\\d\\dw\\d\\d[a-z]$)|(^\\d.\\d+(.\\d+)?(-(pre|rc)\\d+|_[a-z_\\-]+snapshot-\\d+| Pre-Release \\d+)?$)");
private static final Pattern NORMAL_SNAPSHOT_PATTERN = Pattern.compile("(^\\d\\dw\\d\\d[a-z]$)|(^\\d+.\\d+(.\\d+)?(-(snapshot-|pre|rc)\\d+|_[a-z_\\-]+snapshot-\\d+| Pre-Release \\d+)?$)");

@Override
public boolean shouldExcludeFromMainBranch(OrderedVersion mcVersion) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public boolean needsPackageFixingForLaunch() {

@Override
public boolean doMappingsExist(OrderedVersion mcVersion) {
return mcVersion.hasClientMojMaps() || mcVersion.hasServerMojMaps();
return mcVersion.isUnobfuscated() || mcVersion.hasClientMojMaps() || mcVersion.hasServerMojMaps();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,20 @@ public int javaVersion() {
return this.versionInfo().javaVersion() != null ? this.versionInfo().javaVersion().majorVersion() : 8;
}

public boolean isUnobfuscated() {
if (Objects.equals(this.versionInfo().type(), "unobfuscated")) {
return true;
}
try {
if (SemanticVersion.parse(this.semanticVersion()).getVersionComponent(0) >= 26) {
return true;
}
} catch (VersionParsingException e) {
MiscHelper.panicBecause(e, "Could not parse version %s (%s) as semantic version", launcherFriendlyVersionName(), semanticVersion());
}
return false;
}

public boolean isSnapshot() {
return Objects.equals(this.versionInfo().type(), "snapshot");
}
Expand Down
Loading