Fix command issues with not in iris world

This commit is contained in:
Daniel Mills 2020-10-22 18:06:58 -04:00
parent bfe7cf0ed7
commit c191060b73
8 changed files with 28 additions and 22 deletions

View File

@ -228,7 +228,7 @@ public class Iris extends MortarPlugin
for(World i : Bukkit.getWorlds()) for(World i : Bukkit.getWorlds())
{ {
if(i.getGenerator() instanceof ProvisionBukkit) if(IrisWorlds.isIrisWorld(i))
{ {
IrisWorlds.getProvider(i).close(); IrisWorlds.getProvider(i).close();
} }

View File

@ -5,7 +5,6 @@ import org.bukkit.entity.Player;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.gen.IrisTerrainProvider; import com.volmit.iris.gen.IrisTerrainProvider;
import com.volmit.iris.gen.provisions.ProvisionBukkit;
import com.volmit.iris.gen.scaffold.IrisWorlds; import com.volmit.iris.gen.scaffold.IrisWorlds;
import com.volmit.iris.util.MortarCommand; import com.volmit.iris.util.MortarCommand;
import com.volmit.iris.util.MortarSender; import com.volmit.iris.util.MortarSender;
@ -34,7 +33,7 @@ public class CommandIrisCTC extends MortarCommand
Player p = sender.player(); Player p = sender.player();
World world = p.getWorld(); World world = p.getWorld();
if(!(world.getGenerator() instanceof ProvisionBukkit)) if(!IrisWorlds.isIrisWorld(world))
{ {
sender.sendMessage("You must be in an iris world."); sender.sendMessage("You must be in an iris world.");
return true; return true;
@ -44,6 +43,7 @@ public class CommandIrisCTC extends MortarCommand
int m = Math.min(Math.max(Integer.valueOf(args[0]), 2), 256); int m = Math.min(Math.max(Integer.valueOf(args[0]), 2), 256);
g.changeThreadCount(m); g.changeThreadCount(m);
sender.sendMessage("Thread count changed to " + m); sender.sendMessage("Thread count changed to " + m);
rejectAny(1, sender, args);
return true; return true;
} }

View File

@ -5,7 +5,6 @@ import org.bukkit.entity.Player;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.gen.IrisTerrainProvider; import com.volmit.iris.gen.IrisTerrainProvider;
import com.volmit.iris.gen.provisions.ProvisionBukkit;
import com.volmit.iris.gen.scaffold.IrisMetrics; import com.volmit.iris.gen.scaffold.IrisMetrics;
import com.volmit.iris.gen.scaffold.IrisWorlds; import com.volmit.iris.gen.scaffold.IrisWorlds;
import com.volmit.iris.util.C; import com.volmit.iris.util.C;
@ -30,7 +29,7 @@ public class CommandIrisMetrics extends MortarCommand
{ {
Player p = sender.player(); Player p = sender.player();
World world = p.getWorld(); World world = p.getWorld();
if(!(world.getGenerator() instanceof ProvisionBukkit)) if(!IrisWorlds.isIrisWorld(world))
{ {
sender.sendMessage("You must be in an iris world."); sender.sendMessage("You must be in an iris world.");
return true; return true;

View File

@ -4,9 +4,7 @@ import org.bukkit.World;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.gen.IrisTerrainProvider; import com.volmit.iris.gen.scaffold.IrisWorlds;
import com.volmit.iris.gen.provisions.ProvisionBukkit;
import com.volmit.iris.gen.scaffold.Provisioned;
import com.volmit.iris.util.MortarCommand; import com.volmit.iris.util.MortarCommand;
import com.volmit.iris.util.MortarSender; import com.volmit.iris.util.MortarSender;
import com.volmit.iris.util.Spiraler; import com.volmit.iris.util.Spiraler;
@ -28,25 +26,23 @@ public class CommandIrisRegen extends MortarCommand
{ {
Player p = sender.player(); Player p = sender.player();
World world = p.getWorld(); World world = p.getWorld();
if(!(world.getGenerator() instanceof ProvisionBukkit)) if(!IrisWorlds.isIrisWorld(world))
{ {
sender.sendMessage("You must be in an iris world."); sender.sendMessage("You must be in an iris world.");
return true; return true;
} }
Provisioned pr = (Provisioned) world.getGenerator(); if(IrisWorlds.getProvider(world).isFailing())
if(((IrisTerrainProvider) pr.getProvider()).isFailing())
{ {
sender.sendMessage("This world is in a failed state! Cannot Regenerate!"); sender.sendMessage("This world is in a failed state! Cannot Regenerate!");
return true; return true;
} }
pr.clearRegeneratedLists(); IrisWorlds.getProvisioned(world).clearRegeneratedLists();
if(args.length == 0) if(args.length == 0)
{ {
sender.sendMessage("Regenerating your chunk"); sender.sendMessage("Regenerating your chunk");
pr.regenerate(p.getLocation().getChunk().getX(), p.getLocation().getChunk().getZ()); IrisWorlds.getProvisioned(world).regenerate(p.getLocation().getChunk().getX(), p.getLocation().getChunk().getZ());
return true; return true;
} }
@ -54,7 +50,7 @@ public class CommandIrisRegen extends MortarCommand
{ {
int m = Integer.valueOf(args[0]); int m = Integer.valueOf(args[0]);
sender.sendMessage("Regenerating " + (m * m) + " Chunks Surrounding you"); sender.sendMessage("Regenerating " + (m * m) + " Chunks Surrounding you");
new Spiraler(m, m, (a, b) -> pr.regenerate(a + p.getLocation().getChunk().getX(), b + p.getLocation().getChunk().getZ())).drain(); new Spiraler(m, m, (a, b) -> IrisWorlds.getProvisioned(world).regenerate(a + p.getLocation().getChunk().getX(), b + p.getLocation().getChunk().getZ())).drain();
} }
catch(Throwable e) catch(Throwable e)

View File

@ -37,7 +37,7 @@ public class CommandIrisStudioGoto extends MortarCommand
Player p = sender.player(); Player p = sender.player();
World world = p.getWorld(); World world = p.getWorld();
if(!(world.getGenerator() instanceof ProvisionBukkit)) if(!IrisWorlds.isIrisWorld(world))
{ {
sender.sendMessage("You must be in an iris world."); sender.sendMessage("You must be in an iris world.");
return true; return true;

View File

@ -34,7 +34,7 @@ public class CommandIrisStudioHotload extends MortarCommand
{ {
Player p = sender.player(); Player p = sender.player();
World world = p.getWorld(); World world = p.getWorld();
if(!(world.getGenerator() instanceof ProvisionBukkit)) if(!IrisWorlds.isIrisWorld(world))
{ {
sender.sendMessage("You must be in an iris world."); sender.sendMessage("You must be in an iris world.");
return true; return true;

View File

@ -35,7 +35,7 @@ public class CommandIrisStudioSummon extends MortarCommand
{ {
Player p = sender.player(); Player p = sender.player();
World world = p.getWorld(); World world = p.getWorld();
if(!(world.getGenerator() instanceof ProvisionBukkit)) if(!IrisWorlds.isIrisWorld(world))
{ {
sender.sendMessage("You must be in an iris world."); sender.sendMessage("You must be in an iris world.");
return true; return true;

View File

@ -50,7 +50,9 @@ public abstract class MortarCommand implements ICommand
continue; continue;
} }
} }
b = true; b = true;
sender.sendMessage(C.GREEN + i.getNode() + " " + C.WHITE + i.getArgsUsage() + C.GRAY + " - " + i.getDescription()); sender.sendMessage(C.GREEN + i.getNode() + " " + C.WHITE + i.getArgsUsage() + C.GRAY + " - " + i.getDescription());
} }
@ -92,18 +94,27 @@ public abstract class MortarCommand implements ICommand
requiredPermissions.add(node); requiredPermissions.add(node);
} }
public void rejectAny(MortarSender sender, String[] a) public void rejectAny(int past, MortarSender sender, String[] a)
{ {
if(a.length > 0) if(a.length > past)
{ {
int p = past;
String m = ""; String m = "";
for(String i : a) for(String i : a)
{ {
m += i + " "; p--;
if(p < 0)
{
m += i + ", ";
}
} }
sender.sendMessage("Unknown Parameters: " + m); if(!m.trim().isEmpty())
{
sender.sendMessage("Parameters Ignored: " + m);
}
} }
} }