diff options
author | DeDiamondPro <67508414+DeDiamondPro@users.noreply.github.com> | 2022-05-01 12:08:25 +0200 |
---|---|---|
committer | DeDiamondPro <67508414+DeDiamondPro@users.noreply.github.com> | 2022-05-01 12:08:25 +0200 |
commit | fb9d2f2633c185faba162d85e4ae71c2a347fbb5 (patch) | |
tree | 04b754ad2cb035094f394d3d525baeebd3660d14 /src/main/java/io/polyfrost/oneconfig/gui/elements | |
parent | d0d1de91a163d69976ce113cad0fe49556112e36 (diff) | |
download | OneConfig-fb9d2f2633c185faba162d85e4ae71c2a347fbb5.tar.gz OneConfig-fb9d2f2633c185faba162d85e4ae71c2a347fbb5.tar.bz2 OneConfig-fb9d2f2633c185faba162d85e4ae71c2a347fbb5.zip |
improve non-oneconfig mod command finding
Diffstat (limited to 'src/main/java/io/polyfrost/oneconfig/gui/elements')
-rw-r--r-- | src/main/java/io/polyfrost/oneconfig/gui/elements/ModCard.java | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/src/main/java/io/polyfrost/oneconfig/gui/elements/ModCard.java b/src/main/java/io/polyfrost/oneconfig/gui/elements/ModCard.java index 444094e..1587a93 100644 --- a/src/main/java/io/polyfrost/oneconfig/gui/elements/ModCard.java +++ b/src/main/java/io/polyfrost/oneconfig/gui/elements/ModCard.java @@ -11,6 +11,7 @@ import io.polyfrost.oneconfig.lwjgl.font.Fonts; import io.polyfrost.oneconfig.utils.ColorUtils; import io.polyfrost.oneconfig.utils.InputUtils; import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; import net.minecraft.command.CommandException; import net.minecraft.command.ICommandSender; import net.minecraftforge.client.ClientCommandHandler; @@ -19,6 +20,8 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.lwjgl.nanovg.NanoVG; +import java.util.ArrayList; + public class ModCard extends BasicElement { private final String iconPath; private final Mod modData; @@ -94,11 +97,21 @@ public class ModCard extends BasicElement { } for (ModMetadata mod : OneConfig.loadedOtherMods) { if (mod.name.equalsIgnoreCase(modData.name)) { - System.out.println("Attempting to run command for a mod that isn't OneConfig: " + mod.name); - for (String commands : ClientCommandHandler.instance.getCommands().keySet()) { - if (commands.equalsIgnoreCase(mod.name) || commands.equalsIgnoreCase(mod.modId)) { + ArrayList<String> possibleCommands = new ArrayList<>(); + possibleCommands.add(mod.name.toLowerCase().replace(" ", "")); + possibleCommands.add(mod.modId.toLowerCase().replaceAll("[ -_]", "")); + if (mod.name.split(" ").length > 1) { + StringBuilder result = new StringBuilder(); + for (String word : mod.name.split(" ")) { + if (word.length() == 0) continue; + result.append(word.charAt(0)); + } + possibleCommands.add(result.toString().toLowerCase()); + } + for (String command : ClientCommandHandler.instance.getCommands().keySet()) { + if (possibleCommands.contains(command)) { try { - ClientCommandHandler.instance.getCommands().get(commands).processCommand(Minecraft.getMinecraft().thePlayer, new String[]{}); + ClientCommandHandler.instance.getCommands().get(command).processCommand(Minecraft.getMinecraft().thePlayer, new String[]{}); } catch (CommandException e) { throw new RuntimeException(e); } |