OttoBot/src/main/kotlin/nl/voidcorp/dbot/UnityBot.kt

105 lines
3.0 KiB
Kotlin
Raw Normal View History

2018-10-10 23:54:01 +02:00
package nl.voidcorp.dbot
2018-10-14 14:16:14 +02:00
import com.sedmelluq.discord.lavaplayer.jdaudp.NativeAudioSendFactory
import com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager
2018-10-14 22:20:47 +02:00
import com.sedmelluq.discord.lavaplayer.source.soundcloud.SoundCloudAudioSourceManager
2018-10-14 14:16:14 +02:00
import com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager
import net.dv8tion.jda.core.JDA
2018-10-10 23:54:01 +02:00
import net.dv8tion.jda.core.JDABuilder
2018-10-20 16:43:21 +02:00
import nl.voidcorp.dbot.commands.*
import nl.voidcorp.dbot.music.initMusic
2018-10-10 23:54:01 +02:00
import org.slf4j.LoggerFactory
2018-10-14 14:16:14 +02:00
val playerManager = DefaultAudioPlayerManager()
val log = LoggerFactory.getLogger("UnityBot")
val commands = mutableListOf<UnityCommand>()
2018-10-15 22:25:51 +02:00
2018-10-14 14:16:14 +02:00
2018-10-10 23:54:01 +02:00
fun main(args: Array<String>) {
2018-10-14 14:16:14 +02:00
playerManager.registerSourceManager(YoutubeAudioSourceManager(true))
2018-10-14 22:20:47 +02:00
playerManager.registerSourceManager(SoundCloudAudioSourceManager(true))
2018-10-10 23:54:01 +02:00
commands.addAll(helloCommand, pingCommand, helpCommand, joinRoleCommand, removeRoleCommand)
initMusic()
initFun()
initAdmin()
val custom = UnityCommandClient("!")
custom.addCommands(commands)
custom.version = "1.5"
bot = JDABuilder(args[0]).addEventListener(custom).addEventListener(nl.voidcorp.dbot.Events)
.setAudioSendFactory(NativeAudioSendFactory()).build()
/*Runtime.getRuntime().addShutdownHook(thread(start = false) {
custom.shutdown()
})*/
}
/*fun tokenStuff(){
2018-10-10 23:54:01 +02:00
JavalinJson.apply {
toJsonMapper = object : ToJsonMapper {
override fun map(obj: Any): String = gson.toJson(obj)
}
fromJsonMapper = object : FromJsonMapper {
override fun <T> map(json: String, targetClass: Class<T>): T = gson.fromJson(json, targetClass)
}
}
if (!File(".hooks").exists()) {
log.error("The .hooks file does not exist!")
log.error("Exiting")
System.exit(1)
}
val hooks = mutableListOf<WebhookClient>()
FileReader(".hooks").forEachLine {
val wh = WebhookClientBuilder(it).build()
hooks += wh
}
log.info(hooks.toString())
val app = Javalin.create().requestLogger { ctx, timeMs ->
if (ctx.res.status >= 400) {
log.error("${ctx.method()} ${ctx.path()} -> ${ctx.status()} (${timeMs}ms)")
} else {
log.info("${ctx.method()} ${ctx.path()} -> ${ctx.status()} (${timeMs}ms)")
}
}.disableStartupBanner().start(4466)
app.post("/gitlab.json") { ctx ->
val bod = ctx.validatedBody<GitlabWebhook>()
if (bod.value != null) {
bod.value!!.apply {
val embed = EmbedBuilder()
embed.setTitle(project.name, project.web_url)
val builder = embed.descriptionBuilder
var url = ""
commits.forEach {
builder.append("${it.message} (${it.timestamp})")
url = it.url
}
embed.setAuthor("$user_name ($user_username)", url, user_avatar)
hooks.forEach { it.send(embed.build()) }
}
}
ctx.status(200).result("OK")
}
2018-10-14 14:16:14 +02:00
}*/
2018-10-11 17:16:19 +02:00
2018-10-14 14:16:14 +02:00
lateinit var bot: JDA
2018-10-15 22:25:51 +02:00