From 5a236e3bea8e98e3c770175b530ac8ef312931be Mon Sep 17 00:00:00 2001 From: CocoTheOwner Date: Wed, 18 Aug 2021 15:05:47 +0200 Subject: [PATCH] Fuck that builder. Yeet --- .../volmit/iris/util/plugin/VolmitSender.java | 140 ++++++++++++------ 1 file changed, 92 insertions(+), 48 deletions(-) diff --git a/src/main/java/com/volmit/iris/util/plugin/VolmitSender.java b/src/main/java/com/volmit/iris/util/plugin/VolmitSender.java index 082da56f9..3d5ad1e18 100644 --- a/src/main/java/com/volmit/iris/util/plugin/VolmitSender.java +++ b/src/main/java/com/volmit/iris/util/plugin/VolmitSender.java @@ -425,55 +425,99 @@ public class VolmitSender implements CommandSender { public void sendDecreeHelpNode(VirtualDecreeCommand i){ if (isPlayer()) { - //@builder - String s = ( - " "<#42ecf5>" + f).toString(", ") + "\n" - + "<#3fe05a>✎ <#6ad97d>" + i.getDescription() + "\n" - + "<#bbe03f>✒ <#a8e0a2>" + (i.isNode() - ? ((i.getNode().getParameters().isEmpty() - ? "There are no parameters." - : "Hover over all of the parameters to learn more." + "\n")) - : "This is a command category. Click to run <#98eda5>" + i.getPath()) - + (i.isNode() - ? (i.getNode().getParameters().isNotEmpty()) - ? "<#aebef2>✦ <#5ef288>" - + i.getParentPath() - + " <#42ecf5>" - + i.getName() + " " - + i.getNode().getParameters().convert((f) - -> "<#d665f0>" + f.example()) - .toString(" ") + "\n" - : "" - : "") - + (i.isNode() ? "" + pickRandoms(Math.min(i.getNode().getParameters().size() + 1, 5), i) + "" : "") - + "'>" - + "<#46826a>⇀ " + i.getName() + "" - + (i.isNode() ? - " " + i.getNode().getParameters().convert((f) - -> " "<#d665f0>" + ff).toString(", ") + "\n" - + "<#3fe05a>✎ <#6ad97d>" + f.getDescription() + "\n" - + (f.isRequired() - ? "<#db4321>⚠ <#faa796>This parameter is required." - : (f.hasDefault() - ? "<#2181db>✔ <#78dcf0>Defaults to \""+f.getParam().defaultValue()+"\" if undefined." - : "<#a73abd>✔ <#78dcf0>This parameter is optional.")) + "\n" - + (f.isContextual() ? "<#ff9900>➱ <#ffcc00>The value may be derived from environment context \n" : "") - + "<#cc00ff>✢ <#ff33cc>This parameter is of type " + f.getType().getSimpleName() - + "'>" - + (f.isRequired() ? "[" : "<#4f4f4f>⊰") - + "" + f.getName() - + (f.isRequired() ? "] " : "<#4f4f4f>⊱") + "" - + "").toString("") - : " - Category of Commands" - ) - ); - //@done - sendMessageRaw(s); - System.out.println(s); + + String newline = "\n"; + + /// Command + // Contains main command & aliases + String title = i.getPath() + " >" + "<#46826a>⇀ " + i.getName(); + String hoverTitle = i.getNames().copy().reverse().convert((f) -> "<#42ecf5>" + f).toString(", "); + String description = "<#3fe05a>✎ <#6ad97d>" + i.getDescription(); + String usage = "<#bbe03f>✒ <#a8e0a2>"; + String onClick = ""; + + String suggestion = ""; + String suggestions = ""; + if (i.isNode() && i.getNode().getParameters().isNotEmpty()) { + suggestion += newline + "<#aebef2>✦ <#5ef288>" + i.getParentPath() + " <#42ecf5>" + i.getName() + " " + + i.getNode().getParameters().convert((f) -> "<#d665f0>" + f.example()).toString(" "); + suggestions += newline + "" + pickRandoms(Math.min(i.getNode().getParameters().size() + 1, 5), i); + } + + /// Params + StringBuilder nodes = new StringBuilder(); + if (i.isNode()){ + for (DecreeParameter p : i.getNode().getParameters()) { + + String nTitle = "" + p.getName(); + String nHoverTitle = p.getNames().convert((ff) -> "<#d665f0>" + ff).toString(", "); + String nDescription = "<#3fe05a>✎ <#6ad97d>" + p.getDescription(); + String nUsage; + String context = ""; + if (p.isRequired()){ + nUsage = "<#db4321>⚠ <#faa796>This parameter is required."; + } else if (p.hasDefault()) { + nUsage = "<#2181db>✔ <#78dcf0>Defaults to \""+ p.getParam().defaultValue()+"\" if undefined."; + } else { + nUsage = "<#a73abd>✔ <#78dcf0>This parameter is optional."; + } + if (p.isContextual()){ + context = "<#ff9900>➱ <#ffcc00>The value may be derived from environment context" + newline; + } + String type = "<#cc00ff>✢ <#ff33cc>This parameter is of type " + p.getType().getSimpleName(); + String fullTitle; + if (p.isRequired()){ + fullTitle = "[" + nTitle + "] "; + } else { + fullTitle = "<#4f4f4f>⊰" + nTitle + "<#4f4f4f>⊱"; + } + + nodes + .append("") + .append(fullTitle) + .append(""); + } + } else { + nodes = new StringBuilder(" - Category of Commands"); + } + + /// Wrapper + StringBuilder wrapper = new StringBuilder() + .append("") + .append(onClick) + .append("") + .append(" ") + .append(nodes); + + sendMessageRaw(wrapper.toString()); + System.out.println(wrapper); } else { - sendMessage(i.getPath() + "()"); + sendMessage(i.getPath()); } }