50 lines
1.8 KiB
Kotlin
50 lines
1.8 KiB
Kotlin
package nl.voidcorp.ottologs
|
|
|
|
import net.dv8tion.jda.api.EmbedBuilder
|
|
import net.dv8tion.jda.api.JDABuilder
|
|
import net.dv8tion.jda.api.entities.Activity
|
|
import net.dv8tion.jda.api.events.message.guild.GuildMessageDeleteEvent
|
|
import net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent
|
|
import net.dv8tion.jda.api.hooks.ListenerAdapter
|
|
import java.awt.Color
|
|
|
|
fun main() {
|
|
val token: String = System.getenv("DISCORD_TOKEN") ?: throw RuntimeException("Missing DISCORD_TOKEN in env!")
|
|
val jda = JDABuilder().setToken(token).setActivity(Activity.watching("you")).addEventListeners(LogListener).build()
|
|
}
|
|
|
|
data class Message(val user: Long, val content: String, val channel: Long, val guild: Long, val message: Long)
|
|
|
|
val messages = mutableListOf<Message>()
|
|
|
|
object LogListener : ListenerAdapter() {
|
|
override fun onGuildMessageReceived(event: GuildMessageReceivedEvent) {
|
|
if (!event.isWebhookMessage && !event.author.isBot) {
|
|
val m = Message(
|
|
event.author.idLong,
|
|
event.message.contentRaw,
|
|
event.message.channel.idLong,
|
|
event.guild.idLong,
|
|
event.message.idLong
|
|
)
|
|
messages += m
|
|
}
|
|
}
|
|
|
|
override fun onGuildMessageDelete(event: GuildMessageDeleteEvent) {
|
|
val m = messages.firstOrNull { it.message == event.messageIdLong } ?: return
|
|
val logs = event.guild.textChannels.find { it.name == "logs" }
|
|
logs?.sendMessage(
|
|
EmbedBuilder().setDescription(m.content).setTitle("Message Deleted!")
|
|
.addField("Channel", event.channel.asMention, true).addField(
|
|
"User",
|
|
event.jda.getUserById(m.user)?.asTag ?: "No Idea...",
|
|
true
|
|
).setColor(Color.RED)
|
|
.build()
|
|
)?.queue {
|
|
|
|
}
|
|
}
|
|
}
|