feat: add annotation to add command description

This commit is contained in:
2024-09-26 05:20:10 +08:00
parent 0a28d05bfe
commit 8dc311fb90
41 files changed
+135 -33

No files matched your search

+4 -4
View File
@@ -16,9 +16,9 @@ import cn.rtast.fancybot.commands.misc.*
import cn.rtast.fancybot.commands.niuzi.* import cn.rtast.fancybot.commands.niuzi.*
import cn.rtast.fancybot.commands.parse.AsciiArtCommand import cn.rtast.fancybot.commands.parse.AsciiArtCommand
import cn.rtast.fancybot.commands.parse.ReverseGIFCommand import cn.rtast.fancybot.commands.parse.ReverseGIFCommand
import cn.rtast.fancybot.commands.record.JrrpCommand import cn.rtast.fancybot.commands.misc.JrrpCommand
import cn.rtast.fancybot.commands.record.RedeemCommand import cn.rtast.fancybot.commands.niuzi.NiuziRedeemCommand
import cn.rtast.fancybot.commands.record.ShortLinkCommand import cn.rtast.fancybot.commands.misc.ShortLinkCommand
import cn.rtast.fancybot.entity.Config import cn.rtast.fancybot.entity.Config
import cn.rtast.fancybot.entity.enums.ImageType import cn.rtast.fancybot.entity.enums.ImageType
import cn.rtast.fancybot.entity.enums.WSType import cn.rtast.fancybot.entity.enums.WSType
@@ -80,7 +80,7 @@ val START_UP_TIME = Instant.now().epochSecond
val commands = listOf( val commands = listOf(
EchoCommand(), JrrpCommand(), EchoCommand(), JrrpCommand(),
RedeemCommand(), HitokotoCommand(), NiuziRedeemCommand(), HitokotoCommand(),
FKXQSCommand(), QRCodeCommand(), FKXQSCommand(), QRCodeCommand(),
AntiRevokeCommand(), MCPingCommand(), AntiRevokeCommand(), MCPingCommand(),
WeatherCommand(), CigaretteCommand(), WeatherCommand(), CigaretteCommand(),
@@ -0,0 +1,12 @@
/*
* Copyright © 2024 RTAkland
* Author: RTAkland
* Date: 2024/9/26
*/
package cn.rtast.fancybot.annotations
@Target(AnnotationTarget.CLASS)
@Retention(AnnotationRetention.RUNTIME)
annotation class CommandDescription(val description: String)
@@ -7,11 +7,13 @@
package cn.rtast.fancybot.commands package cn.rtast.fancybot.commands
import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
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.MessageChain
import cn.rtast.rob.util.ob.OneBotListener import cn.rtast.rob.util.ob.OneBotListener
@CommandDescription("关于")
class AboutCommand : BaseCommand() { class AboutCommand : BaseCommand() {
override val commandNames = listOf("/about", "/关于") override val commandNames = listOf("/about", "/关于")
@@ -7,10 +7,12 @@
package cn.rtast.fancybot.commands package cn.rtast.fancybot.commands
import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.OneBotListener import cn.rtast.rob.util.ob.OneBotListener
@CommandDescription("Echo")
class EchoCommand : BaseCommand() { class EchoCommand : BaseCommand() {
override val commandNames = listOf("/echo") override val commandNames = listOf("/echo")
@@ -7,27 +7,31 @@
package cn.rtast.fancybot.commands package cn.rtast.fancybot.commands
import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.fancybot.commands import cn.rtast.fancybot.commands
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
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.MessageChain
import cn.rtast.rob.util.ob.OneBotListener import cn.rtast.rob.util.ob.OneBotListener
@CommandDescription("AAAA")
class HelpCommand : BaseCommand() { class HelpCommand : BaseCommand() {
override val commandNames = listOf("/help", "/帮助") override val commandNames = listOf("/help", "/帮助")
override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) { override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
val allCommands = commands.sortedBy { it::class.simpleName }.joinToString("\n") {
"[${
it.javaClass.name.split(".")
.last().replace("Command", "")
}] 命令:${it.commandNames.joinToString(",")}"
}
val msg = MessageChain.Builder() val msg = MessageChain.Builder()
.addAt(message.sender.userId) commands.sortedBy { it::class.simpleName }.forEach {
.addNewLine() val description =
.addText(allCommands) if (!it.javaClass.isAnnotationPresent(CommandDescription::class.java)) {
.build() "暂无描述"
listener.sendGroupMessage(message.groupId, msg) } else {
it.javaClass.getAnnotation(CommandDescription::class.java)?.description!!
}
val commandName = it::class.simpleName?.replace("Command", "")!!
val commandNames = it.commandNames.joinToString(",")
msg.addText("[$commandName] [$description] 命令: $commandNames")
.addNewLine()
}
message.reply(msg.build())
} }
} }
@@ -8,12 +8,14 @@
package cn.rtast.fancybot.commands package cn.rtast.fancybot.commands
import cn.rtast.fancybot.START_UP_TIME import cn.rtast.fancybot.START_UP_TIME
import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
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.MessageChain
import cn.rtast.rob.util.ob.OneBotListener import cn.rtast.rob.util.ob.OneBotListener
import java.time.Instant import java.time.Instant
@CommandDescription("状态")
class StatusCommand : BaseCommand() { class StatusCommand : BaseCommand() {
override val commandNames = listOf("/status") override val commandNames = listOf("/status")
@@ -7,6 +7,7 @@
package cn.rtast.fancybot.commands.lookup package cn.rtast.fancybot.commands.lookup
import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.fancybot.configManager import cn.rtast.fancybot.configManager
import cn.rtast.fancybot.entity.gpt.ChatCompletionsPayload import cn.rtast.fancybot.entity.gpt.ChatCompletionsPayload
import cn.rtast.fancybot.entity.gpt.ChatCompletionsResponse import cn.rtast.fancybot.entity.gpt.ChatCompletionsResponse
@@ -20,8 +21,9 @@ import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.NodeMessageChain import cn.rtast.rob.util.ob.NodeMessageChain
import cn.rtast.rob.util.ob.OneBotListener import cn.rtast.rob.util.ob.OneBotListener
@CommandDescription("问AI(GPT)")
class AICommand : BaseCommand() { class AICommand : BaseCommand() {
override val commandNames = listOf("/ai", "问AI") override val commandNames = listOf("/ai")
private val openAIModel = configManager.openAIModel private val openAIModel = configManager.openAIModel
@@ -71,6 +73,7 @@ class AICommand : BaseCommand() {
} }
} }
@CommandDescription("问AI(LLAMA)")
class LlamaCommand : BaseCommand() { class LlamaCommand : BaseCommand() {
override val commandNames = listOf("/llama") override val commandNames = listOf("/llama")
@@ -7,6 +7,7 @@
package cn.rtast.fancybot.commands.lookup package cn.rtast.fancybot.commands.lookup
import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.fancybot.entity.cigarette.Cigarette 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
@@ -17,8 +18,9 @@ import cn.rtast.rob.util.ob.NodeMessageChain
import cn.rtast.rob.util.ob.OneBotListener import cn.rtast.rob.util.ob.OneBotListener
import java.net.URI import java.net.URI
@CommandDescription("查询香烟价格")
class CigaretteCommand : BaseCommand() { class CigaretteCommand : BaseCommand() {
override val commandNames = listOf("/香烟", "/tobacco", "/cigarette") override val commandNames = listOf("/tobacco")
private val apiUrl = "https://www.yanyue.cn/api/rc/product/yanlist" private val apiUrl = "https://www.yanyue.cn/api/rc/product/yanlist"
@@ -7,6 +7,7 @@
package cn.rtast.fancybot.commands.lookup package cn.rtast.fancybot.commands.lookup
import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.fancybot.entity.bgm.BGMSearch 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
@@ -18,8 +19,9 @@ import cn.rtast.rob.util.ob.OneBotListener
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import okhttp3.Request import okhttp3.Request
@CommandDescription("搜索动漫")
class DMSearchCommand : BaseCommand() { class DMSearchCommand : BaseCommand() {
override val commandNames = listOf("/dm", "动漫", "dm") override val commandNames = listOf("/dm", "动漫")
private val client = OkHttpClient() private val client = OkHttpClient()
@@ -7,6 +7,7 @@
package cn.rtast.fancybot.commands.lookup package cn.rtast.fancybot.commands.lookup
import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.fancybot.entity.domain.PricePayload import cn.rtast.fancybot.entity.domain.PricePayload
import cn.rtast.fancybot.entity.domain.PriceResponse import cn.rtast.fancybot.entity.domain.PriceResponse
import cn.rtast.fancybot.util.Http import cn.rtast.fancybot.util.Http
@@ -21,6 +22,7 @@ import java.awt.Color
import java.awt.Font import java.awt.Font
import java.awt.image.BufferedImage import java.awt.image.BufferedImage
@CommandDescription("查询域名价格")
class DomainPriceCommand : BaseCommand() { class DomainPriceCommand : BaseCommand() {
override val commandNames = listOf("/domain") override val commandNames = listOf("/domain")
@@ -7,6 +7,7 @@
package cn.rtast.fancybot.commands.lookup package cn.rtast.fancybot.commands.lookup
import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.fancybot.configManager import cn.rtast.fancybot.configManager
import cn.rtast.fancybot.entity.github.UserInfo import cn.rtast.fancybot.entity.github.UserInfo
import cn.rtast.fancybot.util.Http import cn.rtast.fancybot.util.Http
@@ -24,8 +25,9 @@ import java.awt.Font
import java.awt.image.BufferedImage import java.awt.image.BufferedImage
import java.net.URI import java.net.URI
@CommandDescription("获取Github用户信息")
class GithubUserCommand : BaseCommand() { class GithubUserCommand : BaseCommand() {
override val commandNames = listOf("/gh", "/github", "gh") override val commandNames = listOf("/gh")
private val userInfoUrl = "https://api.github.com/users" private val userInfoUrl = "https://api.github.com/users"
private val backgroundColor = Color(255, 255, 240) private val backgroundColor = Color(255, 255, 240)
@@ -7,6 +7,7 @@
package cn.rtast.fancybot.commands.lookup package cn.rtast.fancybot.commands.lookup
import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.motdpinger.BedrockPing import cn.rtast.motdpinger.BedrockPing
import cn.rtast.motdpinger.JavaPing import cn.rtast.motdpinger.JavaPing
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
@@ -15,8 +16,9 @@ import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OneBotListener import cn.rtast.rob.util.ob.OneBotListener
import java.net.SocketException import java.net.SocketException
@CommandDescription("PingMC服务器")
class MCPingCommand : BaseCommand() { class MCPingCommand : BaseCommand() {
override val commandNames = listOf("/mcping", "/mcPing") override val commandNames = listOf("/mcping")
override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) { override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
if (args.isEmpty()) { if (args.isEmpty()) {
@@ -7,6 +7,7 @@
package cn.rtast.fancybot.commands.lookup package cn.rtast.fancybot.commands.lookup
import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.fancybot.configManager import cn.rtast.fancybot.configManager
import cn.rtast.fancybot.entity.music.Search import cn.rtast.fancybot.entity.music.Search
import cn.rtast.fancybot.entity.music.SearchedResult import cn.rtast.fancybot.entity.music.SearchedResult
@@ -27,8 +28,9 @@ import java.io.FileNotFoundException
import java.net.URI import java.net.URI
import java.time.Instant import java.time.Instant
@CommandDescription("网易云音乐点歌")
class MusicCommand : BaseCommand() { class MusicCommand : BaseCommand() {
override val commandNames = listOf("/music", "/点歌", "点歌") override val commandNames = listOf("点歌")
private val searchedResult = mutableMapOf<Long, List<SearchedResult>>() private val searchedResult = mutableMapOf<Long, List<SearchedResult>>()
@@ -137,8 +139,9 @@ class MusicCommand : BaseCommand() {
} }
} }
@CommandDescription("获取网易云音乐链接")
class MusicPlayUrlCommand : BaseCommand() { class MusicPlayUrlCommand : BaseCommand() {
override val commandNames = listOf("/lj", "lj", "song", "/song") override val commandNames = listOf("lj")
private fun getPlayUrl(id: String): String { private fun getPlayUrl(id: String): String {
return Http.get<SongUrl>("${configManager.ncmAPI}/song/url", mapOf("id" to id)).data.first().url return Http.get<SongUrl>("${configManager.ncmAPI}/song/url", mapOf("id" to id)).data.first().url
@@ -161,8 +164,9 @@ class MusicPlayUrlCommand : BaseCommand() {
} }
} }
@CommandDescription("QQ音乐点歌")
class QQMusicCommand : BaseCommand() { class QQMusicCommand : BaseCommand() {
override val commandNames = listOf("qm", "/qqm", "qqm", "/qm", "q点歌") override val commandNames = listOf("qm", "/qm")
private val qqMusicApiUrl = configManager.qqMusicApiUrl private val qqMusicApiUrl = configManager.qqMusicApiUrl
@@ -7,6 +7,7 @@
package cn.rtast.fancybot.commands.lookup package cn.rtast.fancybot.commands.lookup
import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
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.MessageChain
@@ -16,8 +17,9 @@ import kotlinx.coroutines.withContext
import java.net.InetAddress import java.net.InetAddress
import java.net.UnknownHostException import java.net.UnknownHostException
@CommandDescription("解析域名获取IP地址")
class NslookupCommand : BaseCommand() { class NslookupCommand : BaseCommand() {
override val commandNames = listOf("/nslookup", "/ns") override val commandNames = listOf("/ns")
override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) { override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
val host = args.joinToString(" ") val host = args.joinToString(" ")
@@ -7,6 +7,7 @@
package cn.rtast.fancybot.commands.lookup package cn.rtast.fancybot.commands.lookup
import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.fancybot.entity.pixiv.Ranking 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
@@ -16,8 +17,9 @@ import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OneBotListener import cn.rtast.rob.util.ob.OneBotListener
import java.net.URI import java.net.URI
@CommandDescription("获取Pixiv上的图片")
class PixivCommand : BaseCommand() { class PixivCommand : BaseCommand() {
override val commandNames = listOf("/pixiv", "/p") override val commandNames = listOf("/p")
private val pixivRankingURL = "https://proxy.rtast.cn/https/www.pixiv.net/ranking.php?format=json&mode=daily&p=1" private val pixivRankingURL = "https://proxy.rtast.cn/https/www.pixiv.net/ranking.php?format=json&mode=daily&p=1"
private val imageProxyURL = "https://pixiv.re" private val imageProxyURL = "https://pixiv.re"
@@ -7,13 +7,15 @@
package cn.rtast.fancybot.commands.lookup package cn.rtast.fancybot.commands.lookup
import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
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.MessageChain
import cn.rtast.rob.util.ob.OneBotListener import cn.rtast.rob.util.ob.OneBotListener
@CommandDescription("生成二维码")
class QRCodeCommand : BaseCommand() { class QRCodeCommand : BaseCommand() {
override val commandNames = listOf("/qrcode", "/qr", "/二维码") override val commandNames = listOf("/qr")
override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) { override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
val content = args.joinToString(" ") val content = args.joinToString(" ")
@@ -7,6 +7,7 @@
package cn.rtast.fancybot.commands.lookup package cn.rtast.fancybot.commands.lookup
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.util.BaseCommand import cn.rtast.rob.util.BaseCommand
@@ -24,6 +25,7 @@ private fun generateNodeMessage(targetId: String, times: Int = 10): NodeMessageC
return nodeMsg.build() return nodeMsg.build()
} }
@CommandDescription("骂自己(好爽)")
class ShotSelfCommand : BaseCommand() { class ShotSelfCommand : BaseCommand() {
override val commandNames = listOf("骂我") override val commandNames = listOf("骂我")
@@ -32,6 +34,7 @@ class ShotSelfCommand : BaseCommand() {
} }
} }
@CommandDescription("骂别人(更爽了")
class ShotOtherCommand : BaseCommand() { class ShotOtherCommand : BaseCommand() {
override val commandNames = listOf("") override val commandNames = listOf("")
@@ -7,6 +7,7 @@
package cn.rtast.fancybot.commands.lookup package cn.rtast.fancybot.commands.lookup
import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.fancybot.configManager import cn.rtast.fancybot.configManager
import cn.rtast.fancybot.entity.weather.Geo import cn.rtast.fancybot.entity.weather.Geo
import cn.rtast.fancybot.entity.weather.Weather import cn.rtast.fancybot.entity.weather.Weather
@@ -25,8 +26,9 @@ import java.awt.Color
import java.awt.Font import java.awt.Font
import java.awt.image.BufferedImage import java.awt.image.BufferedImage
@CommandDescription("查询天气")
class WeatherCommand : BaseCommand() { class WeatherCommand : BaseCommand() {
override val commandNames = listOf("/weather", "/天气", "天气") override val commandNames = listOf("天气")
private val canvasWidth = 800 private val canvasWidth = 800
private val canvasHeight = 600 private val canvasHeight = 600
@@ -7,6 +7,7 @@
package cn.rtast.fancybot.commands.lookup package cn.rtast.fancybot.commands.lookup
import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.fancybot.entity.wiki.PageInfoResponse import cn.rtast.fancybot.entity.wiki.PageInfoResponse
import cn.rtast.fancybot.entity.wiki.WikipediaResponse import cn.rtast.fancybot.entity.wiki.WikipediaResponse
import cn.rtast.fancybot.util.Http import cn.rtast.fancybot.util.Http
@@ -16,6 +17,7 @@ import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OneBotListener import cn.rtast.rob.util.ob.OneBotListener
import org.jsoup.Jsoup import org.jsoup.Jsoup
@CommandDescription("查询wiki百科")
class WikipediaCommand : BaseCommand() { class WikipediaCommand : BaseCommand() {
override val commandNames = listOf("/wiki", "/wk") override val commandNames = listOf("/wiki", "/wk")
@@ -7,6 +7,7 @@
package cn.rtast.fancybot.commands.misc package cn.rtast.fancybot.commands.misc
import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.fancybot.configManager import cn.rtast.fancybot.configManager
import cn.rtast.rob.entity.ArrayMessage import cn.rtast.rob.entity.ArrayMessage
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
@@ -14,6 +15,7 @@ import cn.rtast.rob.enums.ArrayMessageType
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.OneBotListener import cn.rtast.rob.util.ob.OneBotListener
@CommandDescription("防撤回(获取消息)")
class AntiRevokeCommand : BaseCommand() { class AntiRevokeCommand : BaseCommand() {
override val commandNames = listOf("/revoke", "/rv", "/防撤回") override val commandNames = listOf("/revoke", "/rv", "/防撤回")
@@ -7,6 +7,7 @@
package cn.rtast.fancybot.commands.misc package cn.rtast.fancybot.commands.misc
import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.fancybot.entity.compiler.GLOTPayload import cn.rtast.fancybot.entity.compiler.GLOTPayload
import cn.rtast.fancybot.entity.compiler.GLOTResponse import cn.rtast.fancybot.entity.compiler.GLOTResponse
import cn.rtast.fancybot.entity.compiler.KCSPayload import cn.rtast.fancybot.entity.compiler.KCSPayload
@@ -18,6 +19,7 @@ import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OneBotListener import cn.rtast.rob.util.ob.OneBotListener
@CommandDescription("执行不同语言的代码片段")
class CompilerCommand : BaseCommand() { class CompilerCommand : BaseCommand() {
override val commandNames = listOf("/compiler", "/exec") override val commandNames = listOf("/compiler", "/exec")
@@ -7,6 +7,7 @@
package cn.rtast.fancybot.commands.misc package cn.rtast.fancybot.commands.misc
import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.fancybot.entity.FKXQS import cn.rtast.fancybot.entity.FKXQS
import cn.rtast.fancybot.util.Http import cn.rtast.fancybot.util.Http
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
@@ -14,6 +15,7 @@ import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OneBotListener import cn.rtast.rob.util.ob.OneBotListener
@CommandDescription("今天是疯狂星期四!")
class FKXQSCommand : BaseCommand() { class FKXQSCommand : BaseCommand() {
override val commandNames = listOf("/fkxqs", "/fk", "/疯狂星期四") override val commandNames = listOf("/fkxqs", "/fk", "/疯狂星期四")
@@ -7,6 +7,7 @@
package cn.rtast.fancybot.commands.misc package cn.rtast.fancybot.commands.misc
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
@@ -14,8 +15,9 @@ import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OneBotListener import cn.rtast.rob.util.ob.OneBotListener
@CommandDescription("一言")
class HitokotoCommand : BaseCommand() { class HitokotoCommand : BaseCommand() {
override val commandNames = listOf("/hitokoto", "/1", "一言", "1") override val commandNames = listOf("/1")
override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) { override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
val response = Http.get<Hitokoto>("https://v1.hitokoto.cn/?c=b") val response = Http.get<Hitokoto>("https://v1.hitokoto.cn/?c=b")
@@ -5,14 +5,16 @@
*/ */
package cn.rtast.fancybot.commands.record package cn.rtast.fancybot.commands.misc
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.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OneBotListener import cn.rtast.rob.util.ob.OneBotListener
@CommandDescription("今日人品~")
class JrrpCommand : BaseCommand() { class JrrpCommand : BaseCommand() {
override val commandNames = listOf("/jrrp", "/今日人品") override val commandNames = listOf("/jrrp", "/今日人品")
@@ -7,6 +7,7 @@
package cn.rtast.fancybot.commands.misc package cn.rtast.fancybot.commands.misc
import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.fancybot.util.Resources import cn.rtast.fancybot.util.Resources
import cn.rtast.fancybot.util.drawCircularImage import cn.rtast.fancybot.util.drawCircularImage
import cn.rtast.fancybot.util.makeGif import cn.rtast.fancybot.util.makeGif
@@ -21,6 +22,7 @@ import com.madgag.gif.fmsware.GifDecoder
import java.awt.image.BufferedImage import java.awt.image.BufferedImage
import java.net.URI import java.net.URI
@CommandDescription("撅撅你")
class JueCommand : BaseCommand() { class JueCommand : BaseCommand() {
override val commandNames = listOf("") override val commandNames = listOf("")
@@ -7,11 +7,13 @@
package cn.rtast.fancybot.commands.misc package cn.rtast.fancybot.commands.misc
import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
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.MessageChain
import cn.rtast.rob.util.ob.OneBotListener import cn.rtast.rob.util.ob.OneBotListener
@CommandDescription("资料卡点赞")
class LikeMeCommand : BaseCommand() { class LikeMeCommand : BaseCommand() {
override val commandNames = listOf("赞我") override val commandNames = listOf("赞我")
@@ -7,12 +7,14 @@
package cn.rtast.fancybot.commands.misc package cn.rtast.fancybot.commands.misc
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.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OneBotListener import cn.rtast.rob.util.ob.OneBotListener
@CommandDescription("RUA!")
class RUACommand : BaseCommand() { class RUACommand : BaseCommand() {
override val commandNames = listOf("/rua", "rua") override val commandNames = listOf("/rua", "rua")
@@ -7,6 +7,7 @@
package cn.rtast.fancybot.commands.misc package cn.rtast.fancybot.commands.misc
import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.fancybot.entity.enums.CountryList import cn.rtast.fancybot.entity.enums.CountryList
import cn.rtast.fancybot.util.randomBooleanWithProbability import cn.rtast.fancybot.util.randomBooleanWithProbability
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
@@ -14,8 +15,9 @@ import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OneBotListener import cn.rtast.rob.util.ob.OneBotListener
@CommandDescription("人生重开模拟器")
class RemakeCommand : BaseCommand() { class RemakeCommand : BaseCommand() {
override val commandNames = listOf("/remake", "/重开", "remake", "重开") override val commandNames = listOf("remake")
private val locations = listOf( private val locations = listOf(
"厕所", "首都", "农村", "市区", "厕所", "首都", "农村", "市区",
@@ -7,6 +7,7 @@
package cn.rtast.fancybot.commands.misc package cn.rtast.fancybot.commands.misc
import cn.rtast.fancybot.annotations.CommandDescription
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.util.BaseCommand import cn.rtast.rob.util.BaseCommand
@@ -16,6 +17,7 @@ import org.simplejavamail.api.mailer.config.TransportStrategy
import org.simplejavamail.email.EmailBuilder import org.simplejavamail.email.EmailBuilder
import org.simplejavamail.mailer.MailerBuilder import org.simplejavamail.mailer.MailerBuilder
@CommandDescription("发送邮件!")
class SendMailCommand : BaseCommand() { class SendMailCommand : BaseCommand() {
override val commandNames = listOf("/mail") override val commandNames = listOf("/mail")
@@ -5,8 +5,9 @@
*/ */
package cn.rtast.fancybot.commands.record package cn.rtast.fancybot.commands.misc
import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.fancybot.entity.ShortLink import cn.rtast.fancybot.entity.ShortLink
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
@@ -14,6 +15,7 @@ import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.OneBotListener import cn.rtast.rob.util.ob.OneBotListener
@CommandDescription("生成短链接")
class ShortLinkCommand : BaseCommand() { class ShortLinkCommand : BaseCommand() {
override val commandNames = listOf("/s", "/sl", "/shortlink", "/short") override val commandNames = listOf("/s", "/sl", "/shortlink", "/short")
@@ -7,6 +7,7 @@
package cn.rtast.fancybot.commands.misc package cn.rtast.fancybot.commands.misc
import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.fancybot.entity.Setu import cn.rtast.fancybot.entity.Setu
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
@@ -18,6 +19,7 @@ import cn.rtast.rob.util.ob.NodeMessageChain
import cn.rtast.rob.util.ob.OneBotListener import cn.rtast.rob.util.ob.OneBotListener
import java.net.URI import java.net.URI
@CommandDescription("老板你好, 给我来十张色图")
class TenSetuCommand : BaseCommand() { class TenSetuCommand : BaseCommand() {
override val commandNames = listOf("十张色图") override val commandNames = listOf("十张色图")
@@ -7,6 +7,7 @@
package cn.rtast.fancybot.commands.misc package cn.rtast.fancybot.commands.misc
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.util.BaseCommand import cn.rtast.rob.util.BaseCommand
@@ -15,6 +16,7 @@ import cn.rtast.rob.util.ob.OneBotListener
val users = mutableMapOf<Long, Long>() val users = mutableMapOf<Long, Long>()
@CommandDescription("自闭去吧你")
class ZiBiCommand : BaseCommand() { class ZiBiCommand : BaseCommand() {
override val commandNames = listOf("/自闭", "自闭") override val commandNames = listOf("/自闭", "自闭")
@@ -40,6 +42,7 @@ class ZiBiCommand : BaseCommand() {
} }
} }
@CommandDescription("我好像突然想开了")
class UnsetZiBiCommand : BaseCommand() { class UnsetZiBiCommand : BaseCommand() {
override val commandNames = listOf("我想开了") override val commandNames = listOf("我想开了")
@@ -7,6 +7,7 @@
package cn.rtast.fancybot.commands.niuzi package cn.rtast.fancybot.commands.niuzi
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.util.BaseCommand import cn.rtast.rob.util.BaseCommand
@@ -14,6 +15,7 @@ import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OneBotListener import cn.rtast.rob.util.ob.OneBotListener
@CommandDescription("查询自己牛子的长度")
class MyNiuziCommand : BaseCommand() { class MyNiuziCommand : BaseCommand() {
override val commandNames = listOf("我的牛子", "/mp", "mp") override val commandNames = listOf("我的牛子", "/mp", "mp")
@@ -7,6 +7,7 @@
package cn.rtast.fancybot.commands.niuzi package cn.rtast.fancybot.commands.niuzi
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
@@ -21,6 +22,7 @@ private suspend fun noAccount(message: GroupMessage) {
private const val INTEREST_RATE = 0.54 private const val INTEREST_RATE = 0.54
@CommandDescription("牛子银行根命令")
class NiuziBankCommand : BaseCommand() { class NiuziBankCommand : BaseCommand() {
override val commandNames = listOf("牛子银行", "/银行") override val commandNames = listOf("牛子银行", "/银行")
@@ -34,6 +36,7 @@ class NiuziBankCommand : BaseCommand() {
} }
} }
@CommandDescription("查询牛子银行的余额")
class BankBalanceCommand : BaseCommand() { class BankBalanceCommand : BaseCommand() {
override val commandNames = listOf("余额查询") override val commandNames = listOf("余额查询")
@@ -47,6 +50,7 @@ class BankBalanceCommand : BaseCommand() {
} }
} }
@CommandDescription("创建一个空的牛子银行账户")
class CreateBankAccountCommand : BaseCommand() { class CreateBankAccountCommand : BaseCommand() {
override val commandNames = listOf("创建账户") override val commandNames = listOf("创建账户")
@@ -60,6 +64,7 @@ class CreateBankAccountCommand : BaseCommand() {
} }
} }
@CommandDescription("用于牛子银行之间转账")
class BankTransferCommand : BaseCommand() { class BankTransferCommand : BaseCommand() {
override val commandNames = listOf("银行转账") override val commandNames = listOf("银行转账")
@@ -84,6 +89,7 @@ class BankTransferCommand : BaseCommand() {
} }
} }
@CommandDescription("牛子银行提现")
class WithdrawCommand : BaseCommand() { class WithdrawCommand : BaseCommand() {
override val commandNames = listOf("取牛子") override val commandNames = listOf("取牛子")
@@ -113,6 +119,7 @@ class WithdrawCommand : BaseCommand() {
} }
} }
@CommandDescription("牛子银行存入")
class DepositCommand : BaseCommand() { class DepositCommand : BaseCommand() {
override val commandNames = listOf("存牛子") override val commandNames = listOf("存牛子")
@@ -7,6 +7,7 @@
package cn.rtast.fancybot.commands.niuzi package cn.rtast.fancybot.commands.niuzi
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
@@ -14,6 +15,7 @@ import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OneBotListener import cn.rtast.rob.util.ob.OneBotListener
@CommandDescription("来一起激情击剑吧!")
class NiuziJiJianCommand : BaseCommand() { class NiuziJiJianCommand : BaseCommand() {
override val commandNames = listOf("击剑", "jj") override val commandNames = listOf("击剑", "jj")
@@ -7,12 +7,14 @@
package cn.rtast.fancybot.commands.niuzi package cn.rtast.fancybot.commands.niuzi
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.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.OneBotListener import cn.rtast.rob.util.ob.OneBotListener
@CommandDescription("查询别人的牛子长度")
class NiuziQueryCommand : BaseCommand() { class NiuziQueryCommand : BaseCommand() {
override val commandNames = listOf("牛子查询", "nq") override val commandNames = listOf("牛子查询", "nq")
@@ -5,8 +5,9 @@
*/ */
package cn.rtast.fancybot.commands.record package cn.rtast.fancybot.commands.niuzi
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
@@ -14,7 +15,8 @@ import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OneBotListener import cn.rtast.rob.util.ob.OneBotListener
class RedeemCommand : BaseCommand() { @CommandDescription("使用牛子长度兑换物品")
class NiuziRedeemCommand : BaseCommand() {
override val commandNames = listOf("/redeem", "/兑换", "/rdm") override val commandNames = listOf("/redeem", "/兑换", "/rdm")
override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) { override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
@@ -7,12 +7,14 @@
package cn.rtast.fancybot.commands.niuzi package cn.rtast.fancybot.commands.niuzi
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.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OneBotListener import cn.rtast.rob.util.ob.OneBotListener
@CommandDescription("牛子签到~")
class NiuziSignCommand : BaseCommand() { class NiuziSignCommand : BaseCommand() {
override val commandNames = listOf("牛子签到", "签到") override val commandNames = listOf("牛子签到", "签到")
@@ -7,12 +7,14 @@
package cn.rtast.fancybot.commands.niuzi package cn.rtast.fancybot.commands.niuzi
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.util.BaseCommand import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.OneBotListener import cn.rtast.rob.util.ob.OneBotListener
@CommandDescription("将自己的牛子长度转账给别人")
class NiuziTransferCommand : BaseCommand() { class NiuziTransferCommand : BaseCommand() {
override val commandNames = listOf("牛子转账", "转账", "/zz") override val commandNames = listOf("牛子转账", "转账", "/zz")
@@ -7,6 +7,7 @@
package cn.rtast.fancybot.commands.parse package cn.rtast.fancybot.commands.parse
import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.fancybot.util.str.encodeToBase64 import cn.rtast.fancybot.util.str.encodeToBase64
import cn.rtast.fancybot.util.toByteArray import cn.rtast.fancybot.util.toByteArray
import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.entity.GroupMessage
@@ -23,6 +24,7 @@ import java.net.URI
import javax.imageio.ImageIO import javax.imageio.ImageIO
import kotlin.math.roundToInt import kotlin.math.roundToInt
@CommandDescription("将图片转换成ASCII字符画!")
class AsciiArtCommand : BaseCommand() { class AsciiArtCommand : BaseCommand() {
override val commandNames = listOf("/ascii", "/asc") override val commandNames = listOf("/ascii", "/asc")
@@ -7,6 +7,7 @@
package cn.rtast.fancybot.commands.parse package cn.rtast.fancybot.commands.parse
import cn.rtast.fancybot.annotations.CommandDescription
import cn.rtast.fancybot.util.makeGif import cn.rtast.fancybot.util.makeGif
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
@@ -17,6 +18,7 @@ import cn.rtast.rob.util.ob.OneBotListener
import com.madgag.gif.fmsware.GifDecoder import com.madgag.gif.fmsware.GifDecoder
import java.net.URI import java.net.URI
@CommandDescription("倒放GIF")
class ReverseGIFCommand : BaseCommand() { class ReverseGIFCommand : BaseCommand() {
override val commandNames = listOf("倒放") override val commandNames = listOf("倒放")