mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-07-19 02:36:59 +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
|
* @return The list of parameters if ALL are annotated by @{@link Param}, else null
|
||||||
*/
|
*/
|
||||||
public KList<DecreeParameter> getParameters() {
|
public KList<DecreeParameter> getParameters() {
|
||||||
KList<DecreeParameter> p = new KList<>();
|
KList<DecreeParameter> required = new KList<>();
|
||||||
|
KList<DecreeParameter> optional = new KList<>();
|
||||||
|
|
||||||
for (Parameter i : method.getParameters()) {
|
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() {
|
public String getName() {
|
||||||
|
@ -21,6 +21,7 @@ package com.volmit.iris.util.plugin;
|
|||||||
import com.volmit.iris.Iris;
|
import com.volmit.iris.Iris;
|
||||||
import com.volmit.iris.core.IrisSettings;
|
import com.volmit.iris.core.IrisSettings;
|
||||||
import com.volmit.iris.util.collection.KList;
|
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.decree.virtual.VirtualDecreeCommand;
|
||||||
import com.volmit.iris.util.format.C;
|
import com.volmit.iris.util.format.C;
|
||||||
import com.volmit.iris.util.format.Form;
|
import com.volmit.iris.util.format.Form;
|
||||||
@ -42,6 +43,7 @@ import org.bukkit.permissions.PermissionAttachmentInfo;
|
|||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
|
import java.util.Comparator;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
@ -432,7 +434,7 @@ public class VolmitSender implements CommandSender {
|
|||||||
? ((i.getNode().getParameters().isEmpty()
|
? ((i.getNode().getParameters().isEmpty()
|
||||||
? "<font:minecraft:uniform>There are no parameters.<reset>"
|
? "<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>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.isNode()
|
||||||
? (i.getNode().getParameters().isNotEmpty())
|
? (i.getNode().getParameters().isNotEmpty())
|
||||||
? "<#aebef2>✦ <#5ef288><font:minecraft:uniform>"
|
? "<#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>" : "")
|
+ (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>"
|
+ "<#46826a>⇀<gradient:#42ecf5:#428df5> " + i.getName() + "</click></hover>"
|
||||||
+ (i.isNode() ?
|
+ (i.isNode() ?
|
||||||
" " + i.getNode().getParameters().convert((f)
|
" " + i.getNode().getParameters().sort().convert((f)
|
||||||
-> "<hover:show_text:'"
|
-> "<hover:show_text:'"
|
||||||
+ f.getNames().convert((ff) -> "<#d665f0>" + ff).toString(", ") + "\n"
|
+ f.getNames().convert((ff) -> "<#d665f0>" + ff).toString(", ") + "\n"
|
||||||
+ "<#3fe05a>✎ <#6ad97d><font:minecraft:uniform>" + f.getDescription() + "<reset>\n"
|
+ "<#3fe05a>✎ <#6ad97d><font:minecraft:uniform>" + f.getDescription() + "<reset>\n"
|
||||||
@ -460,9 +462,9 @@ public class VolmitSender implements CommandSender {
|
|||||||
+ (f.isContextual() ? "<#ff9900>➱ <#ffcc00><font:minecraft:uniform>The value may be derived from environment context <reset>\n" : "")
|
+ (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()
|
+ "<#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()
|
+ "<gradient:#d665f0:#a37feb>" + f.getName()
|
||||||
+ (f.isRequired() ? "<red>]<gray>" : "")
|
+ (f.isRequired() ? "<red>] " : "<#4f4f4f>⊱") + "<gray>"
|
||||||
+ "</hover>").toString("")
|
+ "</hover>").toString("")
|
||||||
: "<gradient:#afe3d3:#a2dae0> - Category of Commands"
|
: "<gradient:#afe3d3:#a2dae0> - Category of Commands"
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user