From a0b74d3df441a4d0dc8c269b4b813664ecec93b5 Mon Sep 17 00:00:00 2001 From: RTAkland Date: Fri, 11 Oct 2024 14:00:00 +0800 Subject: [PATCH] feat: add niuzi manager to manage user's niuzi length and bank balance --- src/main/kotlin/cn/rtast/fancybot/Const.kt | 2 +- .../commands/niuzi/NiuziManagerCommand.kt | 68 +++++++++++++++++++ 2 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 src/main/kotlin/cn/rtast/fancybot/commands/niuzi/NiuziManagerCommand.kt diff --git a/src/main/kotlin/cn/rtast/fancybot/Const.kt b/src/main/kotlin/cn/rtast/fancybot/Const.kt index 144d748..7b39586 100644 --- a/src/main/kotlin/cn/rtast/fancybot/Const.kt +++ b/src/main/kotlin/cn/rtast/fancybot/Const.kt @@ -120,5 +120,5 @@ val commands = listOf( ReactionCommand(), MCSkinCommand(), GithubLatestCommitCommand(), RandomMusicCommand(), ZDJDCommand(), ScanQRCodeCommand(), TTSCommand(), SlimeChunkHelperCommand(), SupportMeCommand(), TheCatCommand(), TheHistoryOfTodayCommand(), MCVersionCommand(), - MinecraftWikiCommand(), GaoKaoDaysRemainCommand(), IdiomExplainCommand() + MinecraftWikiCommand(), GaoKaoDaysRemainCommand(), IdiomExplainCommand(), NiuziManagerCommand() ) \ No newline at end of file diff --git a/src/main/kotlin/cn/rtast/fancybot/commands/niuzi/NiuziManagerCommand.kt b/src/main/kotlin/cn/rtast/fancybot/commands/niuzi/NiuziManagerCommand.kt new file mode 100644 index 0000000..9c4169f --- /dev/null +++ b/src/main/kotlin/cn/rtast/fancybot/commands/niuzi/NiuziManagerCommand.kt @@ -0,0 +1,68 @@ +/* + * Copyright © 2024 RTAkland + * Author: RTAkland + * Date: 2024/10/11 + */ + + +package cn.rtast.fancybot.commands.niuzi + +import cn.rtast.fancybot.annotations.CommandDescription +import cn.rtast.fancybot.configManager +import cn.rtast.fancybot.niuziBankManager +import cn.rtast.fancybot.niuziManager +import cn.rtast.fancybot.util.misc.getUserName +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 + +@CommandDescription("在群内设置某个成员的牛子银行余额或者现金牛子长度") +class NiuziManagerCommand : BaseCommand() { + override val commandNames = listOf("管理牛子") + + override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List) { + if (args.isEmpty()) { + message.reply("此命令可以管理成员的牛子或者银行账户") + return + } + if (message.sender() !in configManager.admins) { + message.reply("你没权限呢!") + return + } + val target = message.message.find { it.type == ArrayMessageType.at }!!.data.qq!!.toLong() + val method = args[1] + val amount = args.last().toDouble() + when (method) { + "set", "s", "设置" -> { + val type = args[2] + when (type) { + "yh", "银行" -> { + val before = niuziBankManager.getUser(target) + niuziBankManager.deposit(target, amount, listener.getUserName(message.groupId, target)) + val after = niuziBankManager.getUser(target) + val msg = MessageChain.Builder() + .addText("设置成功! 金额: $amount") + .addNewLine() + .addText("设置前余额: ${before?.balance?.toFloat()} | 设置后余额: ${after?.balance?.toFloat()}") + .build() + message.reply(msg) + } + + else -> { + val before = niuziManager.getUser(target) + niuziManager.updateLength(target, amount) + val after = niuziManager.getUser(target) + val msg = MessageChain.Builder() + .addText("设置成功! 金额: $amount") + .addNewLine() + .addText("设置前长度: ${before?.length?.toFloat()} | 设置后长度: ${after?.length?.toFloat()}") + .build() + message.reply(msg) + } + } + } + } + } +} \ No newline at end of file