Update stuff

This commit is contained in:
Wieland Schöbl
2021-05-28 20:03:12 +02:00
parent 7b29417678
commit 0c123a6567
2 changed files with 106 additions and 88 deletions

View File

@@ -2,9 +2,9 @@
package de.wulkanat package de.wulkanat
import de.wulkanat.extensions.embed
import kotlinx.serialization.decodeFromString import kotlinx.serialization.decodeFromString
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import net.dv8tion.jda.api.EmbedBuilder
import net.dv8tion.jda.api.entities.MessageEmbed import net.dv8tion.jda.api.entities.MessageEmbed
import net.dv8tion.jda.api.entities.User import net.dv8tion.jda.api.entities.User
import java.awt.Color import java.awt.Color
@@ -18,92 +18,72 @@ object Admin {
val message: String = adFile.watchingMessage val message: String = adFile.watchingMessage
val offlineMessage: String = adFile.offlineMessage val offlineMessage: String = adFile.offlineMessage
fun connectToUser() {
Main.jdas.forEach {
if(admin != null) return@forEach
admin = it.retrieveUserById(userId).complete()
}
if (admin == null) {
kotlin.io.println("Connection to de.wulkanat.Admin failed!")
} else {
kotlin.io.println("Connected to ${admin!!.name}. No further errors will be printed here.")
}
}
var admin: User? = null var admin: User? = null
fun println(msg: String) { fun connectToUser() {
sendDevMessage( Main.jdas.find { jda ->
EmbedBuilder() jda.retrieveUserById(userId).complete()?.also { admin = it } != null
.setTitle(msg) } ?: return kotlin.io.println("Connection to de.wulkanat.Admin failed!")
.setColor(Color.WHITE)
.build(), kotlin.io.println("Connected to ${admin!!.name}. No further errors will be printed here.")
msg
)
} }
fun printlnBlocking(msg: String) { fun println(msg: String) = sendDevMessage(
senDevMessageBlocking( embed {
EmbedBuilder() title = msg
.setTitle(msg) color = Color.WHITE
.setColor(Color.WHITE) }, msg
.build(), )
msg
)
}
fun error(msg: String, error: String, author: User? = null) { fun printlnBlocking(msg: String) = sendDevMessageBlocking(
sendDevMessage( embed {
EmbedBuilder() title = msg
.setTitle(msg) color = Color.WHITE
.setDescription(error) }, msg
.setColor(Color.RED) )
.run {
if (author == null) {
this
} else {
this.setAuthor(author.asTag, author.avatarUrl, author.avatarUrl)
}
}
.build(), "$msg\n\n${error}"
)
}
fun errorBlocking(msg: String, error: Exception) { fun error(msg: String, error: String, author: User? = null) = sendDevMessage(
senDevMessageBlocking( embed {
EmbedBuilder() title = msg
.setTitle(msg) description = error
.setDescription(error.message) color = Color.RED
.setColor(Color.RED)
.build(), "$msg\n\n${error.message}"
)
}
fun warning(msg: String) { author {
sendDevMessage( name = author?.asTag
EmbedBuilder() url = author?.avatarUrl
.setTitle(msg) icon = author?.avatarUrl
.setColor(Color.YELLOW) }
.build(), }, "$msg\n\n${error}"
msg )
)
} fun errorBlocking(msg: String, error: Exception) = sendDevMessageBlocking(
embed {
title = msg
description = error.message
color = Color.RED
}, "$msg\n\n${error.message}"
)
fun warning(msg: String) = sendDevMessage(
embed {
title = msg
color = Color.YELLOW
}, msg
)
fun info() { fun info() {
sendDevMessage( sendDevMessage(
EmbedBuilder() embed {
.setTitle("Now watching for new Hytale Blogposts every ${updateMs / 1000}s") title = "Now watching for new Hytale Blogposts every ${updateMs / 1000}s"
.setDescription( description = """
"""
${Channels.getServerNames().joinToString("\n")} ${Channels.getServerNames().joinToString("\n")}
**_Service Channels_** **_Service Channels_**
${Channels.getServiceChannelServers().joinToString("\n")} ${Channels.getServiceChannelServers().joinToString("\n")}
""".trimIndent() """.trimIndent()
) color = Color.GREEN
.setColor(Color.GREEN)
.build(), }, "Now watching for new Hytale BlogPosts"
"Now watching for new Hytale BlogPosts"
) )
} }
@@ -111,25 +91,13 @@ object Admin {
kotlin.io.println(msg) kotlin.io.println(msg)
} }
private fun senDevMessageBlocking(messageEmbed: MessageEmbed, fallback: String) { private fun sendDevMessageBlocking(messageEmbed: MessageEmbed, fallback: String) {
val devChannel = admin?.openPrivateChannel() ?: kotlin.run { (admin?.openPrivateChannel() ?: return kotlin.io.println(fallback))
kotlin.io.println(fallback) .complete().sendMessage(messageEmbed).complete()
return
}
devChannel.complete()
.sendMessage(messageEmbed).complete()
} }
fun sendDevMessage(messageEmbed: MessageEmbed, fallback: String) { fun sendDevMessage(messageEmbed: MessageEmbed, fallback: String) {
kotlin.io.println(admin!!.id) (admin?.openPrivateChannel() ?: return kotlin.io.println(fallback)).queue {
val devChannel = admin?.openPrivateChannel() ?: kotlin.run {
kotlin.io.println(fallback)
return
}
devChannel.queue {
it.sendMessage(messageEmbed).queue() it.sendMessage(messageEmbed).queue()
} }
} }

View File

@@ -0,0 +1,50 @@
package de.wulkanat.extensions
import net.dv8tion.jda.api.EmbedBuilder
import java.awt.Color
class EmbedBuilderBuilder {
val _embed = EmbedBuilder()
var title: String?
set(value) {
_embed.setTitle(value)
}
get() = null
var description: String?
set(value) {
_embed.setDescription(value)
}
get() = null
var color: Color
set(value) {
_embed.setColor(value)
}
get() = Color.BLACK
fun field(builder: FieldBuilderBuilder.() -> Unit) =
FieldBuilderBuilder().apply { builder() }.let {
_embed.addField(it.name, it.value, it.inline)
}
fun author(builder: AuthorBuilderBuilder.() -> Unit) =
AuthorBuilderBuilder().apply { builder() }.let {
_embed.setAuthor(it.name, it.url, it.icon)
}
}
class FieldBuilderBuilder {
var name: String? = null
var value: String? = null
var inline = false
}
class AuthorBuilderBuilder {
var name: String? = null
var url: String? = null
var icon: String? = null
}
fun embed(builder: EmbedBuilderBuilder.() -> Unit) =
EmbedBuilderBuilder().apply { builder() }._embed.build()