diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/CommandReceivedHandler.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/CommandReceivedHandler.java index c60de1422..b31bf595d 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/CommandReceivedHandler.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/CommandReceivedHandler.java @@ -118,7 +118,8 @@ public class CommandReceivedHandler extends ListenerAdapter { tryToExecuteFoundCommand(event, foundCommand, unParsedParameter); } catch (Exception e) { - reportException(event, null, e, "Exception when executing command."); + reportException(event, null, e, String.format("Exception when executing command from message %d in message %d in guild %d." + ,event.getMessage().getIdLong(), event.getChannel().getIdLong(), event.getGuild().getIdLong())); } } diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/service/CommandCoolDownServiceBean.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/service/CommandCoolDownServiceBean.java index 9a8f06e45..f53542046 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/service/CommandCoolDownServiceBean.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/service/CommandCoolDownServiceBean.java @@ -118,19 +118,26 @@ public class CommandCoolDownServiceBean implements CommandCoolDownService { } } } + return createCooldownCheckResult(serverId, commandName, serverCooldown, channelCooldown, memberCooldown); + } + + public CoolDownCheckResult createCooldownCheckResult(Long serverId, String commandName, Duration serverCooldown, Duration channelCooldown, Duration memberCooldown) { if(serverCooldown != null || channelCooldown != null || memberCooldown != null) { Long serverSeconds = serverCooldown != null ? serverCooldown.getSeconds() : 0L; Long channelSeconds = channelCooldown != null ? channelCooldown.getSeconds() : 0L; Long memberSeconds = memberCooldown != null ? memberCooldown.getSeconds() : 0L; + if(serverSeconds == 0 && channelSeconds == 0 && memberSeconds == 0) { + return CoolDownCheckResult.noCoolDown(); + } if(serverSeconds > channelSeconds && serverSeconds > memberSeconds) { log.info("Rejecting command {}, because of server cooldown in server {}. Can be executed in {} seconds.", commandName, serverId, serverSeconds); return CoolDownCheckResult.getServerCoolDown(serverCooldown); } if(channelSeconds > serverSeconds && channelSeconds > memberSeconds) { - log.info("Rejecting command {}, because of channel cooldown in server {}. Can be executed in {} seconds.", commandName, serverId, channelCooldown); + log.info("Rejecting command {}, because of channel cooldown in server {}. Can be executed in {} seconds.", commandName, serverId, channelSeconds); return CoolDownCheckResult.getChannelGroupCoolDown(channelCooldown); } - log.info("Rejecting command {}, because of member cooldown in server {}. Can be executed in {} seconds.", commandName, serverId, memberCooldown); + log.info("Rejecting command {}, because of member cooldown in server {}. Can be executed in {} seconds.", commandName, serverId, memberSeconds); return CoolDownCheckResult.getMemberCoolDown(memberCooldown); } return CoolDownCheckResult.noCoolDown(); diff --git a/abstracto-application/core/core-int/src/main/java/dev/sheldan/abstracto/core/command/condition/CommandCoolDownCondition.java b/abstracto-application/core/core-int/src/main/java/dev/sheldan/abstracto/core/command/condition/CommandCoolDownCondition.java index c3034c066..40953d46c 100644 --- a/abstracto-application/core/core-int/src/main/java/dev/sheldan/abstracto/core/command/condition/CommandCoolDownCondition.java +++ b/abstracto-application/core/core-int/src/main/java/dev/sheldan/abstracto/core/command/condition/CommandCoolDownCondition.java @@ -24,9 +24,6 @@ public class CommandCoolDownCondition implements CommandCondition { if(result.getCanExecute()) { return ConditionResult.builder().result(true).build(); } else { - if(result.getExecuteIn().compareTo(Duration.ofSeconds(1)) < 0) { - result.setExecuteIn(Duration.ofSeconds(1)); - } return ConditionResult.builder().result(false).conditionDetail(new CommandCoolDownDetail(result)).build(); } } finally {