add ability to input seeds as strings

This commit is contained in:
C10udburst
2021-08-26 10:58:37 +02:00
parent cc9847138d
commit 2b79b81c92
2 changed files with 21 additions and 14 deletions

View File

@@ -41,17 +41,17 @@ public class Seeds extends System<Seeds> {
version = MCVersion.latest();
return new Seed(mc.getServer().getOverworld().getSeed(), version);
}
return seeds.get(Utils.getWorldName());
}
public void setSeed(long seed, MCVersion version) {
public void setSeed(String seed, MCVersion version) {
if (mc.isIntegratedServerRunning()) return;
seeds.put(Utils.getWorldName(), new Seed(seed, version));
seeds.put(Utils.getWorldName(), new Seed(toSeed(seed), version));
}
public void setSeed(long seed) {
public void setSeed(String seed) {
ServerInfo server = mc.getCurrentServerEntry();
MCVersion ver = null;
if (server != null)
@@ -62,7 +62,6 @@ public class Seeds extends System<Seeds> {
sendInvalidVersionWarning(seed, targetVer);
ver = MCVersion.latest();
}
setSeed(seed, ver);
}
@@ -84,9 +83,18 @@ public class Seeds extends System<Seeds> {
return this;
}
private static void sendInvalidVersionWarning(long seed, String targetVer) {
// https://minecraft.fandom.com/wiki/Seed_(level_generation)#Java_Edition
private static long toSeed(String inSeed) {
try {
return Long.parseLong(inSeed);
} catch (NumberFormatException e) {
return inSeed.hashCode();
}
}
private static void sendInvalidVersionWarning(String seed, String targetVer) {
BaseText msg = new LiteralText(String.format("Couldn't resolve minecraft version \"%s\". Using %s instead. If you wish to change the version run: ", targetVer, MCVersion.latest().name));
String cmd = String.format("%sseed %d ", Config.get().prefix, seed);
String cmd = String.format("%sseed %s ", Config.get().prefix, seed);
BaseText cmdText = new LiteralText(cmd+"<version>");
cmdText.setStyle(cmdText.getStyle()
.withUnderline(true)