Merge pull request #406 from CocoTheOwner/jigsawexit

Create a jigsaw exit command
This commit is contained in:
Dan 2021-07-08 04:31:51 -04:00 committed by GitHub
commit e4ea01cfd2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 69 additions and 5 deletions

View File

@ -0,0 +1,59 @@
package com.volmit.iris.manager.command.jigsaw;
import com.volmit.iris.Iris;
import com.volmit.iris.IrisSettings;
import com.volmit.iris.manager.edit.JigsawEditor;
import com.volmit.iris.util.KList;
import com.volmit.iris.util.MortarCommand;
import com.volmit.iris.util.MortarSender;
import java.io.File;
public class CommandIrisJigsawExit extends MortarCommand
{
public CommandIrisJigsawExit()
{
super("exit", "x", "close", "stop");
requiresPermission(Iris.perm);
setCategory("Jigsaw");
setDescription("Close a currently open piece without saving");
}
@Override
public void addTabOptions(MortarSender sender, String[] args, KList<String> list) {
}
@Override
public boolean handle(MortarSender sender, String[] args)
{
if(!IrisSettings.get().isStudio())
{
sender.sendMessage("To use Iris Studio Jigsaw, please enable studio in Iris/settings.json");
return true;
}
if(!sender.isPlayer())
{
sender.sendMessage("Ingame only");
return true;
}
JigsawEditor editor = JigsawEditor.editors.get(sender.player());
if(editor == null)
{
sender.sendMessage("You don't have any pieces open to close!");
return true;
}
editor.exit();
return true;
}
@Override
protected String getArgsUsage()
{
return "";
}
}

View File

@ -146,11 +146,7 @@ public class JigsawEditor implements Listener {
public void close() public void close()
{ {
J.car(ticker); exit();
Iris.instance.unregisterListener(this);
object.unplaceCenterY(origin);
editors.remove(player);
falling.v().forEach(Runnable::run);
try { try {
IO.writeAll(targetSaveLocation, new JSONObject(new Gson().toJson(piece)).toString(4)); IO.writeAll(targetSaveLocation, new JSONObject(new Gson().toJson(piece)).toString(4));
} catch (IOException e) { } catch (IOException e) {
@ -158,6 +154,15 @@ public class JigsawEditor implements Listener {
} }
} }
public void exit()
{
J.car(ticker);
Iris.instance.unregisterListener(this);
object.unplaceCenterY(origin);
editors.remove(player);
falling.v().forEach(Runnable::run);
}
public void onTick() public void onTick()
{ {
if(cl.flip()) if(cl.flip())