chore: upgrade ronebot to 2.4.5

This commit is contained in:
2024-11-08 20:59:51 +08:00
parent a2bdcc5232
commit 5b8de20430
64 files changed
+82 -84

No files matched your search

+1 -1
View File
@@ -1,6 +1,6 @@
[versions] [versions]
kotlinVersion = "2.0.20" kotlinVersion = "2.0.20"
ronebotVersion = "2.4.4" ronebotVersion = "2.4.5"
shadowVersion = "8.3.0" shadowVersion = "8.3.0"
okhttpVersion = "5.0.0-alpha.14" okhttpVersion = "5.0.0-alpha.14"
exposedVersion = "0.53.0" exposedVersion = "0.53.0"
@@ -17,8 +17,6 @@ import cn.rtast.fancybot.commands.reply.ImageBedCommand
import cn.rtast.fancybot.commands.reply.InvertImageCommand import cn.rtast.fancybot.commands.reply.InvertImageCommand
import cn.rtast.fancybot.commands.reply.RandomRGBCommand import cn.rtast.fancybot.commands.reply.RandomRGBCommand
import cn.rtast.fancybot.commands.reply.SpeedUpGIFCommand import cn.rtast.fancybot.commands.reply.SpeedUpGIFCommand
import cn.rtast.fancybot.entity.nailong.NaiLongDetectPayload
import cn.rtast.fancybot.entity.nailong.NaiLongDetectResponse
import cn.rtast.fancybot.enums.WSType import cn.rtast.fancybot.enums.WSType
import cn.rtast.fancybot.util.* import cn.rtast.fancybot.util.*
import cn.rtast.fancybot.util.misc.ImageBed import cn.rtast.fancybot.util.misc.ImageBed
@@ -45,9 +43,9 @@ import cn.rtast.rob.entity.lagrange.FileEvent
import cn.rtast.rob.entity.lagrange.PokeEvent import cn.rtast.rob.entity.lagrange.PokeEvent
import cn.rtast.rob.enums.ArrayMessageType import cn.rtast.rob.enums.ArrayMessageType
import cn.rtast.rob.enums.QQFace import cn.rtast.rob.enums.QQFace
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.ob.OneBotAction import cn.rtast.rob.onebot.OneBotAction
import cn.rtast.rob.util.ob.OneBotListener import cn.rtast.rob.onebot.OneBotListener
import com.madgag.gif.fmsware.GifDecoder import com.madgag.gif.fmsware.GifDecoder
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
@@ -9,8 +9,8 @@ package cn.rtast.fancybot.commands
import cn.rtast.fancybot.annotations.CommandDescription import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
@CommandDescription("关于") @CommandDescription("关于")
class AboutCommand : BaseCommand() { class AboutCommand : BaseCommand() {
@@ -11,9 +11,9 @@ import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.fancybot.commands import cn.rtast.fancybot.commands
import cn.rtast.fancybot.configManager import cn.rtast.fancybot.configManager
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.onebot.NodeMessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.NodeMessageChain
import kotlin.reflect.full.findAnnotation import kotlin.reflect.full.findAnnotation
import kotlin.reflect.full.hasAnnotation import kotlin.reflect.full.hasAnnotation
@@ -13,8 +13,8 @@ import cn.rtast.fancybot.enums.CommandAction
import cn.rtast.fancybot.util.CommandInterceptor import cn.rtast.fancybot.util.CommandInterceptor
import cn.rtast.fancybot.util.file.insertActionRecord import cn.rtast.fancybot.util.file.insertActionRecord
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
import java.time.Instant import java.time.Instant
@CommandDescription("状态") @CommandDescription("状态")
@@ -11,8 +11,8 @@ import cn.rtast.fancybot.ASSETS_BASE_URL
import cn.rtast.fancybot.annotations.CommandDescription import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.fancybot.util.str.encodeToBase64 import cn.rtast.fancybot.util.str.encodeToBase64
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
import java.net.URI import java.net.URI
@CommandDescription("给我打钱!") @CommandDescription("给我打钱!")
@@ -18,9 +18,9 @@ import cn.rtast.fancybot.util.Http
import cn.rtast.fancybot.util.file.insertActionRecord import cn.rtast.fancybot.util.file.insertActionRecord
import cn.rtast.fancybot.util.str.toJson import cn.rtast.fancybot.util.str.toJson
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.onebot.NodeMessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.NodeMessageChain
@CommandDescription("问AI(GPT)") @CommandDescription("问AI(GPT)")
class AICommand : BaseCommand() { class AICommand : BaseCommand() {
@@ -13,9 +13,9 @@ import cn.rtast.fancybot.entity.bgm.BGMSearch
import cn.rtast.fancybot.util.Http import cn.rtast.fancybot.util.Http
import cn.rtast.fancybot.util.str.encodeToBase64 import cn.rtast.fancybot.util.str.encodeToBase64
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.onebot.NodeMessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.NodeMessageChain
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import okhttp3.Request import okhttp3.Request
@@ -13,9 +13,9 @@ import cn.rtast.fancybot.entity.cigarette.Cigarette
import cn.rtast.fancybot.util.Http import cn.rtast.fancybot.util.Http
import cn.rtast.fancybot.util.str.encodeToBase64 import cn.rtast.fancybot.util.str.encodeToBase64
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.onebot.NodeMessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.NodeMessageChain
import java.net.URI import java.net.URI
@CommandDescription("查询香烟价格") @CommandDescription("查询香烟价格")
@@ -15,8 +15,8 @@ import cn.rtast.fancybot.util.misc.toByteArray
import cn.rtast.fancybot.util.str.encodeToBase64 import cn.rtast.fancybot.util.str.encodeToBase64
import cn.rtast.fancybot.util.str.toJson import cn.rtast.fancybot.util.str.toJson
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
import java.awt.Color import java.awt.Color
import java.awt.Font import java.awt.Font
import java.awt.image.BufferedImage import java.awt.image.BufferedImage
@@ -14,8 +14,8 @@ import cn.rtast.fancybot.entity.github.LatestCommit
import cn.rtast.fancybot.util.Http import cn.rtast.fancybot.util.Http
import cn.rtast.fancybot.util.str.fromArrayJson import cn.rtast.fancybot.util.str.fromArrayJson
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
@CommandDescription("查询Github上的仓库的最新一次的提交信息") @CommandDescription("查询Github上的仓库的最新一次的提交信息")
class GithubLatestCommitCommand : BaseCommand() { class GithubLatestCommitCommand : BaseCommand() {
@@ -17,8 +17,8 @@ import cn.rtast.fancybot.util.misc.toBufferedImage
import cn.rtast.fancybot.util.misc.toByteArray import cn.rtast.fancybot.util.misc.toByteArray
import cn.rtast.fancybot.util.str.encodeToBase64 import cn.rtast.fancybot.util.str.encodeToBase64
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
import java.awt.Color import java.awt.Color
import java.awt.Font import java.awt.Font
import java.awt.image.BufferedImage import java.awt.image.BufferedImage
@@ -12,8 +12,8 @@ import cn.rtast.fancybot.util.misc.toURL
import cn.rtast.fancybot.util.str.encodeToBase64 import cn.rtast.fancybot.util.str.encodeToBase64
import cn.rtast.fancybot.util.str.getMD5 import cn.rtast.fancybot.util.str.getMD5
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
@CommandDescription("查询用户的Gravatar头像") @CommandDescription("查询用户的Gravatar头像")
class GravatarCommand : BaseCommand() { class GravatarCommand : BaseCommand() {
@@ -12,8 +12,8 @@ import cn.rtast.fancybot.configManager
import cn.rtast.fancybot.entity.apispace.IdiomExplainResponse import cn.rtast.fancybot.entity.apispace.IdiomExplainResponse
import cn.rtast.fancybot.util.Http import cn.rtast.fancybot.util.Http
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
@CommandDescription("解释一个成语") @CommandDescription("解释一个成语")
class IdiomExplainCommand : BaseCommand() { class IdiomExplainCommand : BaseCommand() {
@@ -16,8 +16,8 @@ import cn.rtast.fancybot.entity.music.qq.QQMSearch
import cn.rtast.fancybot.util.Http import cn.rtast.fancybot.util.Http
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.enums.MusicShareType import cn.rtast.rob.enums.MusicShareType
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
import java.time.Instant import java.time.Instant
@CommandDescription("网易云音乐点歌") @CommandDescription("网易云音乐点歌")
@@ -12,9 +12,9 @@ import cn.rtast.fancybot.configManager
import cn.rtast.fancybot.entity.IPGeo import cn.rtast.fancybot.entity.IPGeo
import cn.rtast.fancybot.util.Http import cn.rtast.fancybot.util.Http
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.onebot.toNode
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.toNode
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
import java.net.InetAddress import java.net.InetAddress
@@ -13,9 +13,9 @@ import cn.rtast.fancybot.entity.pixiv.Ranking
import cn.rtast.fancybot.util.Http import cn.rtast.fancybot.util.Http
import cn.rtast.fancybot.util.str.encodeToBase64 import cn.rtast.fancybot.util.str.encodeToBase64
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.onebot.NodeMessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.NodeMessageChain
import java.net.URI import java.net.URI
@CommandDescription("获取Pixiv上的图片") @CommandDescription("获取Pixiv上的图片")
@@ -10,9 +10,9 @@ package cn.rtast.fancybot.commands.lookup
import cn.rtast.fancybot.annotations.CommandDescription import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.enums.ArrayMessageType import cn.rtast.rob.enums.ArrayMessageType
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.onebot.NodeMessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.NodeMessageChain
private fun generateNodeMessage(targetId: String, times: Int = 10): NodeMessageChain { private fun generateNodeMessage(targetId: String, times: Int = 10): NodeMessageChain {
@@ -15,8 +15,8 @@ import cn.rtast.fancybot.util.str.encodeToBase64
import cn.rtast.fancybot.util.str.fromArrayJson import cn.rtast.fancybot.util.str.fromArrayJson
import cn.rtast.fancybot.util.str.proxy import cn.rtast.fancybot.util.str.proxy
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
@CommandDescription("随机猫猫图") @CommandDescription("随机猫猫图")
class TheCatCommand : BaseCommand() { class TheCatCommand : BaseCommand() {
@@ -12,9 +12,9 @@ import cn.rtast.fancybot.configManager
import cn.rtast.fancybot.entity.tianxing.HistoryOfToday import cn.rtast.fancybot.entity.tianxing.HistoryOfToday
import cn.rtast.fancybot.util.Http import cn.rtast.fancybot.util.Http
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.onebot.toNode
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.toNode
import java.time.LocalDateTime import java.time.LocalDateTime
import java.time.ZoneId import java.time.ZoneId
import java.time.format.DateTimeFormatter import java.time.format.DateTimeFormatter
@@ -19,8 +19,8 @@ import cn.rtast.fancybot.util.misc.toBufferedImage
import cn.rtast.fancybot.util.misc.toByteArray import cn.rtast.fancybot.util.misc.toByteArray
import cn.rtast.fancybot.util.str.encodeToBase64 import cn.rtast.fancybot.util.str.encodeToBase64
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
import java.awt.Color import java.awt.Color
import java.awt.Font import java.awt.Font
import java.awt.image.BufferedImage import java.awt.image.BufferedImage
@@ -14,8 +14,8 @@ import cn.rtast.fancybot.enums.CommandAction
import cn.rtast.fancybot.util.Http import cn.rtast.fancybot.util.Http
import cn.rtast.fancybot.util.file.insertActionRecord import cn.rtast.fancybot.util.file.insertActionRecord
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
import org.jsoup.Jsoup import org.jsoup.Jsoup
@CommandDescription("查询wiki百科") @CommandDescription("查询wiki百科")
@@ -13,9 +13,9 @@ import cn.rtast.fancybot.entity.bullshit.BullShit
import cn.rtast.fancybot.util.misc.Resources import cn.rtast.fancybot.util.misc.Resources
import cn.rtast.fancybot.util.str.fromJson import cn.rtast.fancybot.util.str.fromJson
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.onebot.NodeMessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.NodeMessageChain
import kotlin.random.Random import kotlin.random.Random
@CommandDescription("狗屁不通文章生成器") @CommandDescription("狗屁不通文章生成器")
@@ -17,8 +17,8 @@ import cn.rtast.fancybot.util.Http
import cn.rtast.fancybot.util.file.insertActionRecord import cn.rtast.fancybot.util.file.insertActionRecord
import cn.rtast.fancybot.util.str.toJson import cn.rtast.fancybot.util.str.toJson
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
@CommandDescription("执行不同语言的代码") @CommandDescription("执行不同语言的代码")
class CompilerCommand : BaseCommand() { class CompilerCommand : BaseCommand() {
@@ -12,8 +12,8 @@ import cn.rtast.fancybot.enums.HttpStatusCode
import cn.rtast.fancybot.util.misc.Resources import cn.rtast.fancybot.util.misc.Resources
import cn.rtast.fancybot.util.str.encodeToBase64 import cn.rtast.fancybot.util.str.encodeToBase64
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
@CommandDescription("随机HTTP猫猫") @CommandDescription("随机HTTP猫猫")
class HTTPCatCommand : BaseCommand() { class HTTPCatCommand : BaseCommand() {
@@ -12,8 +12,8 @@ import cn.rtast.fancybot.enums.HttpStatusCode
import cn.rtast.fancybot.util.misc.Resources import cn.rtast.fancybot.util.misc.Resources
import cn.rtast.fancybot.util.str.encodeToBase64 import cn.rtast.fancybot.util.str.encodeToBase64
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
@CommandDescription("随机HTTP狗狗") @CommandDescription("随机HTTP狗狗")
class HTTPDogCommand : BaseCommand() { class HTTPDogCommand : BaseCommand() {
@@ -11,8 +11,8 @@ import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.fancybot.entity.Hitokoto import cn.rtast.fancybot.entity.Hitokoto
import cn.rtast.fancybot.util.Http import cn.rtast.fancybot.util.Http
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
@CommandDescription("一言") @CommandDescription("一言")
class HitokotoCommand : BaseCommand() { class HitokotoCommand : BaseCommand() {
@@ -10,8 +10,8 @@ package cn.rtast.fancybot.commands.misc
import cn.rtast.fancybot.annotations.CommandDescription import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.fancybot.util.file.JrrpManager import cn.rtast.fancybot.util.file.JrrpManager
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
@CommandDescription("今日人品~") @CommandDescription("今日人品~")
class JrrpCommand : BaseCommand() { class JrrpCommand : BaseCommand() {
@@ -15,8 +15,8 @@ import cn.rtast.fancybot.util.misc.toBufferedImage
import cn.rtast.fancybot.util.str.encodeToBase64 import cn.rtast.fancybot.util.str.encodeToBase64
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.enums.ArrayMessageType import cn.rtast.rob.enums.ArrayMessageType
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
import com.madgag.gif.fmsware.GifDecoder import com.madgag.gif.fmsware.GifDecoder
import java.awt.image.BufferedImage import java.awt.image.BufferedImage
import java.net.URI import java.net.URI
@@ -48,12 +48,12 @@ import cn.rtast.motdpinger.JavaPing
import cn.rtast.rcon.exceptions.AuthFailedException import cn.rtast.rcon.exceptions.AuthFailedException
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.entity.PrivateMessage import cn.rtast.rob.entity.PrivateMessage
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.onebot.toMessageChain
import cn.rtast.rob.onebot.toNode
import cn.rtast.rob.segment.NewLine import cn.rtast.rob.segment.NewLine
import cn.rtast.rob.segment.Text import cn.rtast.rob.segment.Text
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.toMessageChain
import cn.rtast.rob.util.ob.toNode
import okhttp3.FormBody import okhttp3.FormBody
import java.awt.AlphaComposite import java.awt.AlphaComposite
import java.awt.Color import java.awt.Color
@@ -15,8 +15,8 @@ import cn.rtast.fancybot.util.misc.toByteArray
import cn.rtast.fancybot.util.str.encodeToBase64 import cn.rtast.fancybot.util.str.encodeToBase64
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.enums.ArrayMessageType import cn.rtast.rob.enums.ArrayMessageType
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
import com.google.zxing.BarcodeFormat import com.google.zxing.BarcodeFormat
import com.google.zxing.BinaryBitmap import com.google.zxing.BinaryBitmap
import com.google.zxing.EncodeHintType import com.google.zxing.EncodeHintType
@@ -10,8 +10,8 @@ package cn.rtast.fancybot.commands.misc
import cn.rtast.fancybot.annotations.CommandDescription import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.enums.ArrayMessageType import cn.rtast.rob.enums.ArrayMessageType
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
@CommandDescription("RUA!") @CommandDescription("RUA!")
class RUACommand : BaseCommand() { class RUACommand : BaseCommand() {
@@ -13,8 +13,8 @@ import cn.rtast.fancybot.entity.music.TopSong
import cn.rtast.fancybot.util.Http import cn.rtast.fancybot.util.Http
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.enums.MusicShareType import cn.rtast.rob.enums.MusicShareType
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
@CommandDescription("获取随机热榜音乐(网易云)") @CommandDescription("获取随机热榜音乐(网易云)")
class RandomMusicCommand : BaseCommand() { class RandomMusicCommand : BaseCommand() {
@@ -10,8 +10,8 @@ package cn.rtast.fancybot.commands.misc
import cn.rtast.fancybot.annotations.CommandDescription import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.enums.QQFace import cn.rtast.rob.enums.QQFace
import cn.rtast.rob.onebot.OneBotAction
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.OneBotAction
@CommandDescription("让你的消息得到回应(reaction)!") @CommandDescription("让你的消息得到回应(reaction)!")
class ReactionCommand : BaseCommand() { class ReactionCommand : BaseCommand() {
@@ -11,8 +11,8 @@ import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.fancybot.enums.CountryList import cn.rtast.fancybot.enums.CountryList
import cn.rtast.fancybot.util.misc.randomBooleanWithProbability import cn.rtast.fancybot.util.misc.randomBooleanWithProbability
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
@CommandDescription("人生重开模拟器") @CommandDescription("人生重开模拟器")
class RemakeCommand : BaseCommand() { class RemakeCommand : BaseCommand() {
@@ -9,8 +9,8 @@ package cn.rtast.fancybot.commands.misc
import cn.rtast.fancybot.annotations.CommandDescription import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
@CommandDescription("资料卡点赞") @CommandDescription("资料卡点赞")
class SendLikeCommand : BaseCommand() { class SendLikeCommand : BaseCommand() {
@@ -13,8 +13,8 @@ import cn.rtast.fancybot.util.Http
import cn.rtast.fancybot.util.str.proxy import cn.rtast.fancybot.util.str.proxy
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.enums.AIRecordCharacter import cn.rtast.rob.enums.AIRecordCharacter
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
import okhttp3.FormBody import okhttp3.FormBody
@CommandDescription("将文字转换成语音(TTS)!") @CommandDescription("将文字转换成语音(TTS)!")
@@ -9,8 +9,8 @@ package cn.rtast.fancybot.commands.misc
import cn.rtast.fancybot.annotations.CommandDescription import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
@Deprecated("已迁移到兑换列表中") @Deprecated("已迁移到兑换列表中")
@CommandDescription("获得十张色图!") @CommandDescription("获得十张色图!")
@@ -10,8 +10,8 @@ package cn.rtast.fancybot.commands.misc
import cn.rtast.fancybot.annotations.CommandDescription import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.entity.PrivateMessage import cn.rtast.rob.entity.PrivateMessage
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
val users = mutableMapOf<Long, Long>() val users = mutableMapOf<Long, Long>()
@@ -10,8 +10,8 @@ package cn.rtast.fancybot.commands.niuzi
import cn.rtast.fancybot.annotations.CommandDescription import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.fancybot.niuziManager import cn.rtast.fancybot.niuziManager
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
@CommandDescription("查询自己牛子的长度") @CommandDescription("查询自己牛子的长度")
@@ -14,8 +14,8 @@ import cn.rtast.fancybot.niuziManager
import cn.rtast.fancybot.util.misc.getUserName import cn.rtast.fancybot.util.misc.getUserName
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.enums.ArrayMessageType import cn.rtast.rob.enums.ArrayMessageType
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
private suspend fun noAccount(message: GroupMessage) { private suspend fun noAccount(message: GroupMessage) {
message.reply("你还没有银行账户呢, 发送`创建账户`来创建一个账户吧~") message.reply("你还没有银行账户呢, 发送`创建账户`来创建一个账户吧~")
@@ -11,8 +11,8 @@ import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.fancybot.niuziManager import cn.rtast.fancybot.niuziManager
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.enums.ArrayMessageType import cn.rtast.rob.enums.ArrayMessageType
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
@CommandDescription("来一起激情击剑吧!") @CommandDescription("来一起激情击剑吧!")
class NiuziJiJianCommand : BaseCommand() { class NiuziJiJianCommand : BaseCommand() {
@@ -13,8 +13,8 @@ import cn.rtast.fancybot.niuziManager
import cn.rtast.fancybot.util.misc.getUserName import cn.rtast.fancybot.util.misc.getUserName
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.enums.ArrayMessageType import cn.rtast.rob.enums.ArrayMessageType
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
@CommandDescription("在群内设置某个成员的牛子银行余额或者现金牛子长度") @CommandDescription("在群内设置某个成员的牛子银行余额或者现金牛子长度")
class NiuziManagerCommand : BaseCommand() { class NiuziManagerCommand : BaseCommand() {
@@ -11,8 +11,8 @@ import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.fancybot.niuziBankManager import cn.rtast.fancybot.niuziBankManager
import cn.rtast.fancybot.niuziManager import cn.rtast.fancybot.niuziManager
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
@CommandDescription("查询所有人的牛子的排行榜") @CommandDescription("查询所有人的牛子的排行榜")
class NiuziRankCommand : BaseCommand() { class NiuziRankCommand : BaseCommand() {
@@ -11,8 +11,8 @@ import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.fancybot.itemManager import cn.rtast.fancybot.itemManager
import cn.rtast.fancybot.niuziManager import cn.rtast.fancybot.niuziManager
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
@CommandDescription("使用牛子长度兑换物品") @CommandDescription("使用牛子长度兑换物品")
class NiuziRedeemCommand : BaseCommand() { class NiuziRedeemCommand : BaseCommand() {
@@ -11,8 +11,8 @@ import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.fancybot.niuziManager import cn.rtast.fancybot.niuziManager
import cn.rtast.fancybot.util.misc.getUserName import cn.rtast.fancybot.util.misc.getUserName
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
@CommandDescription("牛子签到~") @CommandDescription("牛子签到~")
class NiuziSignCommand : BaseCommand() { class NiuziSignCommand : BaseCommand() {
@@ -18,9 +18,9 @@ import cn.rtast.fancybot.util.str.encodeToBase64
import cn.rtast.rob.entity.GetMessage import cn.rtast.rob.entity.GetMessage
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.enums.ArrayMessageType import cn.rtast.rob.enums.ArrayMessageType
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.onebot.toMessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.toMessageChain
import com.madgag.gif.fmsware.GifDecoder import com.madgag.gif.fmsware.GifDecoder
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
@@ -21,7 +21,7 @@ import cn.rtast.fancybot.util.str.fromJson
import cn.rtast.fancybot.util.str.setTruncate import cn.rtast.fancybot.util.str.setTruncate
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.enums.ArrayMessageType import cn.rtast.rob.enums.ArrayMessageType
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.onebot.MessageChain
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import okhttp3.Request import okhttp3.Request
import java.awt.Color import java.awt.Color
@@ -19,7 +19,7 @@ import cn.rtast.fancybot.util.str.encodeToBase64
import cn.rtast.fancybot.util.str.formatNumber import cn.rtast.fancybot.util.str.formatNumber
import cn.rtast.fancybot.util.str.proxy import cn.rtast.fancybot.util.str.proxy
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.onebot.MessageChain
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import okhttp3.Request import okhttp3.Request
import java.awt.Color import java.awt.Color
@@ -18,7 +18,7 @@ import cn.rtast.fancybot.util.str.encodeToBase64
import cn.rtast.fancybot.util.str.formatNumberEnglish import cn.rtast.fancybot.util.str.formatNumberEnglish
import cn.rtast.fancybot.util.str.setTruncate import cn.rtast.fancybot.util.str.setTruncate
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.onebot.MessageChain
import java.awt.Color import java.awt.Color
import java.awt.Font import java.awt.Font
import java.awt.RenderingHints import java.awt.RenderingHints
@@ -12,8 +12,8 @@ import cn.rtast.fancybot.configManager
import cn.rtast.rob.entity.GetMessage import cn.rtast.rob.entity.GetMessage
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.enums.ArrayMessageType import cn.rtast.rob.enums.ArrayMessageType
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.ob.toNode import cn.rtast.rob.onebot.toNode
object ImageURLCommand { object ImageURLCommand {
@@ -13,8 +13,8 @@ import cn.rtast.fancybot.util.str.encodeToBase64
import cn.rtast.rob.entity.GetMessage import cn.rtast.rob.entity.GetMessage
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.enums.ArrayMessageType import cn.rtast.rob.enums.ArrayMessageType
import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
import com.madgag.gif.fmsware.GifDecoder import com.madgag.gif.fmsware.GifDecoder
import java.net.URI import java.net.URI
@@ -17,7 +17,7 @@ import cn.rtast.fancybot.util.str.encodeToBase64
import cn.rtast.fancybot.util.str.formatNumber import cn.rtast.fancybot.util.str.formatNumber
import cn.rtast.fancybot.util.str.proxy import cn.rtast.fancybot.util.str.proxy
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.onebot.MessageChain
import java.awt.Color import java.awt.Color
import java.awt.Font import java.awt.Font
import java.awt.RenderingHints import java.awt.RenderingHints
@@ -15,8 +15,8 @@ import cn.rtast.fancybot.util.misc.ImageBed
import cn.rtast.fancybot.util.misc.toURL import cn.rtast.fancybot.util.misc.toURL
import cn.rtast.rob.entity.GetMessage import cn.rtast.rob.entity.GetMessage
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.ob.toNode import cn.rtast.rob.onebot.toNode
import okio.IOException import okio.IOException
object ImageBedCommand { object ImageBedCommand {
@@ -15,7 +15,7 @@ import cn.rtast.fancybot.util.str.encodeToBase64
import cn.rtast.rob.entity.GetMessage import cn.rtast.rob.entity.GetMessage
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.entity.images import cn.rtast.rob.entity.images
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.onebot.MessageChain
object InvertImageCommand { object InvertImageCommand {
@@ -15,7 +15,7 @@ import cn.rtast.fancybot.util.str.encodeToBase64
import cn.rtast.rob.entity.GetMessage import cn.rtast.rob.entity.GetMessage
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.entity.images import cn.rtast.rob.entity.images
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.onebot.MessageChain
object RandomRGBCommand { object RandomRGBCommand {
@@ -15,7 +15,7 @@ import cn.rtast.fancybot.util.misc.toURL
import cn.rtast.fancybot.util.str.encodeToBase64 import cn.rtast.fancybot.util.str.encodeToBase64
import cn.rtast.rob.entity.GetMessage import cn.rtast.rob.entity.GetMessage
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.onebot.MessageChain
import com.madgag.gif.fmsware.GifDecoder import com.madgag.gif.fmsware.GifDecoder
object SpeedUpGIFCommand { object SpeedUpGIFCommand {
@@ -11,7 +11,7 @@ import cn.rtast.fancybot.entity.Baisi
import cn.rtast.fancybot.util.Http import cn.rtast.fancybot.util.Http
import cn.rtast.fancybot.util.item.Item import cn.rtast.fancybot.util.item.Item
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.onebot.MessageChain
class BaisiItem : Item() { class BaisiItem : Item() {
override val itemNames = listOf("baisi", "白丝", "bs") override val itemNames = listOf("baisi", "白丝", "bs")
@@ -11,7 +11,7 @@ import cn.rtast.fancybot.entity.Baisi
import cn.rtast.fancybot.util.Http import cn.rtast.fancybot.util.Http
import cn.rtast.fancybot.util.item.Item import cn.rtast.fancybot.util.item.Item
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.onebot.MessageChain
class HeisiItem : Item() { class HeisiItem : Item() {
override val itemNames = listOf("heisi", "黑丝", "hs") override val itemNames = listOf("heisi", "黑丝", "hs")
@@ -10,7 +10,7 @@ package cn.rtast.fancybot.items
import cn.rtast.fancybot.niuziManager import cn.rtast.fancybot.niuziManager
import cn.rtast.fancybot.util.item.Item import cn.rtast.fancybot.util.item.Item
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.onebot.MessageChain
class NiuziItem : Item() { class NiuziItem : Item() {
override val itemNames = listOf("牛子", "nz", "niuzi") override val itemNames = listOf("牛子", "nz", "niuzi")
@@ -15,7 +15,7 @@ import cn.rtast.fancybot.util.item.Item
import cn.rtast.fancybot.util.str.encodeToBase64 import cn.rtast.fancybot.util.str.encodeToBase64
import cn.rtast.fancybot.util.str.fromArrayJson import cn.rtast.fancybot.util.str.fromArrayJson
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.onebot.MessageChain
import java.net.URI import java.net.URI
class SetuItem : Item() { class SetuItem : Item() {
@@ -17,9 +17,9 @@ import cn.rtast.fancybot.util.item.Item
import cn.rtast.fancybot.util.str.encodeToBase64 import cn.rtast.fancybot.util.str.encodeToBase64
import cn.rtast.fancybot.util.str.fromArrayJson import cn.rtast.fancybot.util.str.fromArrayJson
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.onebot.MessageChain
import cn.rtast.rob.util.ob.NodeMessageChain import cn.rtast.rob.onebot.NodeMessageChain
import cn.rtast.rob.util.ob.toNode import cn.rtast.rob.onebot.toNode
import java.io.File import java.io.File
import java.net.URI import java.net.URI
@@ -8,7 +8,7 @@
package cn.rtast.fancybot.util.item package cn.rtast.fancybot.util.item
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.onebot.MessageChain
abstract class Item { abstract class Item {
abstract val itemNames: List<String> abstract val itemNames: List<String>
@@ -11,7 +11,7 @@ import cn.rtast.fancybot.*
import cn.rtast.fancybot.util.Http import cn.rtast.fancybot.util.Http
import cn.rtast.rob.BotInstance import cn.rtast.rob.BotInstance
import cn.rtast.rob.ROneBotFactory import cn.rtast.rob.ROneBotFactory
import cn.rtast.rob.util.ob.OneBotAction import cn.rtast.rob.onebot.OneBotAction
import java.io.File import java.io.File
import kotlin.random.Random import kotlin.random.Random
import kotlin.time.Duration.Companion.hours import kotlin.time.Duration.Companion.hours