Adds the SpongeForge server type
This commit is contained in:
@ -20,12 +20,14 @@ public class ServerVersionContainer {
|
||||
private String waterfallVersion;
|
||||
private String travertineVersion;
|
||||
private Map<String, String> spongeVanillaVersions;
|
||||
private Map<String, String> spongeForgeVersions;
|
||||
|
||||
/**
|
||||
* Initializes a new server version container
|
||||
*/
|
||||
private ServerVersionContainer() {
|
||||
spongeVanillaVersions = new HashMap<>();
|
||||
spongeForgeVersions = new HashMap<>();
|
||||
loadState();
|
||||
}
|
||||
|
||||
@ -51,6 +53,7 @@ public class ServerVersionContainer {
|
||||
this.waterfallVersion = null;
|
||||
this.travertineVersion = null;
|
||||
this.spongeVanillaVersions = new HashMap<>();
|
||||
this.spongeForgeVersions = new HashMap<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -60,8 +63,8 @@ public class ServerVersionContainer {
|
||||
"bungeeVersion;" + bungeeVersion + "\n" +
|
||||
"waterfallVersion;" + waterfallVersion + "\n" +
|
||||
"travertineVersion;" + travertineVersion + "\n" +
|
||||
"spongeVanillaVersions;" +
|
||||
mapToString(spongeVanillaVersions);
|
||||
"spongeVanillaVersions;" + mapToString(spongeVanillaVersions) + "\n" +
|
||||
"spongeForgeVersions;" + mapToString(spongeForgeVersions);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -92,10 +95,8 @@ public class ServerVersionContainer {
|
||||
PrintWriter file;
|
||||
try {
|
||||
if (!saveFile.exists()) {
|
||||
if (!saveFile.getParentFile().exists()) {
|
||||
if (!saveFile.getParentFile().mkdirs()) {
|
||||
throw new FileNotFoundException("Unable to create folder for version file");
|
||||
}
|
||||
if (!saveFile.getParentFile().exists() && !saveFile.getParentFile().mkdirs()) {
|
||||
throw new FileNotFoundException("Unable to create folder for version file");
|
||||
}
|
||||
if (!saveFile.createNewFile()) {
|
||||
throw new FileNotFoundException("Unable to create version file");
|
||||
@ -157,7 +158,10 @@ public class ServerVersionContainer {
|
||||
travertineVersion = variableValue;
|
||||
break;
|
||||
case "spongeVanillaVersions":
|
||||
parseSpongeVanillaVersions(variableValue);
|
||||
parseSpongeVersions(spongeVanillaVersions, variableValue);
|
||||
break;
|
||||
case "spongeForgeVersions":
|
||||
parseSpongeVersions(spongeForgeVersions, variableValue);
|
||||
break;
|
||||
default:
|
||||
throw new IllegalArgumentException("Invalid key encountered in the server version file.");
|
||||
@ -165,15 +169,16 @@ public class ServerVersionContainer {
|
||||
}
|
||||
|
||||
/**
|
||||
* Reads spongeVanilla versions from a text string and updates the version map
|
||||
* Reads sponge versions from a text string and updates the version map
|
||||
*
|
||||
* @param targetMap <p>The map to update</p>
|
||||
* @param data <p>The data string to parse</p>
|
||||
*/
|
||||
private void parseSpongeVanillaVersions(String data) {
|
||||
private void parseSpongeVersions(Map<String,String> targetMap, String data) {
|
||||
String[] versions = data.split(",");
|
||||
for (String version : versions) {
|
||||
String[] versionData = version.split("!");
|
||||
spongeVanillaVersions.put(versionData[0], versionData[1]);
|
||||
targetMap.put(versionData[0], versionData[1]);
|
||||
}
|
||||
}
|
||||
|
||||
@ -294,5 +299,25 @@ public class ServerVersionContainer {
|
||||
saveState();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a specific sponge forge version
|
||||
*
|
||||
* @param versionKey <p>The version to check current version of</p>
|
||||
* @return <p>The current sponge forge version</p>
|
||||
*/
|
||||
public String getSpongeForgeVersion(String versionKey) {
|
||||
return spongeForgeVersions.get(versionKey);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the current version for a given sponge forge version
|
||||
*
|
||||
* @param mapKey <p>The version key to set version for</p>
|
||||
* @param newValue <p>The new current version</p>
|
||||
*/
|
||||
public void setSpongeForgeVersion(String mapKey, String newValue) {
|
||||
spongeForgeVersions.put(mapKey, newValue);
|
||||
saveState();
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user