Splits the Waterfall and Travertine server types by Minecraft version
All checks were successful
KnarCraft/Minecraft-Server-Launcher/pipeline/head This commit looks good

This commit is contained in:
2020-08-19 13:06:27 +02:00
parent 4f60ed5d10
commit 23161c1a8d
6 changed files with 56 additions and 46 deletions

View File

@ -17,8 +17,8 @@ public class ServerVersionContainer {
private String vanillaVersion;
private String snapshotVersion;
private String bungeeVersion;
private String waterfallVersion;
private String travertineVersion;
private Map<String, String> waterfallVersions;
private Map<String, String> travertineVersions;
private Map<String, String> spongeVanillaVersions;
private Map<String, String> spongeForgeVersions;
@ -26,8 +26,10 @@ public class ServerVersionContainer {
* Initializes a new server version container
*/
private ServerVersionContainer() {
spongeVanillaVersions = new HashMap<>();
spongeForgeVersions = new HashMap<>();
this.waterfallVersions = new HashMap<>();
this.travertineVersions = new HashMap<>();
this.spongeVanillaVersions = new HashMap<>();
this.spongeForgeVersions = new HashMap<>();
loadState();
}
@ -50,8 +52,8 @@ public class ServerVersionContainer {
this.vanillaVersion = null;
this.snapshotVersion = null;
this.bungeeVersion = null;
this.waterfallVersion = null;
this.travertineVersion = null;
this.waterfallVersions = new HashMap<>();
this.travertineVersions = new HashMap<>();
this.spongeVanillaVersions = new HashMap<>();
this.spongeForgeVersions = new HashMap<>();
}
@ -61,8 +63,8 @@ public class ServerVersionContainer {
return "vanillaVersion;" + vanillaVersion + "\n" +
"snapshotVersion;" + snapshotVersion + "\n" +
"bungeeVersion;" + bungeeVersion + "\n" +
"waterfallVersion;" + waterfallVersion + "\n" +
"travertineVersion;" + travertineVersion + "\n" +
"waterfallVersions;" + mapToString(waterfallVersions) + "\n" +
"travertineVersions;" + mapToString(travertineVersions) + "\n" +
"spongeVanillaVersions;" + mapToString(spongeVanillaVersions) + "\n" +
"spongeForgeVersions;" + mapToString(spongeForgeVersions);
}
@ -151,17 +153,17 @@ public class ServerVersionContainer {
case "bungeeVersion":
bungeeVersion = variableValue;
break;
case "waterfallVersion":
waterfallVersion = variableValue;
case "waterfallVersions":
parseVersionsToMap(waterfallVersions, variableValue);
break;
case "travertineVersion":
travertineVersion = variableValue;
case "travertineVersions":
parseVersionsToMap(travertineVersions, variableValue);
break;
case "spongeVanillaVersions":
parseSpongeVersions(spongeVanillaVersions, variableValue);
parseVersionsToMap(spongeVanillaVersions, variableValue);
break;
case "spongeForgeVersions":
parseSpongeVersions(spongeForgeVersions, variableValue);
parseVersionsToMap(spongeForgeVersions, variableValue);
break;
default:
throw new IllegalArgumentException("Invalid key encountered in the server version file.");
@ -169,12 +171,12 @@ public class ServerVersionContainer {
}
/**
* Reads sponge versions from a text string and updates the version map
* Reads 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 parseSpongeVersions(Map<String,String> targetMap, String data) {
private void parseVersionsToMap(Map<String,String> targetMap, String data) {
String[] versions = data.split(",");
for (String version : versions) {
String[] versionData = version.split("!");
@ -241,40 +243,44 @@ public class ServerVersionContainer {
}
/**
* Gets the current waterfall version
* Gets a specific waterfall version
*
* @param versionKey <p>The version to check current version of</p>
* @return <p>The current waterfall version</p>
*/
public String getWaterfallVersion() {
return this.waterfallVersion;
public String getWaterfallVersion(String versionKey) {
return this.waterfallVersions.get(versionKey);
}
/**
* Sets the waterfall server version
* Sets the current version for a given waterfall version
*
* @param newVersion <p>The new waterfall server version</p>
* @param mapKey <p>The version key to set version for</p>
* @param newValue <p>The new current version</p>
*/
public void setWaterfallVersion(String newVersion) {
this.waterfallVersion = newVersion;
public void setWaterfallVersion(String mapKey, String newValue) {
this.waterfallVersions.put(mapKey, newValue);
saveState();
}
/**
* Gets the current travertine server version
* Gets a specific travertine version
*
* @param versionKey <p>The version to check current version of</p>
* @return <p>The current travertine version</p>
*/
public String getTravertineVersion() {
return this.travertineVersion;
public String getTravertineVersion(String versionKey) {
return this.travertineVersions.get(versionKey);
}
/**
* Sets the travertine server version
* Sets the current version for a given travertine version
*
* @param newVersion <p>The new travertine server version</p>
* @param mapKey <p>The version key to set version for</p>
* @param newValue <p>The new current version</p>
*/
public void setTravertineVersion(String newVersion) {
this.travertineVersion = newVersion;
public void setTravertineVersion(String mapKey, String newValue) {
this.travertineVersions.put(mapKey, newValue);
saveState();
}