mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-07-19 02:36:59 +00:00
76 lines
1.8 KiB
Java
76 lines
1.8 KiB
Java
package com.volmit.iris.command;
|
|
|
|
import org.bukkit.World;
|
|
import org.bukkit.entity.Player;
|
|
|
|
import com.volmit.iris.Iris;
|
|
import com.volmit.iris.gen.scaffold.IrisWorlds;
|
|
import com.volmit.iris.util.MortarCommand;
|
|
import com.volmit.iris.util.MortarSender;
|
|
import com.volmit.iris.util.Spiraler;
|
|
|
|
public class CommandIrisRegen extends MortarCommand
|
|
{
|
|
public CommandIrisRegen()
|
|
{
|
|
super("regenerate", "regen", "rg");
|
|
setDescription("Regenerate chunks");
|
|
requiresPermission(Iris.perm.studio);
|
|
setCategory("Regen");
|
|
}
|
|
|
|
@Override
|
|
public boolean handle(MortarSender sender, String[] args)
|
|
{
|
|
if(sender.isPlayer())
|
|
{
|
|
Player p = sender.player();
|
|
World world = p.getWorld();
|
|
if(!IrisWorlds.isIrisWorld(world))
|
|
{
|
|
sender.sendMessage("You must be in an iris world.");
|
|
return true;
|
|
}
|
|
|
|
if(IrisWorlds.getProvider(world).isFailing())
|
|
{
|
|
sender.sendMessage("This world is in a failed state! Cannot Regenerate!");
|
|
return true;
|
|
}
|
|
|
|
IrisWorlds.getProvisioned(world).clearRegeneratedLists();
|
|
if(args.length == 0)
|
|
{
|
|
sender.sendMessage("Regenerating your chunk");
|
|
IrisWorlds.getProvisioned(world).regenerate(p.getLocation().getChunk().getX(), p.getLocation().getChunk().getZ());
|
|
return true;
|
|
}
|
|
|
|
try
|
|
{
|
|
int m = Integer.valueOf(args[0]);
|
|
sender.sendMessage("Regenerating " + (m * m) + " Chunks Surrounding you");
|
|
new Spiraler(m, m, (a, b) -> IrisWorlds.getProvisioned(world).regenerate(a + p.getLocation().getChunk().getX(), b + p.getLocation().getChunk().getZ())).drain();
|
|
}
|
|
catch(Throwable e)
|
|
{
|
|
sender.sendMessage("/iris regen [SIZE]");
|
|
}
|
|
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
sender.sendMessage("Players only.");
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
protected String getArgsUsage()
|
|
{
|
|
return "/iris regen [size]";
|
|
}
|
|
}
|