test twitch stuff
This commit is contained in:
parent
2037ba906f
commit
0be5976be2
@ -248,7 +248,7 @@ formatting:
|
|||||||
active: true
|
active: true
|
||||||
autoCorrect: true
|
autoCorrect: true
|
||||||
Filename:
|
Filename:
|
||||||
active: true
|
active: false
|
||||||
FinalNewline:
|
FinalNewline:
|
||||||
active: true
|
active: true
|
||||||
autoCorrect: true
|
autoCorrect: true
|
||||||
|
@ -3,12 +3,19 @@
|
|||||||
*/
|
*/
|
||||||
package dev.jansel.aglaea
|
package dev.jansel.aglaea
|
||||||
|
|
||||||
|
import com.github.twitch4j.TwitchClient
|
||||||
import dev.jansel.aglaea.extensions.TestExtension
|
import dev.jansel.aglaea.extensions.TestExtension
|
||||||
|
import dev.jansel.aglaea.utils.twitch
|
||||||
import dev.kord.common.entity.Snowflake
|
import dev.kord.common.entity.Snowflake
|
||||||
import dev.kordex.core.ExtensibleBot
|
import dev.kordex.core.ExtensibleBot
|
||||||
import dev.kordex.core.utils.env
|
import dev.kordex.core.utils.env
|
||||||
|
import io.github.oshai.kotlinlogging.KotlinLogging
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
|
var twitchClient: TwitchClient? = null
|
||||||
|
val logger = KotlinLogging.logger { }
|
||||||
|
var botRef: ExtensibleBot? = null
|
||||||
|
|
||||||
val TEST_SERVER_ID = Snowflake(
|
val TEST_SERVER_ID = Snowflake(
|
||||||
env("TEST_SERVER").toLong() // Get the test server ID from the env vars or a .env file
|
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 {
|
extensions {
|
||||||
add(::TestExtension)
|
add(::TestExtension)
|
||||||
}
|
}
|
||||||
|
twitch(true)
|
||||||
if (devMode) {
|
if (devMode) {
|
||||||
// In development mode, load any plugins from `src/main/dist/plugin` if it exists.
|
// In development mode, load any plugins from `src/main/dist/plugin` if it exists.
|
||||||
plugins {
|
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