Merge remote-tracking branch 'origin/master'

This commit is contained in:
cyberpwn 2021-09-10 09:13:10 -04:00
commit 37404b6619
8 changed files with 31 additions and 14 deletions

View File

@ -144,6 +144,7 @@ public class CommandIris implements DecreeExecutor {
) {
boolean to = on == null ? !IrisSettings.get().getGeneral().isDebug() : on;
IrisSettings.get().getGeneral().setDebug(to);
IrisSettings.get().forceSave();
sender().sendMessage(C.GREEN + "Set debug to: " + to);
}
@ -158,6 +159,7 @@ public class CommandIris implements DecreeExecutor {
@Param(name = "overwrite", description = "Whether or not to overwrite the pack with the downloaded one", aliases = "force", defaultValue = "false")
boolean overwrite
) {
branch = pack.equals("overworld") ? "stable" : branch;
sender().sendMessage(C.GREEN + "Downloading pack: " + pack + "/" + branch + (trim ? " trimmed" : "") + (overwrite ? " overwriting" : ""));
Iris.service(StudioSVC.class).downloadSearch(sender(), "IrisDimensions/" + pack + "/" + branch, trim, overwrite);
}

View File

@ -34,10 +34,10 @@ import org.bukkit.util.Vector;
public class CommandPregen implements DecreeExecutor {
@Decree(description = "Pregenerate a world")
public void start(
@Param(description = "The world to pregen", contextual = true)
World world,
@Param(description = "The radius of the pregen in blocks", aliases = "size")
int radius,
@Param(description = "The world to pregen", contextual = true)
World world,
@Param(aliases = "middle", description = "The center location of the pregen. Use \"me\" for your current location", defaultValue = "0,0")
Vector center
) {

View File

@ -105,6 +105,20 @@ public class CommandStudio implements DecreeExecutor {
return duration.toString().substring(2).replaceAll("(\\d[HMS])(?!$)", "$1 ").toLowerCase();
}
@Decree(description = "Download a project.", aliases = "dl")
public void download(
@Param(name = "pack", description = "The pack to download", defaultValue = "overworld", aliases = "project")
String pack,
@Param(name = "branch", description = "The branch to download from", defaultValue = "master")
String branch,
@Param(name = "trim", description = "Whether or not to download a trimmed version (do not enable when editing)", defaultValue = "false")
boolean trim,
@Param(name = "overwrite", description = "Whether or not to overwrite the pack with the downloaded one", aliases = "force", defaultValue = "false")
boolean overwrite
) {
new CommandIris().download(pack, branch, trim, overwrite);
}
@Decree(description = "Open a new studio world", aliases = "o", sync = true)
public void open(
@Param(defaultValue = "overworld", description = "The dimension to open a studio for", aliases = "dim")

View File

@ -417,8 +417,7 @@ public class IrisEngine implements Engine {
getData().getObjectLoader().clean();
} catch (Throwable e) {
Iris.reportError(e);
Iris.error("Cleanup failed!");
e.printStackTrace();
Iris.error("Cleanup failed! Enable debug to see stacktrace.");
}
cleaning.lazySet(false);

View File

@ -78,6 +78,7 @@ public class DecreeNode {
public KList<String> getNames() {
KList<String> d = new KList<>();
d.add(getName());
for (String i : decree.aliases()) {
if (i.isEmpty()) {
@ -88,7 +89,6 @@ public class DecreeNode {
}
d.add(getName());
d.removeDuplicates();
return d;
}

View File

@ -161,8 +161,9 @@ public class VirtualDecreeCommand {
return getNode().getNames();
}
KList<String> d = new KList<>();
Decree dc = getType().getDeclaredAnnotation(Decree.class);
KList<String> d = new KList<>();
d.add(dc.name());
for (String i : dc.aliases()) {
if (i.isEmpty()) {
continue;
@ -171,7 +172,6 @@ public class VirtualDecreeCommand {
d.add(i);
}
d.add(dc.name());
d.removeDuplicates();
return d;
@ -461,24 +461,25 @@ public class VirtualDecreeCommand {
}
if (sender.isPlayer() && i.isContextual() && value == null) {
Iris.debug("Contextual!");
DecreeContextHandler<?> ch = DecreeContextHandler.contextHandlers.get(i.getType());
if (ch != null) {
value = ch.handle(sender);
if (value != null) {
Iris.debug("Null Parameter " + i.getName() + " derived a value of " + i.getHandler().toStringForce(value) + " from " + ch.getClass().getSimpleName());
Iris.debug("Parameter \"" + i.getName() + "\" derived a value of \"" + i.getHandler().toStringForce(value) + "\" from " + ch.getClass().getSimpleName());
} else {
Iris.debug("Null Parameter " + i.getName() + " could not derive a value from " + ch.getClass().getSimpleName());
Iris.debug("Parameter \"" + i.getName() + "\" could not derive a value from \"" + ch.getClass().getSimpleName());
}
} else {
Iris.debug("Null Parameter " + i.getName() + " is contextual but has no context handler for " + i.getType().getCanonicalName());
Iris.debug("Parameter \"" + i.getName() + "\" is contextual but has no context handler for \"" + i.getType().getCanonicalName() + "\"");
}
}
if (i.hasDefault() && value == null) {
try {
Iris.debug("Null Parameter " + i.getName() + " is using default value " + i.getParam().defaultValue());
Iris.debug("Parameter \"" + i.getName() + "\" is using default value \"" + i.getParam().defaultValue() + "\"");
value = i.getDefaultValue();
} catch (Throwable e) {
e.printStackTrace();
@ -486,7 +487,8 @@ public class VirtualDecreeCommand {
}
if (i.isRequired() && value == null) {
sender.sendMessage("Missing: " + i.getName() + " (" + i.getType().getSimpleName() + ") as the " + Form.getNumberSuffixThStRd(vm + 1) + " argument.");
sender.sendMessage(C.RED + "Missing argument \"" + i.getName() + "\" (" + i.getType().getSimpleName() + ") as the " + Form.getNumberSuffixThStRd(vm + 1) + " argument.");
sender.sendDecreeHelpNode(this);
return false;
}

View File

@ -470,7 +470,6 @@ public class Mantle {
} catch (Throwable e) {
Iris.error("Failed to read Tectonic Plate " + file.getAbsolutePath() + " creating a new chunk instead.");
Iris.reportError(e);
e.printStackTrace();
region = new TectonicPlate(worldHeight, x, z);
loadedRegions.put(k, region);
Iris.debug("Created new Tectonic Plate (Due to Load Failure) " + C.DARK_GREEN + x + " " + z);

View File

@ -544,7 +544,8 @@ public class VolmitSender implements CommandSender {
String nDescription = "<#3fe05a>✎ <#6ad97d><font:minecraft:uniform>" + p.getDescription();
String nUsage;
String fullTitle;
if (p.isContextual() && isPlayer()) {
Iris.debug("Contextual: " + p.isContextual() + " / player: " + isPlayer());
if (p.isContextual() && (isPlayer() || s instanceof CommandDummy)) {
fullTitle = "<#ffcc00>[" + nTitle + "<#ffcc00>] ";
nUsage = "<#ff9900>➱ <#ffcc00><font:minecraft:uniform>The value may be derived from environment context.";
} else if (p.isRequired()) {