mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-12-27 02:59:06 +00:00
133 lines
3.6 KiB
Java
133 lines
3.6 KiB
Java
package ninja.bytecode.iris;
|
|
|
|
import java.io.File;
|
|
|
|
import org.bukkit.ChatColor;
|
|
import org.bukkit.Sound;
|
|
import org.bukkit.World;
|
|
import org.bukkit.command.Command;
|
|
import org.bukkit.command.CommandExecutor;
|
|
import org.bukkit.command.CommandSender;
|
|
import org.bukkit.entity.Player;
|
|
|
|
import ninja.bytecode.iris.controller.TimingsController;
|
|
import ninja.bytecode.iris.generator.IrisGenerator;
|
|
import ninja.bytecode.iris.pack.IrisBiome;
|
|
import ninja.bytecode.shuriken.execution.J;
|
|
import ninja.bytecode.shuriken.format.F;
|
|
import ninja.bytecode.shuriken.io.IO;
|
|
|
|
public class CommandIris implements CommandExecutor
|
|
{
|
|
public void msg(CommandSender s, String msg)
|
|
{
|
|
s.sendMessage(ChatColor.DARK_PURPLE + "[" + ChatColor.GRAY + "Iris" + ChatColor.DARK_PURPLE + "]" + ChatColor.GRAY + ": " + msg);
|
|
}
|
|
|
|
@Override
|
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
|
|
{
|
|
if(args.length == 0)
|
|
{
|
|
msg(sender, "/iris timings - Iris Timings");
|
|
msg(sender, "/iris rtp [biome] - RTP to a biome");
|
|
msg(sender, "/iris reload - Reload & Recompile");
|
|
msg(sender, "/iris clean - Clean Pack Install in Iris Folder");
|
|
msg(sender, "/ish - Iris Schematic Commands");
|
|
}
|
|
|
|
if(args.length > 0)
|
|
{
|
|
if(args[0].equalsIgnoreCase("timings"))
|
|
{
|
|
double t = Iris.getController(TimingsController.class).getResult("terrain");
|
|
double d = Iris.getController(TimingsController.class).getResult("decor");
|
|
msg(sender, "Generation: " + ChatColor.BOLD + ChatColor.WHITE + F.duration(t + d, 2));
|
|
msg(sender, " \\Terrain: " + ChatColor.BOLD + ChatColor.WHITE + F.duration(t, 2));
|
|
msg(sender, " \\Decor: " + ChatColor.BOLD + ChatColor.WHITE + F.duration(d, 2));
|
|
}
|
|
|
|
if(args[0].equalsIgnoreCase("rtp"))
|
|
{
|
|
if(sender instanceof Player)
|
|
{
|
|
Player p = (Player) sender;
|
|
World w = p.getWorld();
|
|
|
|
if(w.getGenerator() instanceof IrisGenerator)
|
|
{
|
|
if(args.length > 1)
|
|
{
|
|
IrisGenerator g = (IrisGenerator) w.getGenerator();
|
|
IrisBiome b = null;
|
|
for(IrisBiome i : g.getLoadedBiomes())
|
|
{
|
|
if(args[1].toLowerCase().equals(i.getName().toLowerCase().replaceAll("\\Q \\E", "_")))
|
|
{
|
|
b = i;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if(b == null)
|
|
{
|
|
msg(sender, "Unknown Biome: " + args[1]);
|
|
}
|
|
|
|
else
|
|
{
|
|
msg(sender, "Looking for " + b.getName() + "...");
|
|
boolean f = false;
|
|
for(int i = 0; i < 10000; i++)
|
|
{
|
|
int x = (int) ((int) (29999983 / 1.2) * Math.random());
|
|
int z = (int) ((int) (29999983 / 1.2) * Math.random());
|
|
|
|
if(g.getBiome(x, z).equals(b))
|
|
{
|
|
f = true;
|
|
p.teleport(w.getHighestBlockAt(x, z).getLocation());
|
|
break;
|
|
}
|
|
}
|
|
|
|
if(!f)
|
|
{
|
|
msg(sender, "Looked for " + b.getName() + " in 10,000 different locations and could not find it. Try again!");
|
|
}
|
|
}
|
|
}
|
|
|
|
else
|
|
{
|
|
int x = (int) ((int) (29999983 / 1.2) * Math.random());
|
|
int z = (int) ((int) (29999983 / 1.2) * Math.random());
|
|
p.teleport(w.getHighestBlockAt(x, z).getLocation());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if(args[0].equalsIgnoreCase("reload"))
|
|
{
|
|
msg(sender, "Reloading Iris...");
|
|
Iris.instance.reload();
|
|
}
|
|
|
|
if(args[0].equalsIgnoreCase("clean"))
|
|
{
|
|
msg(sender, "Poof!");
|
|
|
|
if(sender instanceof Player)
|
|
{
|
|
((Player) sender).playSound(((Player) sender).getLocation(), Sound.BLOCK_END_PORTAL_SPAWN, 0.33f, (float) 1.65);
|
|
}
|
|
|
|
J.attempt(() -> IO.delete(new File(Iris.instance.getDataFolder(), "pack")));
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
}
|