Iris/src/main/java/com/volmit/iris/command/CommandIrisObjectSave.java

95 lines
2.0 KiB
Java

package com.volmit.iris.command;
import java.io.File;
import org.bukkit.Sound;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import com.volmit.iris.Iris;
import com.volmit.iris.IrisSettings;
import com.volmit.iris.manager.WandManager;
import com.volmit.iris.object.IrisObject;
import com.volmit.iris.util.MortarCommand;
import com.volmit.iris.util.MortarSender;
public class CommandIrisObjectSave extends MortarCommand
{
public CommandIrisObjectSave()
{
super("save");
requiresPermission(Iris.perm);
setCategory("Object");
setDescription("Save an object");
}
@Override
public boolean handle(MortarSender sender, String[] args)
{
if(!IrisSettings.get().isStudio())
{
sender.sendMessage("To use Iris Studio Objects, please enable studio in Iris/settings.json");
return true;
}
if(!sender.isPlayer())
{
sender.sendMessage("You don't have a wand");
return true;
}
if(args.length < 2)
{
sender.sendMessage("/iris o save <PROJECT> <object>");
sender.sendMessage("I.e. /iris o save overworld some-tree/tree1");
return true;
}
try
{
boolean overwrite = false;
for(String i : args)
{
if (i.equals("-o")) {
overwrite = true;
break;
}
}
Player p = sender.player();
ItemStack wand = p.getInventory().getItemInMainHand();
IrisObject o = WandManager.createSchematic(wand);
File file = Iris.proj.getWorkspaceFile(args[0], "objects", args[1] + ".iob");
if(file.exists())
{
if(!overwrite)
{
sender.sendMessage("File Exists. Overwrite by adding -o");
return true;
}
}
o.write(file);
sender.sendMessage("Saved " + args[1]);
p.getWorld().playSound(p.getLocation(), Sound.BLOCK_ENCHANTMENT_TABLE_USE, 1f, 1.5f);
}
catch(Throwable e)
{
sender.sendMessage("Failed to save " + args[1] + ". Are you holding your wand?");
e.printStackTrace();
}
return true;
}
@Override
protected String getArgsUsage()
{
return "[project] [name]";
}
}