From 709e1a5226a92427e245fd0cceb3aea6ac510ef6 Mon Sep 17 00:00:00 2001 From: Julius de Jeu Date: Mon, 10 Jun 2019 11:17:29 +0200 Subject: [PATCH] Maybe fix channel errors when someone sends a non command message starting with the prefix in a non bot channel --- .../discord/events/CommandListener.kt | 74 ++++++++++--------- 1 file changed, 40 insertions(+), 34 deletions(-) diff --git a/src/main/kotlin/nl/voidcorp/discord/events/CommandListener.kt b/src/main/kotlin/nl/voidcorp/discord/events/CommandListener.kt index 41f7049..42d94c6 100644 --- a/src/main/kotlin/nl/voidcorp/discord/events/CommandListener.kt +++ b/src/main/kotlin/nl/voidcorp/discord/events/CommandListener.kt @@ -11,7 +11,6 @@ import nl.voidcorp.discord.command.CommandSettings import nl.voidcorp.discord.creator import nl.voidcorp.discord.logger import nl.voidcorp.discord.storage.GuildRepo -import nl.voidcorp.discord.storage.GuildStore import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Service @@ -38,46 +37,53 @@ class CommandListener( if (!event.message.contentRaw.startsWith(prefix) or (event.message.contentRaw.length == prefix.length)) return - + val isGuild = event.isFromGuild val res = commands.map { it to it.onCommand(event, prefix) }.filter { it.second != CommandResult.NOPE } - if (res.size > 1) { - val mb = - MessageBuilder("Well this is awkward... It seems that multiple actions are bound to this command... ") - .append("Report this error to the staff of the server or ") - val member = event.guild.getMemberById(creator) - if (member != null) - mb.append(member) - else { - mb.append("J00LZ#9386") - } + when { + res.size > 1 -> { + val mb = + MessageBuilder("Well this is awkward... It seems that multiple actions are bound to this command... ") + .append("Report this error to the staff of the server or ") + val member = event.guild.getMemberById(creator) + if (member != null) + mb.append(member) + else { + mb.append("J00LZ#9386") + } + + event.channel.sendMessage(mb.append(" since this shouldn't happen...").build()).queue() - event.channel.sendMessage(mb.append(" since this shouldn't happen...").build()).queue() - } else if (res.isEmpty()) { - event.channel.sendMessage("I don't seem to know this command...").queue() - } else { - val (command, result) = res[0] - when (result) { - CommandResult.SUCCESS -> Unit - CommandResult.ERROR -> CommandMessage( - event, - emptyList() - ).reply(MessageBuilder("There was an error executing this command").build()) - CommandResult.PERMISSIONS -> CommandMessage(event, emptyList()).reply( - "Sorry, but you don't seem to have the needed permissions to execute this command..." - ) - CommandResult.NOPE -> logger.warn("The command ${command.name} somehow responded with a nope?") - CommandResult.PARAMETERS -> CommandMessage(event, emptyList()).reply( - "Sorry, but you are missing some parameters: `${command.usage}`" - ) - CommandResult.CHANNEL -> CommandMessage(event, emptyList()).reply( - "It seems this is not a channel where bots are allowed for you..." - ) } + res.isNotEmpty() -> { + val (command, result) = res[0] + when (result) { + CommandResult.CHANNEL -> CommandMessage(event, emptyList()).reply( + "It seems this is not a channel where bots are allowed for you..." + ) + CommandResult.PERMISSIONS -> CommandMessage(event, emptyList()).reply( + "Sorry, but you don't seem to have the needed permissions to execute this command..." + ) + CommandResult.SUCCESS -> Unit + CommandResult.ERROR -> CommandMessage( + event, + emptyList() + ).reply(MessageBuilder("There was an error executing this command").build()) + + CommandResult.NOPE -> logger.warn("The command ${command.name} somehow responded with a nope?") + CommandResult.PARAMETERS -> CommandMessage(event, emptyList()).reply( + "Sorry, but you are missing some parameters: `${command.usage}`" + ) + + } + + } + isGuild -> Unit + else -> event.channel.sendMessage("I don't seem to know this command...").queue() } - } // override fun onMessageUpdate(event: MessageUpdateEvent) = // onMessageReceived(MessageReceivedEvent(event.jda, event.messageIdLong, event.message)) + } } \ No newline at end of file