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
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")
require(!botId.isNullOrBlank()) { "TRAQ_BOT_ID is required" }
val client = trakt(token = token, botId = Uuid.parse(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 |
(必須) | Bot ID |
origin |
String |
"q.trap.jp" |
traQ サーバーのホスト名 |
coroutineContext |
CoroutineContext |
Dispatchers.Default |
イベント処理に使用するコルーチンコンテキスト |
export TRAQ_BOT_TOKEN="your-bot-token-here"val token = System.getenv("TRAQ_BOT_TOKEN")
?: error("TRAQ_BOT_TOKEN environment variable is required")