Maybe fix channel errors when someone sends a non command message starting with the prefix in a non bot channel

This commit is contained in:
Julius de Jeu 2019-06-10 11:17:29 +02:00
parent 32a2782b16
commit 709e1a5226

View file

@ -11,7 +11,6 @@ import nl.voidcorp.discord.command.CommandSettings
import nl.voidcorp.discord.creator import nl.voidcorp.discord.creator
import nl.voidcorp.discord.logger import nl.voidcorp.discord.logger
import nl.voidcorp.discord.storage.GuildRepo import nl.voidcorp.discord.storage.GuildRepo
import nl.voidcorp.discord.storage.GuildStore
import org.springframework.beans.factory.annotation.Autowired import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Service import org.springframework.stereotype.Service
@ -38,9 +37,10 @@ class CommandListener(
if (!event.message.contentRaw.startsWith(prefix) or (event.message.contentRaw.length == prefix.length)) return 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 } val res = commands.map { it to it.onCommand(event, prefix) }.filter { it.second != CommandResult.NOPE }
if (res.size > 1) { when {
res.size > 1 -> {
val mb = val mb =
MessageBuilder("Well this is awkward... It seems that multiple actions are bound to this command... ") 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 ") .append("Report this error to the staff of the server or ")
@ -52,32 +52,38 @@ class CommandListener(
} }
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 { res.isNotEmpty() -> {
val (command, result) = res[0] val (command, result) = res[0]
when (result) { 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.SUCCESS -> Unit
CommandResult.ERROR -> CommandMessage( CommandResult.ERROR -> CommandMessage(
event, event,
emptyList() emptyList()
).reply(MessageBuilder("There was an error executing this command").build()) ).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.NOPE -> logger.warn("The command ${command.name} somehow responded with a nope?")
CommandResult.PARAMETERS -> CommandMessage(event, emptyList()).reply( CommandResult.PARAMETERS -> CommandMessage(event, emptyList()).reply(
"Sorry, but you are missing some parameters: `${command.usage}`" "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..."
)
} }
} }
isGuild -> Unit
else -> event.channel.sendMessage("I don't seem to know this command...").queue()
} }
// override fun onMessageUpdate(event: MessageUpdateEvent) = // override fun onMessageUpdate(event: MessageUpdateEvent) =
// onMessageReceived(MessageReceivedEvent(event.jda, event.messageIdLong, event.message)) // onMessageReceived(MessageReceivedEvent(event.jda, event.messageIdLong, event.message))
}
} }