mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2026-06-19 07:11:02 +00:00
Resolved #871: Removed /iris std clean
This commit is contained in:
@@ -165,130 +165,6 @@ public class CommandStudio implements DecreeExecutor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Decree(description = "Clean an Iris Project, optionally beautifying JSON & fixing block ids with missing keys. Also rebuilds the vscode schemas. ")
|
|
||||||
public void clean(
|
|
||||||
@Param(description = "The project to update", contextual = true)
|
|
||||||
IrisDimension project,
|
|
||||||
|
|
||||||
@Param(defaultValue = "true", description = "Filters all valid JSON files with a beautifier (indentation: 4)")
|
|
||||||
boolean beautify,
|
|
||||||
|
|
||||||
@Param(name = "fix-ids", defaultValue = "true", description = "Fixes any block ids used such as \"dirt\" will be converted to \"minecraft:dirt\"")
|
|
||||||
boolean fixIds,
|
|
||||||
|
|
||||||
@Param(name = "rewrite-objects", defaultValue = "false", description = "Imports all objects and re-writes them cleaning up positions & block data in the process.")
|
|
||||||
boolean rewriteObjects
|
|
||||||
) {
|
|
||||||
KList<Job> jobs = new KList<>();
|
|
||||||
KList<File> files = new KList<File>();
|
|
||||||
files(Iris.instance.getDataFolder("packs", project.getLoadKey()), files);
|
|
||||||
MultiBurst burst = MultiBurst.burst;
|
|
||||||
|
|
||||||
jobs.add(new SingleJob("Updating Workspace", () -> {
|
|
||||||
if(!new IrisProject(Iris.service(StudioSVC.class).getWorkspaceFolder(project.getLoadKey())).updateWorkspace()) {
|
|
||||||
sender().sendMessage(C.GOLD + "Invalid project: " + project.getLoadKey() + ". Try deleting the code-workspace file and try again.");
|
|
||||||
}
|
|
||||||
J.sleep(250);
|
|
||||||
}));
|
|
||||||
|
|
||||||
sender().sendMessage("Files: " + files.size());
|
|
||||||
|
|
||||||
if(fixIds) {
|
|
||||||
QueueJob<File> r = new QueueJob<>() {
|
|
||||||
@Override
|
|
||||||
public void execute(File f) {
|
|
||||||
try {
|
|
||||||
JSONObject p = new JSONObject(IO.readAll(f));
|
|
||||||
fixBlocks(p);
|
|
||||||
J.sleep(1);
|
|
||||||
IO.writeAll(f, p.toString(4));
|
|
||||||
|
|
||||||
} catch(IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getName() {
|
|
||||||
return "Fixing IDs";
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
r.queue(files);
|
|
||||||
jobs.add(r);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(beautify) {
|
|
||||||
QueueJob<File> r = new QueueJob<>() {
|
|
||||||
@Override
|
|
||||||
public void execute(File f) {
|
|
||||||
try {
|
|
||||||
JSONObject p = new JSONObject(IO.readAll(f));
|
|
||||||
IO.writeAll(f, p.toString(4));
|
|
||||||
J.sleep(1);
|
|
||||||
} catch(IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getName() {
|
|
||||||
return "Beautify";
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
r.queue(files);
|
|
||||||
jobs.add(r);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(rewriteObjects) {
|
|
||||||
QueueJob<Runnable> q = new QueueJob<>() {
|
|
||||||
@Override
|
|
||||||
public void execute(Runnable runnable) {
|
|
||||||
runnable.run();
|
|
||||||
J.sleep(50);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getName() {
|
|
||||||
return "Rewriting Objects";
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
IrisData data = IrisData.get(Iris.service(StudioSVC.class).getWorkspaceFolder(project.getLoadKey()));
|
|
||||||
for(String f : data.getObjectLoader().getPossibleKeys()) {
|
|
||||||
Future<?> gg = burst.complete(() -> {
|
|
||||||
File ff = data.getObjectLoader().findFile(f);
|
|
||||||
IrisObject oo = new IrisObject(0, 0, 0);
|
|
||||||
try {
|
|
||||||
oo.read(ff);
|
|
||||||
} catch(Throwable e) {
|
|
||||||
Iris.error("FAILER TO READ: " + f);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
oo.write(ff);
|
|
||||||
} catch(IOException e) {
|
|
||||||
Iris.error("FAILURE TO WRITE: " + oo.getLoadFile());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
q.queue(() -> {
|
|
||||||
try {
|
|
||||||
gg.get();
|
|
||||||
} catch(InterruptedException | ExecutionException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
jobs.add(q);
|
|
||||||
}
|
|
||||||
|
|
||||||
new JobCollection("Cleaning", jobs).execute(sender());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Decree(description = "Get the version of a pack")
|
@Decree(description = "Get the version of a pack")
|
||||||
public void version(
|
public void version(
|
||||||
@Param(defaultValue = "default", description = "The dimension get the version of", aliases = "dim", contextual = true)
|
@Param(defaultValue = "default", description = "The dimension get the version of", aliases = "dim", contextual = true)
|
||||||
|
|||||||
Reference in New Issue
Block a user