diff options
author | DeDiamondPro <67508414+DeDiamondPro@users.noreply.github.com> | 2022-05-29 11:20:56 +0200 |
---|---|---|
committer | DeDiamondPro <67508414+DeDiamondPro@users.noreply.github.com> | 2022-05-29 11:20:56 +0200 |
commit | d5c493075b9fc50edc7d8a22efeed08310d9ffe2 (patch) | |
tree | a97d5e6727f49786ca6b6126ebe705b05609a2bf /src/main/java/cc/polyfrost/oneconfig/utils | |
parent | a099d4a19953eb8d0fa92b2dd1f47cb6cb449ebb (diff) | |
parent | 98eedb30ac2f4e6ab9b0b1b04127e4afdcba0315 (diff) | |
download | OneConfig-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')
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 */ |