From df9de65b39c653a162975aa968264c0877f1da16 Mon Sep 17 00:00:00 2001 From: Jaden Date: Tue, 9 Apr 2019 19:42:47 -0500 Subject: [PATCH 1/2] added boolean to see if command should terminate in dms --- .../jagrosh/jdautilities/command/Command.java | 32 ++++++++++++++++--- .../jdautilities/command/CommandBuilder.java | 27 +++++++++++++--- 2 files changed, 50 insertions(+), 9 deletions(-) diff --git a/command/src/main/java/com/jagrosh/jdautilities/command/Command.java b/command/src/main/java/com/jagrosh/jdautilities/command/Command.java index 104398fb..5649f35a 100644 --- a/command/src/main/java/com/jagrosh/jdautilities/command/Command.java +++ b/command/src/main/java/com/jagrosh/jdautilities/command/Command.java @@ -15,15 +15,16 @@ */ package com.jagrosh.jdautilities.command; -import java.util.Arrays; -import java.util.Objects; -import java.util.function.BiConsumer; -import java.util.function.Predicate; import net.dv8tion.jda.core.Permission; import net.dv8tion.jda.core.entities.ChannelType; import net.dv8tion.jda.core.entities.TextChannel; import net.dv8tion.jda.core.entities.VoiceChannel; +import java.util.Arrays; +import java.util.Objects; +import java.util.function.BiConsumer; +import java.util.function.Predicate; + /** *

Commands In JDA-Utilities

* @@ -155,6 +156,12 @@ public abstract class Command */ protected boolean hidden = false; + /** + * {@code true} if this command should reply in dms when terminated. + *
Default {@code false} + */ + protected boolean terminateInDms = false; + /** * The {@link com.jagrosh.jdautilities.command.Command.CooldownScope CooldownScope} * of the command. This defines how far of a scope cooldowns have. @@ -531,10 +538,25 @@ public boolean isHidden() return hidden; } + /** + * Checks whether or not this command should reply in dms upon termination + * + * @return {@code true} if the command should reply in dms, otherwise {@code false} + */ + public boolean isTerminatingInDms() + { + return terminateInDms; + } + private void terminate(CommandEvent event, String message) { if(message!=null) - event.reply(message); + if (terminateInDms) { + event.replyInDm(message); + } else { + event.reply(message); + } + if(event.getClient().getListener()!=null) event.getClient().getListener().onTerminatedCommand(event, this); } diff --git a/command/src/main/java/com/jagrosh/jdautilities/command/CommandBuilder.java b/command/src/main/java/com/jagrosh/jdautilities/command/CommandBuilder.java index 29b13866..e2dc034c 100644 --- a/command/src/main/java/com/jagrosh/jdautilities/command/CommandBuilder.java +++ b/command/src/main/java/com/jagrosh/jdautilities/command/CommandBuilder.java @@ -15,8 +15,8 @@ */ package com.jagrosh.jdautilities.command; -import com.jagrosh.jdautilities.command.Command.*; - +import com.jagrosh.jdautilities.command.Command.Category; +import com.jagrosh.jdautilities.command.Command.CooldownScope; import net.dv8tion.jda.core.Permission; import java.util.Collection; @@ -56,6 +56,7 @@ public class CommandBuilder private boolean usesTopicTags = true; private CooldownScope cooldownScope = CooldownScope.USER; private boolean hidden = false; + private boolean terminateInDms; /** * Sets the {@link com.jagrosh.jdautilities.command.Command#name name} @@ -450,6 +451,23 @@ public CommandBuilder setHidden(boolean hidden) return this; } + /** + * Sets the Command built to {@link com.jagrosh.jdautilities.command.Command#terminateInDms when + * an error occurs. + * + * + * @param terminateInDms + * {@code true} if the Command built is replying in dms upon termination, {@code false} if it will not. + * + * @return This CommandBuilder + */ + + public CommandBuilder setTerminatingInDms(boolean terminateInDms) + { + this.terminateInDms = terminateInDms; + return this; + } + /** * Builds the {@link com.jagrosh.jdautilities.command.Command Command} * using the previously provided information. @@ -492,7 +510,7 @@ public Command build(BiConsumer execution) guildOnly, requiredRole, ownerCommand, cooldown, userPermissions, botPermissions, aliases.toArray(new String[aliases.size()]), children.toArray(new Command[children.size()]), helpBiConsumer, usesTopicTags, - cooldownScope, hidden) + cooldownScope, hidden, terminateInDms) { @Override protected void execute(CommandEvent event) @@ -509,7 +527,7 @@ private abstract class BlankCommand extends Command boolean ownerCommand, int cooldown, Permission[] userPermissions, Permission[] botPermissions, String[] aliases, Command[] children, BiConsumer helpBiConsumer, - boolean usesTopicTags, CooldownScope cooldownScope, boolean hidden) + boolean usesTopicTags, CooldownScope cooldownScope, boolean hidden, boolean terminateInDms) { this.name = name; this.help = help; @@ -527,6 +545,7 @@ private abstract class BlankCommand extends Command this.usesTopicTags = usesTopicTags; this.cooldownScope = cooldownScope; this.hidden = hidden; + this.terminateInDms = terminateInDms; } } } From 0b4b3d0f37d1acc3de9c406804f8506db0eef6e2 Mon Sep 17 00:00:00 2001 From: Jaden Date: Tue, 9 Apr 2019 19:44:43 -0500 Subject: [PATCH 2/2] defaulted terminate in dms to false --- .../java/com/jagrosh/jdautilities/command/CommandBuilder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/command/src/main/java/com/jagrosh/jdautilities/command/CommandBuilder.java b/command/src/main/java/com/jagrosh/jdautilities/command/CommandBuilder.java index e2dc034c..e08eab7e 100644 --- a/command/src/main/java/com/jagrosh/jdautilities/command/CommandBuilder.java +++ b/command/src/main/java/com/jagrosh/jdautilities/command/CommandBuilder.java @@ -56,7 +56,7 @@ public class CommandBuilder private boolean usesTopicTags = true; private CooldownScope cooldownScope = CooldownScope.USER; private boolean hidden = false; - private boolean terminateInDms; + private boolean terminateInDms = false; /** * Sets the {@link com.jagrosh.jdautilities.command.Command#name name}