Skip to content

Commit

Permalink
removed the -mclibs command line parameter
Browse files Browse the repository at this point in the history
  • Loading branch information
stefandollase committed May 31, 2017
1 parent b34ae7c commit ff7a905
Show file tree
Hide file tree
Showing 7 changed files with 104 additions and 30 deletions.
3 changes: 0 additions & 3 deletions src/main/java/amidst/CommandLineParameters.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,6 @@ public class CommandLineParameters {
@Option(name = "-mcpath", usage = "location of the '.minecraft' directory.", metaVar = "<directory>")
public volatile String dotMinecraftDirectory;

@Option(name = "-mclibs", usage = "location of the '.minecraft/libraries' directory", metaVar = "<directory>")
public volatile String minecraftLibrariesDirectory;

@Option(name = "-mcjar", usage = "location of the minecraft jar file", metaVar = "<file>", depends = { "-mcjson" })
public volatile String minecraftJarFile;

Expand Down
16 changes: 5 additions & 11 deletions src/main/java/amidst/mojangapi/MojangApiBuilder.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import amidst.mojangapi.file.DotMinecraftDirectoryNotFoundException;
import amidst.mojangapi.file.directory.DotMinecraftDirectory;
import amidst.mojangapi.file.directory.VersionDirectory;
import amidst.mojangapi.file.facade.MinecraftInstallation;
import amidst.mojangapi.file.service.DotMinecraftDirectoryService;
import amidst.mojangapi.minecraftinterface.local.LocalMinecraftInterfaceCreationException;
import amidst.mojangapi.world.WorldBuilder;
Expand All @@ -28,17 +29,10 @@ public MojangApiBuilder(WorldBuilder worldBuilder, CommandLineParameters paramet
public MojangApi construct()
throws DotMinecraftDirectoryNotFoundException,
LocalMinecraftInterfaceCreationException {
DotMinecraftDirectory dotMinecraftDirectory = dotMinecraftDirectoryService
.createDotMinecraftDirectory(parameters.dotMinecraftDirectory, parameters.minecraftLibrariesDirectory);
if (dotMinecraftDirectory.isValid()) {
AmidstLogger.info(
"using '.minecraft' directory at: '" + dotMinecraftDirectory.getRoot() + "', libraries: '"
+ dotMinecraftDirectory.getLibraries() + "'");
} else {
throw new DotMinecraftDirectoryNotFoundException(
"invalid '.minecraft' directory at: '" + dotMinecraftDirectory.getRoot() + "', libraries: '"
+ dotMinecraftDirectory.getLibraries() + "'");
}
DotMinecraftDirectory dotMinecraftDirectory = MinecraftInstallation
.newLocalMinecraftInstallation(parameters.dotMinecraftDirectory)
.getDotMinecraftDirectory();
AmidstLogger.info("using '.minecraft' directory at: '" + dotMinecraftDirectory.getRoot() + "'");
MojangApi result = new MojangApi(worldBuilder, dotMinecraftDirectory);
result.set(null, null, createVersionDirectory());
return result;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,31 @@
package amidst.mojangapi.file.directory;

import java.io.File;
import java.util.Objects;

import amidst.documentation.Immutable;

@Immutable
public class DotMinecraftDirectory {
/**
* Allows to customize all parts of the .minecraft directory, mainly for
* testing and the dev tools. Pass null to use default values.
*/
public static DotMinecraftDirectory newCustom(
File root,
File libraries,
File saves,
File versions,
File launcherProfilesJson) {
Objects.requireNonNull(root);
return new DotMinecraftDirectory(
root,
libraries != null ? libraries : new File(root, "libraries"),
saves != null ? saves : new File(root, "saves"),
versions != null ? versions : new File(root, "versions"),
launcherProfilesJson != null ? launcherProfilesJson : new File(root, "launcher_profiles.json"));
}

private final File root;
private final File libraries;
private final File saves;
Expand All @@ -20,16 +40,16 @@ public DotMinecraftDirectory(File root) {
this.launcherProfilesJson = new File(root, "launcher_profiles.json");
}

public DotMinecraftDirectory(File root, File libraries) {
private DotMinecraftDirectory(File root, File libraries, File saves, File versions, File launcherProfilesJson) {
this.root = root;
this.libraries = libraries;
this.saves = new File(root, "saves");
this.versions = new File(root, "versions");
this.launcherProfilesJson = new File(root, "launcher_profiles.json");
this.saves = saves;
this.versions = versions;
this.launcherProfilesJson = launcherProfilesJson;
}

public boolean isValid() {
return root.isDirectory() && libraries.isDirectory() && launcherProfilesJson.isFile();
return root.isDirectory() && libraries.isDirectory() && versions.isDirectory() && launcherProfilesJson.isFile();
}

public File getRoot() {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package amidst.mojangapi.file.facade;

import java.io.File;

import amidst.mojangapi.file.DotMinecraftDirectoryNotFoundException;
import amidst.mojangapi.file.directory.DotMinecraftDirectory;
import amidst.mojangapi.file.service.DotMinecraftDirectoryService;

public class MinecraftInstallation {
public static MinecraftInstallation newCustomMinecraftInstallation(
File libraries,
File saves,
File versions,
File launcherProfilesJson) throws DotMinecraftDirectoryNotFoundException {
DotMinecraftDirectory dotMinecraftDirectory = new DotMinecraftDirectoryService()
.createCustomDotMinecraftDirectory(libraries, saves, versions, launcherProfilesJson);
return new MinecraftInstallation(dotMinecraftDirectory);
}

public static MinecraftInstallation newLocalMinecraftInstallation(String preferredDotMinecraftDirectory)
throws DotMinecraftDirectoryNotFoundException {
DotMinecraftDirectory dotMinecraftDirectory = new DotMinecraftDirectoryService()
.createDotMinecraftDirectory(preferredDotMinecraftDirectory);
return new MinecraftInstallation(dotMinecraftDirectory);
}

private final DotMinecraftDirectory dotMinecraftDirectory;

public MinecraftInstallation(DotMinecraftDirectory dotMinecraftDirectory) {
this.dotMinecraftDirectory = dotMinecraftDirectory;
}

public DotMinecraftDirectory getDotMinecraftDirectory() {
return dotMinecraftDirectory;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import amidst.documentation.Immutable;
import amidst.documentation.NotNull;
import amidst.logging.AmidstLogger;
import amidst.mojangapi.file.DotMinecraftDirectoryNotFoundException;
import amidst.mojangapi.file.MojangApiParsingException;
import amidst.mojangapi.file.directory.DotMinecraftDirectory;
import amidst.mojangapi.file.directory.ProfileDirectory;
Expand All @@ -26,14 +27,30 @@ public class DotMinecraftDirectoryService {
private final FilenameService filenameService = new FilenameService();

@NotNull
public DotMinecraftDirectory createDotMinecraftDirectory(
String preferredDotMinecraftDirectory,
String preferredLibrariesDirectory) {
File dotMinecraftDirectory = findDotMinecraftDirectory(preferredDotMinecraftDirectory);
if (preferredLibrariesDirectory != null) {
return new DotMinecraftDirectory(dotMinecraftDirectory, new File(preferredLibrariesDirectory));
public DotMinecraftDirectory createCustomDotMinecraftDirectory(
File libraries,
File saves,
File versions,
File launcherProfilesJson) throws DotMinecraftDirectoryNotFoundException {
return validate(
DotMinecraftDirectory
.newCustom(getMinecraftDirectory(), libraries, saves, versions, launcherProfilesJson));
}

@NotNull
public DotMinecraftDirectory createDotMinecraftDirectory(String preferredDotMinecraftDirectory)
throws DotMinecraftDirectoryNotFoundException {
return validate(new DotMinecraftDirectory(findDotMinecraftDirectory(preferredDotMinecraftDirectory)));
}

@NotNull
private DotMinecraftDirectory validate(DotMinecraftDirectory dotMinecraftDirectory)
throws DotMinecraftDirectoryNotFoundException {
if (dotMinecraftDirectory.isValid()) {
return dotMinecraftDirectory;
} else {
return new DotMinecraftDirectory(dotMinecraftDirectory);
throw new DotMinecraftDirectoryNotFoundException(
"invalid '.minecraft' directory at: '" + dotMinecraftDirectory.getRoot() + "'");
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,10 @@

import amidst.devtools.utils.RecognisedVersionEnumBuilder;
import amidst.logging.AmidstLogger;
import amidst.mojangapi.file.DotMinecraftDirectoryNotFoundException;
import amidst.mojangapi.file.directory.DotMinecraftDirectory;
import amidst.mojangapi.file.directory.VersionDirectory;
import amidst.mojangapi.file.facade.MinecraftInstallation;
import amidst.mojangapi.file.json.versionlist.VersionListEntryJson;
import amidst.mojangapi.file.json.versionlist.VersionListJson;
import amidst.mojangapi.file.service.ClassLoaderService;
Expand All @@ -27,11 +29,14 @@ public class GenerateRecognisedVersionList {
private final List<String> downloadFailed = new LinkedList<>();
private final RecognisedVersionEnumBuilder builder = RecognisedVersionEnumBuilder.createPopulated();

public GenerateRecognisedVersionList(String prefix, String libraries, VersionListJson versionList) {
public GenerateRecognisedVersionList(String prefix, String libraries, VersionListJson versionList)
throws DotMinecraftDirectoryNotFoundException {
this.prefix = prefix;
this.versionList = versionList;
this.versions = new File(prefix);
this.dotMinecraftDirectory = new DotMinecraftDirectory(null, new File(libraries));
this.dotMinecraftDirectory = MinecraftInstallation
.newCustomMinecraftInstallation(new File(libraries), null, null, null)
.getDotMinecraftDirectory();
}

public void run() {
Expand Down
9 changes: 7 additions & 2 deletions src/test/java/amidst/devtools/GenerateWorldTestData.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,10 @@
import java.util.List;

import amidst.clazz.translator.ClassTranslator;
import amidst.mojangapi.file.DotMinecraftDirectoryNotFoundException;
import amidst.mojangapi.file.directory.DotMinecraftDirectory;
import amidst.mojangapi.file.directory.VersionDirectory;
import amidst.mojangapi.file.facade.MinecraftInstallation;
import amidst.mojangapi.file.json.versionlist.VersionListEntryJson;
import amidst.mojangapi.file.json.versionlist.VersionListJson;
import amidst.mojangapi.file.service.DownloadService;
Expand All @@ -28,12 +30,15 @@ public class GenerateWorldTestData {
private final List<String> failed = new LinkedList<>();
private final List<String> successful = new LinkedList<>();

public GenerateWorldTestData(String prefix, String libraries, VersionListJson versionList) {
public GenerateWorldTestData(String prefix, String libraries, VersionListJson versionList)
throws DotMinecraftDirectoryNotFoundException {
this.prefix = prefix;
this.libraries = new File(libraries);
this.versionList = versionList;
this.versions = new File(prefix);
this.dotMinecraftDirectory = new DotMinecraftDirectory(null, this.libraries);
this.dotMinecraftDirectory = MinecraftInstallation
.newCustomMinecraftInstallation(this.libraries, null, null, null)
.getDotMinecraftDirectory();
}

public void run() {
Expand Down

0 comments on commit ff7a905

Please sign in to comment.