mirror of
https://github.com/HMCore/Orbot.git
synced 2025-12-10 21:06:18 +00:00
124 lines
3.2 KiB
Kotlin
124 lines
3.2 KiB
Kotlin
package de.wulkanat
|
|
|
|
import kotlinx.serialization.json.Json
|
|
import kotlinx.serialization.json.JsonConfiguration
|
|
import net.dv8tion.jda.api.EmbedBuilder
|
|
import net.dv8tion.jda.api.JDA
|
|
import net.dv8tion.jda.api.entities.MessageEmbed
|
|
import net.dv8tion.jda.api.entities.User
|
|
import java.awt.Color
|
|
|
|
object Admin {
|
|
val userId: Long
|
|
val token: String
|
|
val updateMs: Long
|
|
|
|
init {
|
|
val admin = Json(JsonConfiguration.Stable).parse(AdminFile.serializer(), ADMIN_FILE.readText())
|
|
userId = admin.adminId
|
|
token = admin.token
|
|
updateMs = admin.updateMs
|
|
}
|
|
|
|
var jda: JDA? = null
|
|
set(value) {
|
|
field = value
|
|
|
|
admin = value?.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.")
|
|
}
|
|
}
|
|
private var admin: User? = null
|
|
|
|
fun println(msg: String) {
|
|
sendDevMessage(
|
|
EmbedBuilder()
|
|
.setTitle(msg)
|
|
.setColor(Color.WHITE)
|
|
.build(),
|
|
msg
|
|
)
|
|
}
|
|
|
|
fun printlnBlocking(msg: String) {
|
|
senDevMessageBlocking(
|
|
EmbedBuilder()
|
|
.setTitle(msg)
|
|
.setColor(Color.WHITE)
|
|
.build(),
|
|
msg
|
|
)
|
|
}
|
|
|
|
fun error(msg: String, error: Exception) {
|
|
sendDevMessage(
|
|
EmbedBuilder()
|
|
.setTitle(msg)
|
|
.setDescription(error.message)
|
|
.setColor(Color.RED)
|
|
.build()
|
|
, "$msg\n\n${error.message}"
|
|
)
|
|
}
|
|
|
|
fun errorBlocking(msg: String, error: Exception) {
|
|
senDevMessageBlocking(
|
|
EmbedBuilder()
|
|
.setTitle(msg)
|
|
.setDescription(error.message)
|
|
.setColor(Color.RED)
|
|
.build()
|
|
, "$msg\n\n${error.message}"
|
|
)
|
|
}
|
|
|
|
fun warning(msg: String) {
|
|
sendDevMessage(
|
|
EmbedBuilder()
|
|
.setTitle(msg)
|
|
.setColor(Color.YELLOW)
|
|
.build(),
|
|
msg
|
|
)
|
|
}
|
|
|
|
fun ready() {
|
|
sendDevMessage(
|
|
EmbedBuilder()
|
|
.setTitle("Now watching for new Hytale Blogposts every ${updateMs / 1000}s")
|
|
.setDescription(Channels.getServerNames().joinToString("\n"))
|
|
.setColor(Color.GREEN)
|
|
.build(),
|
|
"Now watching for new Hytale BlogPosts"
|
|
)
|
|
}
|
|
|
|
fun silent(msg: String) {
|
|
kotlin.io.println(msg)
|
|
}
|
|
|
|
private fun senDevMessageBlocking(messageEmbed: MessageEmbed, fallback: String) {
|
|
val devChannel = admin?.openPrivateChannel() ?: kotlin.run {
|
|
kotlin.io.println(fallback)
|
|
return
|
|
}
|
|
|
|
devChannel.queue {
|
|
it.sendMessage(messageEmbed).complete()
|
|
}
|
|
}
|
|
|
|
private fun sendDevMessage(messageEmbed: MessageEmbed, fallback: String) {
|
|
val devChannel = admin?.openPrivateChannel() ?: kotlin.run {
|
|
kotlin.io.println(fallback)
|
|
return
|
|
}
|
|
|
|
devChannel.queue {
|
|
it.sendMessage(messageEmbed).queue()
|
|
}
|
|
}
|
|
} |