test twitch stuff
This commit is contained in:
parent
2037ba906f
commit
0be5976be2
@ -248,7 +248,7 @@ formatting:
|
||||
active: true
|
||||
autoCorrect: true
|
||||
Filename:
|
||||
active: true
|
||||
active: false
|
||||
FinalNewline:
|
||||
active: true
|
||||
autoCorrect: true
|
||||
|
@ -3,12 +3,19 @@
|
||||
*/
|
||||
package dev.jansel.aglaea
|
||||
|
||||
import com.github.twitch4j.TwitchClient
|
||||
import dev.jansel.aglaea.extensions.TestExtension
|
||||
import dev.jansel.aglaea.utils.twitch
|
||||
import dev.kord.common.entity.Snowflake
|
||||
import dev.kordex.core.ExtensibleBot
|
||||
import dev.kordex.core.utils.env
|
||||
import io.github.oshai.kotlinlogging.KotlinLogging
|
||||
import java.io.File
|
||||
|
||||
var twitchClient: TwitchClient? = null
|
||||
val logger = KotlinLogging.logger { }
|
||||
var botRef: ExtensibleBot? = null
|
||||
|
||||
val TEST_SERVER_ID = Snowflake(
|
||||
env("TEST_SERVER").toLong() // Get the test server ID from the env vars or a .env file
|
||||
)
|
||||
@ -20,7 +27,7 @@ suspend fun main() {
|
||||
extensions {
|
||||
add(::TestExtension)
|
||||
}
|
||||
|
||||
twitch(true)
|
||||
if (devMode) {
|
||||
// In development mode, load any plugins from `src/main/dist/plugin` if it exists.
|
||||
plugins {
|
||||
|
25
src/main/kotlin/dev/jansel/aglaea/extensions/EventHooks.kt
Normal file
25
src/main/kotlin/dev/jansel/aglaea/extensions/EventHooks.kt
Normal file
@ -0,0 +1,25 @@
|
||||
package dev.jansel.aglaea.extensions
|
||||
|
||||
import com.github.philippheuer.credentialmanager.domain.OAuth2Credential
|
||||
import dev.jansel.aglaea.logger
|
||||
import dev.jansel.aglaea.twitchClient
|
||||
import dev.jansel.aglaea.utils.twitchcid
|
||||
import dev.jansel.aglaea.utils.twitchcs
|
||||
import dev.kord.core.event.gateway.ReadyEvent
|
||||
import dev.kordex.core.extensions.Extension
|
||||
import dev.kordex.core.extensions.event
|
||||
|
||||
class EventHooks : Extension() {
|
||||
override val name = "eventhooks"
|
||||
|
||||
override suspend fun setup() {
|
||||
event<ReadyEvent> {
|
||||
action {
|
||||
// This is where you can add any code that should run when the bot is ready
|
||||
// For example, you can initialize any services or start any background tasks
|
||||
logger.info { "Bot is ready!" }
|
||||
twitchClient!!.pubSub.listenForChannelPointsRedemptionEvents(OAuth2Credential(twitchcid, twitchcs), "120275141")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
18
src/main/kotlin/dev/jansel/aglaea/utils/Twitch.kt
Normal file
18
src/main/kotlin/dev/jansel/aglaea/utils/Twitch.kt
Normal file
@ -0,0 +1,18 @@
|
||||
package dev.jansel.aglaea.utils
|
||||
|
||||
import com.github.philippheuer.events4j.reactor.ReactorEventHandler
|
||||
import com.github.twitch4j.TwitchClientBuilder
|
||||
import dev.jansel.aglaea.twitchClient
|
||||
import dev.kordex.core.koin.KordExKoinComponent
|
||||
|
||||
class Twitch : KordExKoinComponent {
|
||||
suspend fun init() {
|
||||
twitchClient = TwitchClientBuilder.builder()
|
||||
.withEnableHelix(true)
|
||||
.withEnablePubSub(true)
|
||||
.withDefaultEventHandler(ReactorEventHandler::class.java)
|
||||
.withClientId(twitchcid)
|
||||
.withClientSecret(twitchcs)
|
||||
.build()
|
||||
}
|
||||
}
|
23
src/main/kotlin/dev/jansel/aglaea/utils/_Utils.kt
Normal file
23
src/main/kotlin/dev/jansel/aglaea/utils/_Utils.kt
Normal file
@ -0,0 +1,23 @@
|
||||
package dev.jansel.aglaea.utils
|
||||
|
||||
import dev.kordex.core.builders.ExtensibleBotBuilder
|
||||
import dev.kordex.core.utils.env
|
||||
import dev.kordex.core.utils.loadModule
|
||||
import org.koin.dsl.bind
|
||||
|
||||
val twitchcid = env("TWITCH_CLIENT_ID")
|
||||
val twitchcs = env("TWITCH_CLIENT_SECRET")
|
||||
|
||||
suspend inline fun ExtensibleBotBuilder.twitch(active: Boolean) {
|
||||
hooks {
|
||||
beforeKoinSetup {
|
||||
loadModule {
|
||||
single { Twitch() } bind Twitch::class
|
||||
}
|
||||
|
||||
if (active) {
|
||||
Twitch().init()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user