chore: move dir
This commit is contained in:
10 files changed
+23
-12
No files matched your search
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
* Copyright © 2024 RTAkland
|
||||
* Author: RTAkland
|
||||
* Date: 2024/9/1
|
||||
*/
|
||||
|
||||
|
||||
package cn.rtast.fancybot.commands.misc
|
||||
|
||||
import cn.rtast.fancybot.configManager
|
||||
import cn.rtast.rob.entity.ArrayMessage
|
||||
import cn.rtast.rob.entity.GetMessage
|
||||
import cn.rtast.rob.entity.GroupMessage
|
||||
import cn.rtast.rob.enums.ArrayMessageType
|
||||
import cn.rtast.rob.util.BaseCommand
|
||||
import cn.rtast.rob.util.ob.MessageChain
|
||||
import cn.rtast.rob.util.ob.OneBotListener
|
||||
|
||||
class AntiRevokeCommand : BaseCommand() {
|
||||
override val commandNames = listOf("/revoke", "/rv", "/防撤回")
|
||||
|
||||
override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
|
||||
if (message.sender.userId !in configManager.admins) {
|
||||
message.reply("你不许用防撤回")
|
||||
}
|
||||
val messageId = args.first().toLong()
|
||||
listener.getMessage(messageId, "revoke", message.groupId)
|
||||
val msg = MessageChain.Builder()
|
||||
.addAt(message.sender.userId)
|
||||
.addText("正在获取消息中...")
|
||||
.build()
|
||||
listener.sendGroupMessage(message.groupId, msg)
|
||||
}
|
||||
|
||||
companion object {
|
||||
suspend fun callback(listener: OneBotListener, message: GetMessage) {
|
||||
val msgList = mutableListOf<ArrayMessage>()
|
||||
msgList.add(
|
||||
ArrayMessage(
|
||||
ArrayMessageType.at,
|
||||
ArrayMessage.Data(qq = message.data.sender.userId.toString())
|
||||
)
|
||||
)
|
||||
msgList.add(ArrayMessage(ArrayMessageType.text, ArrayMessage.Data(text = "\n被撤回的消息如下: \n")))
|
||||
msgList.addAll(message.data.message)
|
||||
listener.sendGroupMessage(message.data.groupId!!, msgList)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
/*
|
||||
* Copyright © 2024 RTAkland
|
||||
* Author: RTAkland
|
||||
* Date: 2024/9/12
|
||||
*/
|
||||
|
||||
|
||||
package cn.rtast.fancybot.commands.misc
|
||||
|
||||
import cn.rtast.fancybot.entity.compiler.GLOTPayload
|
||||
import cn.rtast.fancybot.entity.compiler.GLOTResponse
|
||||
import cn.rtast.fancybot.entity.compiler.KCSPayload
|
||||
import cn.rtast.fancybot.entity.compiler.KCSResponse
|
||||
import cn.rtast.fancybot.util.Http
|
||||
import cn.rtast.fancybot.util.str.toJson
|
||||
import cn.rtast.rob.entity.GroupMessage
|
||||
import cn.rtast.rob.util.BaseCommand
|
||||
import cn.rtast.rob.util.ob.MessageChain
|
||||
import cn.rtast.rob.util.ob.OneBotListener
|
||||
|
||||
class CompilerCommand : BaseCommand() {
|
||||
override val commandNames = listOf("/compiler", "/exec")
|
||||
|
||||
private val kotlinCompilerServer = "https://api.kotlinlang.org/api/2.0.20/compiler/run"
|
||||
private val glotCompilerServer = "https://glot.io/run"
|
||||
|
||||
override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
|
||||
if (args.isEmpty()) {
|
||||
val msg = MessageChain.Builder()
|
||||
.addAt(message.sender.userId)
|
||||
.addText("使用`/exec` <语言> <代码> 即可执行~")
|
||||
.build()
|
||||
listener.sendGroupMessage(message.groupId, msg)
|
||||
return
|
||||
}
|
||||
val language = args.first()
|
||||
val code = args.drop(1).joinToString(" ")
|
||||
val response = when (language) {
|
||||
"kotlin", "Kotlin", "kt", "Kt", "KT" -> {
|
||||
Http.post<KCSResponse>(
|
||||
kotlinCompilerServer, jsonBody = KCSPayload(listOf(KCSPayload.File(code))).toJson()
|
||||
).text
|
||||
}
|
||||
|
||||
else -> {
|
||||
Http.post<GLOTResponse>(
|
||||
"$glotCompilerServer/$language",
|
||||
params = mapOf("version" to "latest"),
|
||||
jsonBody = GLOTPayload(listOf(GLOTPayload.File(code))).toJson()
|
||||
).stdout
|
||||
}
|
||||
}
|
||||
val msg = MessageChain.Builder()
|
||||
.addAt(message.sender.userId)
|
||||
.addText("执行结果如下:")
|
||||
.addNewLine()
|
||||
.addText(response.replace("<outStream>", "").replace("</outStream>", ""))
|
||||
.build()
|
||||
listener.sendGroupMessage(message.groupId, msg)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
/*
|
||||
* Copyright © 2024 RTAkland
|
||||
* Author: RTAkland
|
||||
* Date: 2024/8/30
|
||||
*/
|
||||
|
||||
|
||||
package cn.rtast.fancybot.commands.misc
|
||||
|
||||
import cn.rtast.fancybot.entity.FKXQS
|
||||
import cn.rtast.fancybot.util.Http
|
||||
import cn.rtast.rob.entity.GroupMessage
|
||||
import cn.rtast.rob.util.BaseCommand
|
||||
import cn.rtast.rob.util.ob.MessageChain
|
||||
import cn.rtast.rob.util.ob.OneBotListener
|
||||
|
||||
class FKXQSCommand : BaseCommand() {
|
||||
override val commandNames = listOf("/fkxqs", "/fk", "/疯狂星期四")
|
||||
|
||||
override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
|
||||
val response = Http.get<FKXQS>("https://api.shadiao.pro/kfc").data.text
|
||||
val msg = MessageChain.Builder()
|
||||
.addAt(message.sender.userId)
|
||||
.addText(response)
|
||||
.build()
|
||||
listener.sendGroupMessage(message.groupId, msg)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
/*
|
||||
* Copyright © 2024 RTAkland
|
||||
* Author: RTAkland
|
||||
* Date: 2024/8/30
|
||||
*/
|
||||
|
||||
|
||||
package cn.rtast.fancybot.commands.misc
|
||||
|
||||
import cn.rtast.fancybot.util.Http
|
||||
import cn.rtast.rob.entity.GroupMessage
|
||||
import cn.rtast.rob.util.BaseCommand
|
||||
import cn.rtast.rob.util.ob.MessageChain
|
||||
import cn.rtast.rob.util.ob.OneBotListener
|
||||
|
||||
class HitokotoCommand : BaseCommand() {
|
||||
override val commandNames = listOf("/hitokoto", "/1")
|
||||
|
||||
override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
|
||||
val response = Http.get("https://v1.jinrishici.com/rensheng/mengxiang.txt")
|
||||
val msg = MessageChain.Builder()
|
||||
.addAt(message.sender.userId)
|
||||
.addText(response)
|
||||
.build()
|
||||
listener.sendGroupMessage(message.groupId, msg)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
/*
|
||||
* Copyright © 2024 RTAkland
|
||||
* Author: RTAkland
|
||||
* Date: 2024/9/8
|
||||
*/
|
||||
|
||||
|
||||
package cn.rtast.fancybot.commands.misc
|
||||
|
||||
import cn.rtast.rob.entity.GroupMessage
|
||||
import cn.rtast.rob.util.BaseCommand
|
||||
import cn.rtast.rob.util.ob.MessageChain
|
||||
import cn.rtast.rob.util.ob.OneBotListener
|
||||
|
||||
class LikeMeCommand : BaseCommand() {
|
||||
override val commandNames = listOf("赞我")
|
||||
|
||||
override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
|
||||
listener.sendLike(message.sender.userId, 10)
|
||||
val msg = MessageChain.Builder()
|
||||
.addReply(message.messageId)
|
||||
.addText("👍了你十下~~😁")
|
||||
.build()
|
||||
listener.sendGroupMessage(message.groupId, msg)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
/*
|
||||
* Copyright © 2024 RTAkland
|
||||
* Author: RTAkland
|
||||
* Date: 2024/9/6
|
||||
*/
|
||||
|
||||
|
||||
package cn.rtast.fancybot.commands.misc
|
||||
|
||||
import cn.rtast.rob.entity.GroupMessage
|
||||
import cn.rtast.rob.enums.ArrayMessageType
|
||||
import cn.rtast.rob.util.BaseCommand
|
||||
import cn.rtast.rob.util.ob.MessageChain
|
||||
import cn.rtast.rob.util.ob.OneBotListener
|
||||
|
||||
class RUACommand : BaseCommand() {
|
||||
override val commandNames = listOf("/rua", "rua")
|
||||
|
||||
override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
|
||||
if (args.isEmpty()) {
|
||||
val msg = MessageChain.Builder()
|
||||
.addAt(message.sender.userId)
|
||||
.addText("使用rua @xxxx")
|
||||
.addText("即可rua某人啦~")
|
||||
.build()
|
||||
listener.sendGroupMessage(message.groupId, msg)
|
||||
return
|
||||
}
|
||||
try {
|
||||
val target = message.message.find { it.type == ArrayMessageType.at }?.data!!
|
||||
val msg = MessageChain.Builder()
|
||||
.addReply(message.messageId)
|
||||
.addAt(target.qq.toString().toLong())
|
||||
.addNewLine()
|
||||
.addText(message.sender.nickname)
|
||||
.addText(" ")
|
||||
.addText("rua了你~")
|
||||
.build()
|
||||
listener.sendGroupMessage(message.groupId, msg)
|
||||
} catch (_: NullPointerException) {
|
||||
val msg = MessageChain.Builder()
|
||||
.addAt(message.sender.userId)
|
||||
.addText("要@才有用哦~")
|
||||
.build()
|
||||
listener.sendGroupMessage(message.groupId, msg)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
/*
|
||||
* Copyright © 2024 RTAkland
|
||||
* Author: RTAkland
|
||||
* Date: 2024/9/5
|
||||
*/
|
||||
|
||||
|
||||
package cn.rtast.fancybot.commands.misc
|
||||
|
||||
import cn.rtast.fancybot.entity.enums.CountryList
|
||||
import cn.rtast.fancybot.util.randomBooleanWithProbability
|
||||
import cn.rtast.rob.entity.GroupMessage
|
||||
import cn.rtast.rob.util.BaseCommand
|
||||
import cn.rtast.rob.util.ob.MessageChain
|
||||
import cn.rtast.rob.util.ob.OneBotListener
|
||||
|
||||
class RemakeCommand : BaseCommand() {
|
||||
override val commandNames = listOf("/remake", "/重开", "remake", "重开")
|
||||
|
||||
private val locations = listOf(
|
||||
"厕所", "首都", "农村", "市区",
|
||||
"大学", "树上", "医院"
|
||||
)
|
||||
|
||||
private val roles = listOf(
|
||||
"男孩子", "女孩子", "小男娘", "伞兵",
|
||||
"人机", "114514", "是吧", "罕见",
|
||||
"鸽子", "鼠鼠", "化石", "狗狗"
|
||||
)
|
||||
|
||||
override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
|
||||
val isSuccess = randomBooleanWithProbability(0.7)
|
||||
val msg = MessageChain.Builder().addReply(message.messageId)
|
||||
if (isSuccess) {
|
||||
val country = CountryList.getRandomCountry()
|
||||
val location = locations.random()
|
||||
val role = roles.random()
|
||||
msg.addText("重开成功! 你转生在${country.chineseName}的$location, 是一个$role")
|
||||
} else
|
||||
msg.addText("转生失败~")
|
||||
listener.sendGroupMessage(message.groupId, msg.build())
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
/*
|
||||
* Copyright © 2024 RTAkland
|
||||
* Author: RTAkland
|
||||
* Date: 2024/9/17
|
||||
*/
|
||||
|
||||
|
||||
package cn.rtast.fancybot.commands.misc
|
||||
|
||||
import cn.rtast.fancybot.configManager
|
||||
import cn.rtast.rob.entity.GroupMessage
|
||||
import cn.rtast.rob.util.BaseCommand
|
||||
import cn.rtast.rob.util.ob.MessageChain
|
||||
import cn.rtast.rob.util.ob.OneBotListener
|
||||
import org.simplejavamail.api.mailer.config.TransportStrategy
|
||||
import org.simplejavamail.email.EmailBuilder
|
||||
import org.simplejavamail.mailer.MailerBuilder
|
||||
|
||||
class SendMailCommand : BaseCommand() {
|
||||
override val commandNames = listOf("/mail")
|
||||
|
||||
private val smtpHost = configManager.smtpHost
|
||||
private val smtpPort = configManager.smtpPort
|
||||
private val smtpUser = configManager.smtpUser
|
||||
private val smtpPassword = configManager.smtpPassword
|
||||
private val smtpFromAddress = configManager.smtpFromAddress
|
||||
private val mailer = MailerBuilder.withSMTPServer(smtpHost, smtpPort, smtpUser, smtpPassword)
|
||||
.withTransportStrategy(TransportStrategy.SMTP_TLS)
|
||||
.clearEmailValidator()
|
||||
.async()
|
||||
.buildMailer()
|
||||
|
||||
private fun sendMail(target: String) {
|
||||
val email = EmailBuilder.startingBlank()
|
||||
.from(smtpFromAddress)
|
||||
.to(target)
|
||||
.withSubject("Test email from FancyBot")
|
||||
.withPlainText("Test email~")
|
||||
.buildEmail()
|
||||
this.mailer.sendMail(email)
|
||||
}
|
||||
|
||||
override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
|
||||
if (args.isEmpty()) {
|
||||
val msg = MessageChain.Builder()
|
||||
.addAt(message.sender.userId)
|
||||
.addText("发送`/mail <收件人地址>`即可发送测试邮件~")
|
||||
.build()
|
||||
listener.sendGroupMessage(message.groupId, msg)
|
||||
return
|
||||
}
|
||||
if (message.sender.userId !in configManager.admins) {
|
||||
val msg = MessageChain.Builder()
|
||||
.addReply(message.messageId)
|
||||
.addText("你不许发邮件")
|
||||
.build()
|
||||
listener.sendGroupMessage(message.groupId, msg)
|
||||
return
|
||||
}
|
||||
val target = args.first()
|
||||
this.sendMail(target)
|
||||
val msg = MessageChain.Builder()
|
||||
.addAt(message.sender.userId)
|
||||
.addText("正在发送邮件, 请查收~(可能会出现在垃圾桶中~)")
|
||||
.build()
|
||||
listener.sendGroupMessage(message.groupId, msg)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
/*
|
||||
* Copyright © 2024 RTAkland
|
||||
* Author: RTAkland
|
||||
* Date: 2024/9/18
|
||||
*/
|
||||
|
||||
|
||||
package cn.rtast.fancybot.commands.misc
|
||||
|
||||
import cn.rtast.rob.entity.GroupMessage
|
||||
import cn.rtast.rob.entity.PrivateMessage
|
||||
import cn.rtast.rob.util.BaseCommand
|
||||
import cn.rtast.rob.util.ob.MessageChain
|
||||
import cn.rtast.rob.util.ob.OneBotListener
|
||||
|
||||
val users = mutableMapOf<Long, Long>()
|
||||
|
||||
class ZiBiCommand : BaseCommand() {
|
||||
override val commandNames = listOf("/自闭", "自闭")
|
||||
|
||||
override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
|
||||
try {
|
||||
users.remove(message.sender.userId)
|
||||
val duration = if (args.isEmpty()) 1 else args.first().toInt()
|
||||
message.sender.ban(duration * 60)
|
||||
val msg = MessageChain.Builder()
|
||||
.addText("你先自闭${duration}分钟吧~")
|
||||
.addNewLine()
|
||||
.addText("私聊发送`我想开了`即可取消禁言~")
|
||||
.build()
|
||||
message.reply(msg)
|
||||
users[message.sender.userId] = message.groupId
|
||||
} catch (_: Exception) {
|
||||
val msg = MessageChain.Builder()
|
||||
.addText("你输入有误所以我决定让你自闭1天~")
|
||||
.build()
|
||||
message.reply(msg)
|
||||
message.sender.ban(86400)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class UnsetZiBiCommand : BaseCommand() {
|
||||
override val commandNames = listOf("我想开了")
|
||||
|
||||
override suspend fun executePrivate(listener: OneBotListener, message: PrivateMessage, args: List<String>) {
|
||||
if (!users.any { it.key == message.sender.userId }) {
|
||||
val msg = MessageChain.Builder()
|
||||
.addText("你没有在自闭列表中~")
|
||||
.build()
|
||||
message.reply(msg)
|
||||
return
|
||||
}
|
||||
listener.setGroupBan(users.getValue(message.sender.userId), message.sender.userId, 0)
|
||||
val msg = MessageChain.Builder()
|
||||
.addText("祝你天天开心不要自闭~~")
|
||||
.build()
|
||||
message.reply(msg)
|
||||
users.remove(message.sender.userId)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user