Iris create now uses mv create

This commit is contained in:
Daniel Mills 2021-01-03 10:25:31 -05:00
parent 2915ef885e
commit fb07b280be

View File

@ -1,6 +1,7 @@
package com.volmit.iris.manager.command; package com.volmit.iris.manager.command;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.manager.IrisDataManager;
import com.volmit.iris.nms.INMS; import com.volmit.iris.nms.INMS;
import com.volmit.iris.object.IrisDimension; import com.volmit.iris.object.IrisDimension;
import com.volmit.iris.pregen.Pregenerator; import com.volmit.iris.pregen.Pregenerator;
@ -33,7 +34,7 @@ public class CommandIrisCreate extends MortarCommand
{ {
if(args.length < 1) if(args.length < 1)
{ {
sender.sendMessage("/iris create <NAME> [type=overworld] [seed=1337] [pregen=5000] [-zip]"); sender.sendMessage("/iris create <NAME> [type=overworld] [seed=1337] [pregen=5000]");
return true; return true;
} }
@ -41,8 +42,32 @@ public class CommandIrisCreate extends MortarCommand
String type = "overworld"; String type = "overworld";
long seed = 1337; long seed = 1337;
int pregen = 0; int pregen = 0;
File folder = new File(worldName); boolean multiverse = Iris.linkMultiverseCore.supported();
for(String i : args)
{
type = i.startsWith("type=") ? i.split("\\Q=\\E")[1] : type;
seed = i.startsWith("seed=") ? Long.valueOf(i.split("\\Q=\\E")[1]) : seed;
pregen = i.startsWith("pregen=") ? Integer.parseInt(i.split("\\Q=\\E")[1]) : pregen;
}
Iris.linkMultiverseCore.assignWorldType(worldName, type);
World world = null;
IrisDimension dim;
File folder = new File(worldName);
if(multiverse)
{
dim = IrisDataManager.loadAnyDimension(type);
String command = "mv create " + worldName + " " + Iris.linkMultiverseCore.envName(dim.getEnvironment());
command += " -s " + seed;
command += " -g Iris";
sender.sendMessage("Delegating " + command);
Bukkit.dispatchCommand(sender, command);
world= Bukkit.getWorld(worldName);
}
else
{
if(folder.exists()) if(folder.exists())
{ {
sender.sendMessage("That world folder already exists!"); sender.sendMessage("That world folder already exists!");
@ -52,14 +77,7 @@ public class CommandIrisCreate extends MortarCommand
File iris = new File(folder, "iris"); File iris = new File(folder, "iris");
iris.mkdirs(); iris.mkdirs();
for(String i : args) dim = Iris.proj.installIntoWorld(sender, type, folder);
{
type = i.startsWith("type=") ? i.split("\\Q=\\E")[1] : type;
seed = i.startsWith("seed=") ? Long.valueOf(i.split("\\Q=\\E")[1]) : seed;
pregen = i.startsWith("pregen=") ? Integer.parseInt(i.split("\\Q=\\E")[1]) : pregen;
}
IrisDimension dim = Iris.proj.installIntoWorld(sender, type, folder);
WorldCreator wc = new IrisWorldCreator().dimension(dim).name(worldName) WorldCreator wc = new IrisWorldCreator().dimension(dim).name(worldName)
.productionMode().seed(seed).create(); .productionMode().seed(seed).create();
@ -92,9 +110,12 @@ public class CommandIrisCreate extends MortarCommand
} }
}); });
World world = INMS.get().createWorld(wc, false); world = INMS.get().createWorld(wc, false);
done.set(true); done.set(true);
}
sender.sendMessage(worldName + " Spawn Area generated."); sender.sendMessage(worldName + " Spawn Area generated.");
O<Boolean> b = new O<Boolean>(); O<Boolean> b = new O<Boolean>();
@ -104,7 +125,7 @@ public class CommandIrisCreate extends MortarCommand
{ {
b.set(false); b.set(false);
sender.sendMessage("Pregenerating " + worldName + " " + pregen + " x " + pregen); sender.sendMessage("Pregenerating " + worldName + " " + pregen + " x " + pregen);
sender.sendMessage("Expect Extreme server lag during this time. Use '/iris world pregen stop' to cancel"); sender.sendMessage("Expect server lag during this time. Use '/iris pregen stop' to cancel");
new Pregenerator(world, pregen, () -> new Pregenerator(world, pregen, () ->
{ {
@ -114,13 +135,7 @@ public class CommandIrisCreate extends MortarCommand
IrisDimension dimm = dim; IrisDimension dimm = dim;
long seedd = seed; long seedd = seed;
World ww = world;
if(Iris.linkMultiverseCore.supported())
{
Iris.linkMultiverseCore.addWorld(worldName, dimm, seedd + "");
sender.sendMessage("Added " + worldName + " to MultiverseCore.");
}
J.a(() -> J.a(() ->
{ {
while(!b.get()) while(!b.get())
@ -128,9 +143,10 @@ public class CommandIrisCreate extends MortarCommand
J.sleep(1000); J.sleep(1000);
} }
Bukkit.getScheduler().scheduleSyncDelayedTask(Iris.instance, () -> Bukkit.getScheduler().scheduleSyncDelayedTask(Iris.instance, () ->
{ {
world.save(); ww.save();
sender.sendMessage("All Done!"); sender.sendMessage("All Done!");
}); });
}); });
@ -141,6 +157,6 @@ public class CommandIrisCreate extends MortarCommand
@Override @Override
protected String getArgsUsage() protected String getArgsUsage()
{ {
return "<name> [type=overworld] [seed=1337] [pregen=5000] [-zip]"; return "<name> [type=overworld] [seed=1337] [pregen=5000]";
} }
} }