Log command executions
This commit is contained in:
parent
d662784d86
commit
3890b2bba9
@ -16,6 +16,9 @@ fun main() {
|
|||||||
object Kagebot {
|
object Kagebot {
|
||||||
fun processMessage(event: MessageCreateEvent) {
|
fun processMessage(event: MessageCreateEvent) {
|
||||||
if (event.messageAuthor.isBotUser) {
|
if (event.messageAuthor.isBotUser) {
|
||||||
|
if (event.messageAuthor.isYourself) {
|
||||||
|
log.info("<Self> ${event.readableMessageContent}")
|
||||||
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
for (command in Globals.config.commands) {
|
for (command in Globals.config.commands) {
|
||||||
|
@ -2,6 +2,7 @@ package moe.kageru.kagebot.command
|
|||||||
|
|
||||||
import moe.kageru.kagebot.Globals
|
import moe.kageru.kagebot.Globals
|
||||||
import moe.kageru.kagebot.Globals.config
|
import moe.kageru.kagebot.Globals.config
|
||||||
|
import moe.kageru.kagebot.Log.log
|
||||||
import moe.kageru.kagebot.MessageUtil
|
import moe.kageru.kagebot.MessageUtil
|
||||||
import moe.kageru.kagebot.Util.doIf
|
import moe.kageru.kagebot.Util.doIf
|
||||||
import moe.kageru.kagebot.config.RawCommand
|
import moe.kageru.kagebot.config.RawCommand
|
||||||
@ -35,8 +36,10 @@ class Command(cmd: RawCommand) {
|
|||||||
if (config.localization.permissionDenied.isNotBlank()) {
|
if (config.localization.permissionDenied.isNotBlank()) {
|
||||||
message.channel.sendMessage(config.localization.permissionDenied)
|
message.channel.sendMessage(config.localization.permissionDenied)
|
||||||
}
|
}
|
||||||
|
log.info("Denying command ${this.trigger} to user ${message.messageAuthor.discriminatedName} (ID: ${message.messageAuthor.id})")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
log.info("Executing command ${this.trigger} triggered by user ${message.messageAuthor.discriminatedName} (ID: ${message.messageAuthor.id})")
|
||||||
Globals.commandCounter.incrementAndGet()
|
Globals.commandCounter.incrementAndGet()
|
||||||
this.actions?.run(message, this)
|
this.actions?.run(message, this)
|
||||||
this.response?.let {
|
this.response?.let {
|
||||||
@ -45,6 +48,7 @@ class Command(cmd: RawCommand) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun matches(msg: String) = this.matchType.matches(msg, this)
|
fun matches(msg: String) = this.matchType.matches(msg, this)
|
||||||
|
|
||||||
private fun respond(author: MessageAuthor, response: String) = response.doIf({ it.contains(AUTHOR_PLACEHOLDER) }) {
|
private fun respond(author: MessageAuthor, response: String) = response.doIf({ it.contains(AUTHOR_PLACEHOLDER) }) {
|
||||||
it.replace(AUTHOR_PLACEHOLDER, MessageUtil.mention(author))
|
it.replace(AUTHOR_PLACEHOLDER, MessageUtil.mention(author))
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,6 @@ import java.util.*
|
|||||||
object TestUtil {
|
object TestUtil {
|
||||||
fun mockMessage(
|
fun mockMessage(
|
||||||
content: String,
|
content: String,
|
||||||
author: Long = 1,
|
|
||||||
replies: MutableList<String> = mutableListOf(),
|
replies: MutableList<String> = mutableListOf(),
|
||||||
replyEmbeds: MutableList<EmbedBuilder> = mutableListOf(),
|
replyEmbeds: MutableList<EmbedBuilder> = mutableListOf(),
|
||||||
isBot: Boolean = false
|
isBot: Boolean = false
|
||||||
@ -26,13 +25,18 @@ object TestUtil {
|
|||||||
return mockk {
|
return mockk {
|
||||||
every { messageContent } returns content
|
every { messageContent } returns content
|
||||||
every { readableMessageContent } returns content
|
every { readableMessageContent } returns content
|
||||||
every { messageAuthor.id } returns author
|
|
||||||
every { channel.sendMessage(capture(replies)) } returns mockk()
|
every { channel.sendMessage(capture(replies)) } returns mockk()
|
||||||
every { channel.sendMessage(capture(replyEmbeds)) } returns mockk()
|
every { channel.sendMessage(capture(replyEmbeds)) } returns mockk()
|
||||||
every { messageAuthor.isBotUser } returns isBot
|
|
||||||
every { message.canYouDelete() } returns true
|
every { message.canYouDelete() } returns true
|
||||||
every { messageAuthor.isBotOwner } returns false
|
|
||||||
every { isPrivateMessage } returns false
|
every { isPrivateMessage } returns false
|
||||||
|
// We can’t use a nested mock here because other fields of messageAuthor might
|
||||||
|
// get overwritten by other tests, which would delete a nested mock.
|
||||||
|
every { messageAuthor.id } returns 1
|
||||||
|
every { messageAuthor.discriminatedName } returns "testuser#1234"
|
||||||
|
every { messageAuthor.isBotUser } returns isBot
|
||||||
|
every { messageAuthor.isYourself } returns isBot
|
||||||
|
every { messageAuthor.isBotOwner } returns false
|
||||||
|
every { messageAuthor.asUser() } returns Optional.of(messageableAuthor())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package moe.kageru.kagebot
|
package moe.kageru.kagebot.command
|
||||||
|
|
||||||
import io.kotlintest.matchers.string.shouldContain
|
import io.kotlintest.matchers.string.shouldContain
|
||||||
import io.kotlintest.shouldBe
|
import io.kotlintest.shouldBe
|
||||||
@ -6,7 +6,10 @@ import io.kotlintest.specs.StringSpec
|
|||||||
import io.mockk.every
|
import io.mockk.every
|
||||||
import io.mockk.mockk
|
import io.mockk.mockk
|
||||||
import io.mockk.verify
|
import io.mockk.verify
|
||||||
|
import moe.kageru.kagebot.Globals
|
||||||
import moe.kageru.kagebot.Globals.config
|
import moe.kageru.kagebot.Globals.config
|
||||||
|
import moe.kageru.kagebot.Kagebot
|
||||||
|
import moe.kageru.kagebot.TestUtil
|
||||||
import moe.kageru.kagebot.TestUtil.embedToString
|
import moe.kageru.kagebot.TestUtil.embedToString
|
||||||
import moe.kageru.kagebot.TestUtil.messageableAuthor
|
import moe.kageru.kagebot.TestUtil.messageableAuthor
|
||||||
import moe.kageru.kagebot.TestUtil.mockMessage
|
import moe.kageru.kagebot.TestUtil.mockMessage
|
||||||
@ -111,7 +114,6 @@ class CommandTest : StringSpec({
|
|||||||
) {
|
) {
|
||||||
val replies = mutableListOf<String>()
|
val replies = mutableListOf<String>()
|
||||||
val mockMessage = mockMessage("!restricted", replies = replies)
|
val mockMessage = mockMessage("!restricted", replies = replies)
|
||||||
every { mockMessage.messageAuthor.asUser() } returns Optional.of(messageableAuthor())
|
|
||||||
Kagebot.processMessage(mockMessage)
|
Kagebot.processMessage(mockMessage)
|
||||||
replies shouldBe mutableListOf(config.localization.permissionDenied)
|
replies shouldBe mutableListOf(config.localization.permissionDenied)
|
||||||
withLocalization(
|
withLocalization(
|
Loading…
Reference in New Issue
Block a user