mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-07-18 18:23:06 +00:00
See description
- No-parameter command nodes are now on-click-runnable - Parameters are now sorted by: name *and then* required
This commit is contained in:
parent
1d52bbde58
commit
fc096dc6fa
@ -47,13 +47,25 @@ public class DecreeNode {
|
||||
* @return The list of parameters if ALL are annotated by @{@link Param}, else null
|
||||
*/
|
||||
public KList<DecreeParameter> getParameters() {
|
||||
KList<DecreeParameter> p = new KList<>();
|
||||
KList<DecreeParameter> required = new KList<>();
|
||||
KList<DecreeParameter> optional = new KList<>();
|
||||
|
||||
for (Parameter i : method.getParameters()) {
|
||||
p.add(new DecreeParameter(i));
|
||||
DecreeParameter p = new DecreeParameter(i);
|
||||
if (p.isRequired()){
|
||||
required.add(p);
|
||||
} else {
|
||||
optional.add(p);
|
||||
}
|
||||
}
|
||||
|
||||
return p;
|
||||
required.sort();
|
||||
|
||||
optional.sort();
|
||||
|
||||
required.addAll(optional);
|
||||
|
||||
return required;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
|
@ -21,6 +21,7 @@ package com.volmit.iris.util.plugin;
|
||||
import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.core.IrisSettings;
|
||||
import com.volmit.iris.util.collection.KList;
|
||||
import com.volmit.iris.util.decree.DecreeParameter;
|
||||
import com.volmit.iris.util.decree.virtual.VirtualDecreeCommand;
|
||||
import com.volmit.iris.util.format.C;
|
||||
import com.volmit.iris.util.format.Form;
|
||||
@ -42,6 +43,7 @@ import org.bukkit.permissions.PermissionAttachmentInfo;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.util.Comparator;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
@ -432,7 +434,7 @@ public class VolmitSender implements CommandSender {
|
||||
? ((i.getNode().getParameters().isEmpty()
|
||||
? "<font:minecraft:uniform>There are no parameters.<reset>"
|
||||
: "<font:minecraft:uniform>Hover over all of the parameters to learn more.<reset>" + "\n"))
|
||||
: "<font:minecraft:uniform>This is a command category. Run <reset><#98eda5>" + i.getPath())
|
||||
: "<font:minecraft:uniform>This is a command category. Click to run <reset><#98eda5>" + i.getPath())
|
||||
+ (i.isNode()
|
||||
? (i.getNode().getParameters().isNotEmpty())
|
||||
? "<#aebef2>✦ <#5ef288><font:minecraft:uniform>"
|
||||
@ -445,10 +447,10 @@ public class VolmitSender implements CommandSender {
|
||||
: ""
|
||||
: "")
|
||||
+ (i.isNode() ? "<font:minecraft:uniform>" + pickRandoms(Math.min(i.getNode().getParameters().size() + 1, 5), i) + "<reset>" : "")
|
||||
+ "'><click:" + (i.isNode() ? "suggest_command" : "run_command") + ":" + i.getPath() + " >"
|
||||
+ "'><click:" + (i.isNode() && i.getNode().getParameters().isNotEmpty() ? "suggest_command" : "run_command") + ":" + i.getPath() + " >"
|
||||
+ "<#46826a>⇀<gradient:#42ecf5:#428df5> " + i.getName() + "</click></hover>"
|
||||
+ (i.isNode() ?
|
||||
" " + i.getNode().getParameters().convert((f)
|
||||
" " + i.getNode().getParameters().sort().convert((f)
|
||||
-> "<hover:show_text:'"
|
||||
+ f.getNames().convert((ff) -> "<#d665f0>" + ff).toString(", ") + "\n"
|
||||
+ "<#3fe05a>✎ <#6ad97d><font:minecraft:uniform>" + f.getDescription() + "<reset>\n"
|
||||
@ -460,10 +462,10 @@ public class VolmitSender implements CommandSender {
|
||||
+ (f.isContextual() ? "<#ff9900>➱ <#ffcc00><font:minecraft:uniform>The value may be derived from environment context <reset>\n" : "")
|
||||
+ "<#cc00ff>✢ <#ff33cc><font:minecraft:uniform>This parameter is of type " + f.getType().getSimpleName()
|
||||
+ "'>"
|
||||
+ (f.isRequired() ? "<red>[" : "")
|
||||
+ (f.isRequired() ? "<red>[" : "<#4f4f4f>⊰")
|
||||
+ "<gradient:#d665f0:#a37feb>" + f.getName()
|
||||
+ (f.isRequired() ? "<red>]<gray>" : "")
|
||||
+ "</hover>").toString(" ")
|
||||
+ (f.isRequired() ? "<red>] " : "<#4f4f4f>⊱") + "<gray>"
|
||||
+ "</hover>").toString("")
|
||||
: "<gradient:#afe3d3:#a2dae0> - Category of Commands"
|
||||
)
|
||||
);
|
||||
|
Loading…
x
Reference in New Issue
Block a user