11package io.github.petercrawley.aggregator
22
3+ import club.minnced.discord.webhook.external.JDAWebhookClient
4+ import club.minnced.discord.webhook.send.WebhookMessageBuilder
35import com.mongodb.ConnectionString
46import com.mongodb.MongoClientSettings
57import io.github.petercrawley.aggregator.commands.HelpCommand
@@ -13,10 +15,10 @@ import net.dv8tion.jda.api.events.message.MessageReceivedEvent
1315import net.dv8tion.jda.api.hooks.ListenerAdapter
1416import net.dv8tion.jda.api.interactions.commands.build.SlashCommandData
1517import net.dv8tion.jda.api.requests.GatewayIntent
16- import org.litote.kmongo.*
1718import org.litote.kmongo.KMongo.createClient
18- import java.net.HttpURLConnection
19- import java.net.URL
19+ import org.litote.kmongo.contains
20+ import org.litote.kmongo.ensureIndex
21+ import org.litote.kmongo.getCollection
2022import kotlin.system.exitProcess
2123
2224object Aggregator : ListenerAdapter() {
@@ -96,20 +98,18 @@ object Aggregator : ListenerAdapter() {
9698
9799 val webhooks = targetChannel.retrieveWebhooks().complete()
98100 val webhook = webhooks.find { it.ownerAsUser?.idLong == jda.selfUser.idLong } ? : targetChannel.createWebhook(" Aggregator Target" ).complete()
99-
100- val connection = URL (webhook.url).openConnection() as HttpURLConnection
101- connection.requestMethod = " POST"
102- connection.setRequestProperty(" Content-Type" , " application/json" )
103- connection.doOutput = true
104-
105- val stream = connection.outputStream
106- stream.write(" {\" username\" :\" ${event.author.name} \" ,\" avatar_url\" :\" ${event.author.avatarUrl} \" ,\" content\" :\" ${event.message.contentRaw} \" }" .toByteArray())
107- stream.flush()
108- stream.close()
109-
110- connection.responseCode
111-
112- connection.disconnect()
101+ val webhookClient = JDAWebhookClient .from(webhook)
102+
103+ val message = WebhookMessageBuilder ()
104+ .setUsername(event.author.name)
105+ .setAvatarUrl(event.author.avatarUrl)
106+ .setContent(event.message.contentRaw)
107+ .apply {
108+ event.message.attachments.forEach { addFile(it.fileName, it.proxy.download().join()) }
109+ }
110+ .build()
111+
112+ webhookClient.send(message)
113113 }
114114 }
115115
0 commit comments