aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/cc/polyfrost/oneconfig/utils
diff options
context:
space:
mode:
authorDeDiamondPro <67508414+DeDiamondPro@users.noreply.github.com>2022-05-29 11:20:56 +0200
committerDeDiamondPro <67508414+DeDiamondPro@users.noreply.github.com>2022-05-29 11:20:56 +0200
commitd5c493075b9fc50edc7d8a22efeed08310d9ffe2 (patch)
treea97d5e6727f49786ca6b6126ebe705b05609a2bf /src/main/java/cc/polyfrost/oneconfig/utils
parenta099d4a19953eb8d0fa92b2dd1f47cb6cb449ebb (diff)
parent98eedb30ac2f4e6ab9b0b1b04127e4afdcba0315 (diff)
downloadOneConfig-d5c493075b9fc50edc7d8a22efeed08310d9ffe2.tar.gz
OneConfig-d5c493075b9fc50edc7d8a22efeed08310d9ffe2.tar.bz2
OneConfig-d5c493075b9fc50edc7d8a22efeed08310d9ffe2.zip
Merge branch 'master' of github.com:Polyfrost/OneConfig
Diffstat (limited to 'src/main/java/cc/polyfrost/oneconfig/utils')
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/utils/MathUtils.java2
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/utils/TextUtils.java14
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/utils/commands/CommandHelper.java2
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/utils/commands/CommandManager.java43
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/utils/commands/annotations/Command.java2
5 files changed, 39 insertions, 24 deletions
diff --git a/src/main/java/cc/polyfrost/oneconfig/utils/MathUtils.java b/src/main/java/cc/polyfrost/oneconfig/utils/MathUtils.java
index 19d399f..79634da 100644
--- a/src/main/java/cc/polyfrost/oneconfig/utils/MathUtils.java
+++ b/src/main/java/cc/polyfrost/oneconfig/utils/MathUtils.java
@@ -4,7 +4,7 @@ import cc.polyfrost.oneconfig.gui.OneConfigGui;
public final class MathUtils {
public static float clamp(float number) {
- return number < 0f ? 0f : Math.min(number, 1f);
+ return clamp(number, 0, 1);
}
public static float clamp(float number, float min, float max) {
diff --git a/src/main/java/cc/polyfrost/oneconfig/utils/TextUtils.java b/src/main/java/cc/polyfrost/oneconfig/utils/TextUtils.java
index f9f0fbd..4fa5125 100644
--- a/src/main/java/cc/polyfrost/oneconfig/utils/TextUtils.java
+++ b/src/main/java/cc/polyfrost/oneconfig/utils/TextUtils.java
@@ -1,6 +1,7 @@
package cc.polyfrost.oneconfig.utils;
import cc.polyfrost.oneconfig.lwjgl.RenderManager;
+import cc.polyfrost.oneconfig.lwjgl.font.Font;
import cc.polyfrost.oneconfig.lwjgl.font.Fonts;
import java.util.ArrayList;
@@ -20,6 +21,19 @@ public final class TextUtils {
* @return The array of lines.
*/
public static ArrayList<String> wrapText(long vg, String text, float maxWidth, float fontSize, Fonts font) {
+ return wrapText(vg, text, maxWidth, fontSize, font.font);
+ }
+
+ /**
+ * Wraps a string into an array of lines.
+ * @param vg The NanoVG context.
+ * @param text The text to wrap.
+ * @param maxWidth The maximum width of each line.
+ * @param fontSize The font size.
+ * @param font The font to use.
+ * @return The array of lines.
+ */
+ public static ArrayList<String> wrapText(long vg, String text, float maxWidth, float fontSize, Font font) {
ArrayList<String> wrappedText = new ArrayList<>();
text += " ";
int prevIndex = 0;
diff --git a/src/main/java/cc/polyfrost/oneconfig/utils/commands/CommandHelper.java b/src/main/java/cc/polyfrost/oneconfig/utils/commands/CommandHelper.java
index bc57fc2..3e7b7ea 100644
--- a/src/main/java/cc/polyfrost/oneconfig/utils/commands/CommandHelper.java
+++ b/src/main/java/cc/polyfrost/oneconfig/utils/commands/CommandHelper.java
@@ -10,7 +10,7 @@ package cc.polyfrost.oneconfig.utils.commands;
public abstract class CommandHelper {
public CommandHelper() {
- CommandManager.registerCommand(this);
+ CommandManager.INSTANCE.registerCommand(this);
}
public void preload() {
diff --git a/src/main/java/cc/polyfrost/oneconfig/utils/commands/CommandManager.java b/src/main/java/cc/polyfrost/oneconfig/utils/commands/CommandManager.java
index a4e2569..f168b8f 100644
--- a/src/main/java/cc/polyfrost/oneconfig/utils/commands/CommandManager.java
+++ b/src/main/java/cc/polyfrost/oneconfig/utils/commands/CommandManager.java
@@ -21,17 +21,30 @@ import java.util.stream.Collectors;
* @see Command
*/
public class CommandManager {
- private static final HashMap<Class<?>, ArgumentParser<?>> parsers = new HashMap<>();
+ public static final CommandManager INSTANCE = new CommandManager();
+ private final HashMap<Class<?>, ArgumentParser<?>> parsers = new HashMap<>();
private static final String NOT_FOUND_TEXT = "Command not found! Type /@ROOT_COMMAND@ help for help.";
private static final String METHOD_RUN_ERROR = "Error while running @ROOT_COMMAND@ method! Please report this to the developer.";
+ private CommandManager() {
+ addParser(new StringParser());
+ addParser(new IntegerParser());
+ addParser(new IntegerParser(), int.class);
+ addParser(new DoubleParser());
+ addParser(new DoubleParser(), double.class);
+ addParser(new FloatParser());
+ addParser(new FloatParser(), float.class);
+ addParser(new BooleanParser());
+ addParser(new BooleanParser(), boolean.class);
+ }
+
/**
* Adds a parser to the parsers map.
*
* @param parser The parser to add.
* @param clazz The class of the parser.
*/
- public static void addParser(ArgumentParser<?> parser, Class<?> clazz) {
+ public void addParser(ArgumentParser<?> parser, Class<?> clazz) {
parsers.put(clazz, parser);
}
@@ -39,28 +52,16 @@ public class CommandManager {
* Adds a parser to the parsers map.
* @param parser The parser to add.
*/
- public static void addParser(ArgumentParser<?> parser) {
+ public void addParser(ArgumentParser<?> parser) {
addParser(parser, parser.typeClass);
}
- static {
- addParser(new StringParser());
- addParser(new IntegerParser());
- addParser(new IntegerParser(), int.class);
- addParser(new DoubleParser());
- addParser(new DoubleParser(), double.class);
- addParser(new FloatParser());
- addParser(new FloatParser(), float.class);
- addParser(new BooleanParser());
- addParser(new BooleanParser(), boolean.class);
- }
-
/**
* Registers the provided command.
*
* @param command The command to register.
*/
- public static void registerCommand(Object command) {
+ public void registerCommand(Object command) {
Class<?> clazz = command.getClass();
if (clazz.isAnnotationPresent(Command.class)) {
final Command annotation = clazz.getAnnotation(Command.class);
@@ -122,7 +123,7 @@ public class CommandManager {
}
}
- private static String sendHelpCommand(InternalCommand root) {
+ private String sendHelpCommand(InternalCommand root) {
StringBuilder builder = new StringBuilder();
builder.append(ChatColor.GOLD.toString() + "Help for " + ChatColor.BOLD + root.name + ChatColor.RESET + ChatColor.GOLD + ":\n");
builder.append("\n");
@@ -139,7 +140,7 @@ public class CommandManager {
return builder.toString();
}
- private static void runThroughCommandsHelp(String append, InternalCommand command, StringBuilder builder) {
+ private void runThroughCommandsHelp(String append, InternalCommand command, StringBuilder builder) {
for (InternalCommand.InternalCommandInvoker invoker : command.invokers) {
builder.append("\n" + ChatColor.GOLD + "/" + append + " " + command.name);
for (Parameter parameter : invoker.method.getParameters()) {
@@ -158,7 +159,7 @@ public class CommandManager {
}
}
- private static String runThroughCommands(InternalCommand command, int layer, String[] args) {
+ private String runThroughCommands(InternalCommand command, int layer, String[] args) {
int newLayer = layer + 1;
if (command.isEqual(args[layer]) && !command.invokers.isEmpty()) {
Set<InternalCommand.InternalCommandInvoker> invokers = command.invokers.stream().filter(invoker -> newLayer == args.length - invoker.parameterTypes.length).sorted(Comparator.comparingInt((a) -> a.method.getAnnotation(Main.class).priority())).collect(Collectors.toSet());
@@ -189,7 +190,7 @@ public class CommandManager {
return NOT_FOUND_TEXT;
}
- private static String tryInvoker(InternalCommand.InternalCommandInvoker invoker, int newLayer, String[] args) {
+ private String tryInvoker(InternalCommand.InternalCommandInvoker invoker, int newLayer, String[] args) {
try {
ArrayList<Object> params = new ArrayList<>();
int processed = newLayer;
@@ -228,7 +229,7 @@ public class CommandManager {
}
}
- private static void addToInvokers(Class<?>[] classes, InternalCommand parent) {
+ private void addToInvokers(Class<?>[] classes, InternalCommand parent) {
for (Class<?> clazz : classes) {
if (clazz.isAnnotationPresent(SubCommand.class)) {
SubCommand annotation = clazz.getAnnotation(SubCommand.class);
diff --git a/src/main/java/cc/polyfrost/oneconfig/utils/commands/annotations/Command.java b/src/main/java/cc/polyfrost/oneconfig/utils/commands/annotations/Command.java
index 7717d46..b1a4ce5 100644
--- a/src/main/java/cc/polyfrost/oneconfig/utils/commands/annotations/Command.java
+++ b/src/main/java/cc/polyfrost/oneconfig/utils/commands/annotations/Command.java
@@ -80,7 +80,7 @@ import java.lang.annotation.Target;
* Note: if you're viewing this in IntelliJ or just see the @literal tag everywhere, please ignore that.
* </p>
*
- * @see cc.polyfrost.oneconfig.test.TestCommand
+ * @see cc.polyfrost.oneconfig.command.OneConfigCommand
* @see Main
* @see CommandManager
*/