From a957c669058c156e32c2c6becfd03592f355add0 Mon Sep 17 00:00:00 2001 From: Sheldan <5037282+Sheldan@users.noreply.github.com> Date: Sat, 4 Apr 2020 17:29:49 +0200 Subject: [PATCH] added ability to define aliases in the code --- .../sheldan/abstracto/commands/CommandManager.java | 14 +++++++++++++- .../command/execution/CommandConfiguration.java | 2 +- .../core/commands/channels/AddToChannelGroup.java | 2 ++ .../commands/channels/RemoveFromChannelGroup.java | 2 ++ 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/abstracto-application/command/command-impl/src/main/java/dev/sheldan/abstracto/commands/CommandManager.java b/abstracto-application/command/command-impl/src/main/java/dev/sheldan/abstracto/commands/CommandManager.java index bdbcf969c..94601f319 100644 --- a/abstracto-application/command/command-impl/src/main/java/dev/sheldan/abstracto/commands/CommandManager.java +++ b/abstracto-application/command/command-impl/src/main/java/dev/sheldan/abstracto/commands/CommandManager.java @@ -26,7 +26,7 @@ public class CommandManager implements CommandRegistry { public Command findCommandByParameters(String name, UnParsedCommandParameter unParsedCommandParameter) { Optional commandOptional = commands.stream().filter((Command o )-> { CommandConfiguration commandConfiguration = o.getConfiguration(); - if(!commandConfiguration.getName().equalsIgnoreCase(name)) { + if(!commandNameMatches(name, commandConfiguration)) { return false; } boolean parameterFit; @@ -49,6 +49,18 @@ public class CommandManager implements CommandRegistry { throw new CommandNotFound("Command not found."); } + private boolean commandNameMatches(String name, CommandConfiguration commandConfiguration) { + boolean commandNameMatches = commandConfiguration.getName().equalsIgnoreCase(name); + if(commandNameMatches) { + return true; + } + boolean aliasesMatch = false; + if(commandConfiguration.getAliases() != null) { + aliasesMatch = commandConfiguration.getAliases().stream().anyMatch(s -> s.equalsIgnoreCase(name)); + } + return aliasesMatch; + } + public Command findCommand(String name) { Optional commandOptional = commands.stream().filter((Command o )-> { CommandConfiguration commandConfiguration = o.getConfiguration(); diff --git a/abstracto-application/command/command-int/src/main/java/dev/sheldan/abstracto/command/execution/CommandConfiguration.java b/abstracto-application/command/command-int/src/main/java/dev/sheldan/abstracto/command/execution/CommandConfiguration.java index 0eb597999..c48828614 100644 --- a/abstracto-application/command/command-int/src/main/java/dev/sheldan/abstracto/command/execution/CommandConfiguration.java +++ b/abstracto-application/command/command-int/src/main/java/dev/sheldan/abstracto/command/execution/CommandConfiguration.java @@ -3,7 +3,6 @@ package dev.sheldan.abstracto.command.execution; import dev.sheldan.abstracto.command.HelpInfo; import lombok.Builder; import lombok.Getter; -import lombok.Setter; import java.util.List; @@ -14,6 +13,7 @@ public class CommandConfiguration { private String module; private String description; private List parameters; + private List aliases; private boolean causesReaction; private boolean templated; private HelpInfo help; diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/commands/channels/AddToChannelGroup.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/commands/channels/AddToChannelGroup.java index 98d615118..b67de5514 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/commands/channels/AddToChannelGroup.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/commands/channels/AddToChannelGroup.java @@ -34,9 +34,11 @@ public class AddToChannelGroup implements Command { Parameter channelGroupName = Parameter.builder().name("name").type(String.class).description("The name of the channel group to add the channel to.").build(); Parameter channelToAdd = Parameter.builder().name("channel").type(TextChannel.class).description("The mention of the channel to add to the group.").build(); List parameters = Arrays.asList(channelGroupName, channelToAdd); + List aliases = Arrays.asList("addTChGrp", "chGrpCh+"); return CommandConfiguration.builder() .name("addToChannelGroup") .module("channels") + .aliases(aliases) .parameters(parameters) .description("Adds the mentioned channel to the channel group.") .causesReaction(true) diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/commands/channels/RemoveFromChannelGroup.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/commands/channels/RemoveFromChannelGroup.java index 69527c0da..134a683f0 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/commands/channels/RemoveFromChannelGroup.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/commands/channels/RemoveFromChannelGroup.java @@ -34,9 +34,11 @@ public class RemoveFromChannelGroup implements Command { Parameter channelGroupName = Parameter.builder().name("name").type(String.class).description("The name of the channel group to remove the channel from.").build(); Parameter channelToAdd = Parameter.builder().name("channel").type(TextChannel.class).description("The mention of the channel to remove from the group.").build(); List parameters = Arrays.asList(channelGroupName, channelToAdd); + List aliases = Arrays.asList("rmChChgrp", "chGrpCh-"); return CommandConfiguration.builder() .name("removeFromChannelGroup") .module("channels") + .aliases(aliases) .parameters(parameters) .description("Removes the mentioned channel from the channel group.") .causesReaction(true)