Kotlin で traQ Bot を書くための API ラッパーです。
- JDK 21 以上
- Gradle
Gradle プロジェクトに以下の依存関係を追加してください。
repositories {
maven("https://jitpack.io")
}
dependencies {
implementation("com.github.howard12721.traKt:trakt-bot:1.1.1")
}import jp.xhw.trakt.bot.model.MessageCreated
import jp.xhw.trakt.bot.scope.reply
import jp.xhw.trakt.bot.trakt
import kotlin.uuid.Uuid
suspend fun main() {
val token = System.getenv("TRAQ_BOT_TOKEN")
require(!token.isNullOrBlank()) { "TRAQ_BOT_TOKEN is required" }
val botId = System.getenv("TRAQ_BOT_ID")?.takeUnless(String::isBlank)?.let(Uuid::parse)
val client = trakt(token = token, botId = botId) {
on<MessageCreated> { event ->
if (event.message.content.trim() == "ping") {
event.message.reply("pong")
}
}
}
try {
client.start()
} finally {
client.stop()
}
}trakt(token) { ... } ← TraktClient 生成 + イベントハンドラ登録
↓
client.start() ← WebSocket 接続 & イベントループ開始
↓
(イベント受信) ← ハンドラが BotScope 内で実行される
↓
client.stop() ← 接続切断 & リソース解放
trakt() ファクトリ関数のパラメータ:
| パラメータ | 型 | デフォルト値 | 説明 |
|---|---|---|---|
token |
String |
(必須) | Bot アクセストークン |
botId |
Uuid? |
null |
Bot ID。channel.join など Bot 固有アクションを使う場合に必要 |
origin |
String |
"q.trap.jp" |
traQ サーバーのホスト名 |
coroutineContext |
CoroutineContext |
Dispatchers.Default |
イベント処理に使用するコルーチンコンテキスト |
debugMode |
Boolean |
false |
WebSocket の DEBUG ログ出力を有効化 |
export TRAQ_BOT_TOKEN="your-bot-token-here"
export TRAQ_BOT_ID="your-bot-id-here"val token = System.getenv("TRAQ_BOT_TOKEN")
?: error("TRAQ_BOT_TOKEN environment variable is required")
val botId = System.getenv("TRAQ_BOT_ID")
?.takeUnless(String::isBlank)
?.let(Uuid::parse)