Compare commits

..

No commits in common. "7a7d454a169b6497ef95acf3dcf3623a1c24a908" and "730d8573a5a0c87934b8871db20f367eeac2a961" have entirely different histories.

3 changed files with 15 additions and 14 deletions

View file

@ -7,7 +7,7 @@ plugins {
} }
group = "dev.frogmc" group = "dev.frogmc"
version = "0.0.1-alpha.29" version = "0.0.1-alpha.27"
repositories { repositories {
maven { maven {

View file

@ -1,5 +1,5 @@
#Sat May 11 16:50:23 CEST 2024 #Sat May 11 16:50:23 CEST 2024
distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStorePath=wrapper/dists zipStorePath=wrapper/dists

View file

@ -26,7 +26,7 @@ import dev.frogmc.frogloader.impl.mod.ModPropertiesImpl;
import dev.frogmc.frogloader.impl.util.SystemProperties; import dev.frogmc.frogloader.impl.util.SystemProperties;
import dev.frogmc.thyroxine.HttpHelper; import dev.frogmc.thyroxine.HttpHelper;
import dev.frogmc.thyroxine.Thyroxine; import dev.frogmc.thyroxine.Thyroxine;
import dev.frogmc.thyroxine.api.data.MappingData; import dev.frogmc.thyroxine.api.data.MappingBundle;
import dev.frogmc.thyroxine.parser.tiny.TinyV2Parser; import dev.frogmc.thyroxine.parser.tiny.TinyV2Parser;
import dev.frogmc.thyroxine.provider.MojmapProvider; import dev.frogmc.thyroxine.provider.MojmapProvider;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -135,7 +135,7 @@ public class MinecraftGamePlugin implements GamePlugin {
if (!loader.isDevelopment()) { if (!loader.isDevelopment()) {
if (!Files.exists(remappedGamePath)) { if (!Files.exists(remappedGamePath)) {
LOGGER.atInfo().setMessage("Remapping game, this may take a moment...").log(); LOGGER.atInfo().setMessage("Remapping game, this may take a moment...").log();
MappingData mappings; MappingBundle mappings;
String mappingPath = System.getProperty(SystemProperties.INTERMEDIARY_MAPPINGS); String mappingPath = System.getProperty(SystemProperties.INTERMEDIARY_MAPPINGS);
try { try {
if (mappingPath != null) { if (mappingPath != null) {
@ -143,7 +143,7 @@ public class MinecraftGamePlugin implements GamePlugin {
} else { } else {
try { try {
mappings = MojmapProvider.get(version, remappedGamePath.resolveSibling("client-" + version + ".txt")) mappings = MojmapProvider.get(version, remappedGamePath.resolveSibling("client-" + version + ".txt"))
.flattenData().reverse(); .reverse();
} catch (NullPointerException e) { // NPE is only thrown if the mappings for this version can't be found } catch (NullPointerException e) { // NPE is only thrown if the mappings for this version can't be found
LOGGER.info("Mojmap is not available for version {}, using ornithe's calamus as a fallback!", version); LOGGER.info("Mojmap is not available for version {}, using ornithe's calamus as a fallback!", version);
Path file = remappedGamePath.resolveSibling("calamus-"+version+".tiny"); Path file = remappedGamePath.resolveSibling("calamus-"+version+".tiny");
@ -155,29 +155,30 @@ public class MinecraftGamePlugin implements GamePlugin {
location.replaceAll("[.:]", "/")+"/"+groups[1]+"-"+groups[2]+".jar"), location.replaceAll("[.:]", "/")+"/"+groups[1]+"-"+groups[2]+".jar"),
file); file);
} }
mappings = TinyV2Parser.parse(Files.readString(file)).flattenData(); mappings = TinyV2Parser.parse(Files.readString(file));
} }
} }
if (mappings == null) { if (mappings == null) {
mappings = readIntemediaryMappings("/mappings/mappings.tiny"); mappings = readIntemediaryMappings("/mappings/mappings.tiny");
} }
if (mappings != null) { if (mappings != null) {
Thyroxine.remap(mappings, gamePath, remappedGamePath, true, false); Thyroxine.remap(mappings.flattenData(), gamePath, remappedGamePath, true, false);
} else { return;
runtimePath = gamePath;
LOGGER.error("No intermediary mappings found! The game will be launched obfuscated. Mods are likely to error! " +
"You may need to specify the path of your mappings manually. " +
"Use -D" + SystemProperties.INTERMEDIARY_MAPPINGS + " to specify a file!");
} }
} catch (Exception e) { } catch (Exception e) {
throw new IllegalStateException("Failed to remap game: ", e); throw new IllegalStateException("Failed to remap game: ", e);
} }
runtimePath = gamePath;
LOGGER.error("No intermediary mappings found! The game will be launched obfuscated. Mods are likely to error! " +
"You may need to specify the path of your mappings manually. " +
"Use -D" + SystemProperties.INTERMEDIARY_MAPPINGS + " to specify a file!");
} }
} }
FrogLoaderImpl.getInstance().getClassloader().addURL(runtimePath.toUri().toURL()); FrogLoaderImpl.getInstance().getClassloader().addURL(runtimePath.toUri().toURL());
} }
private MappingData readIntemediaryMappings(String path) throws IOException { private MappingBundle readIntemediaryMappings(String path) throws IOException {
URL resource = this.getClass().getResource(path); URL resource = this.getClass().getResource(path);
String data; String data;
if (resource != null) { if (resource != null) {
@ -186,7 +187,7 @@ public class MinecraftGamePlugin implements GamePlugin {
data = Files.readString(Paths.get(path)); data = Files.readString(Paths.get(path));
} }
try { try {
MappingData mappings = TinyV2Parser.parse(data).flattenData(); MappingBundle mappings = TinyV2Parser.parse(data);
LOGGER.warn("Using non-standard intermediary mappings! Mods may not work!"); LOGGER.warn("Using non-standard intermediary mappings! Mods may not work!");
return mappings; return mappings;
} catch (IllegalStateException e) { } catch (IllegalStateException e) {