From 790c48387e48b434a1a1b83f89d1d67e315d30ef Mon Sep 17 00:00:00 2001 From: RTAkland Date: Thu, 5 Sep 2024 13:40:41 +0800 Subject: [PATCH] feat: add remake command --- src/main/kotlin/cn/rtast/fancybot/FancyBot.kt | 4 +- .../rtast/fancybot/commands/RemakeCommand.kt | 42 +++++++++++++++++++ .../fancybot/entity/enums/CountryList.kt | 24 +++++++++++ .../kotlin/cn/rtast/fancybot/util/Misc.kt | 15 +++++++ 4 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 src/main/kotlin/cn/rtast/fancybot/commands/RemakeCommand.kt create mode 100644 src/main/kotlin/cn/rtast/fancybot/entity/enums/CountryList.kt create mode 100644 src/main/kotlin/cn/rtast/fancybot/util/Misc.kt diff --git a/src/main/kotlin/cn/rtast/fancybot/FancyBot.kt b/src/main/kotlin/cn/rtast/fancybot/FancyBot.kt index 19f001b..a0a5b95 100644 --- a/src/main/kotlin/cn/rtast/fancybot/FancyBot.kt +++ b/src/main/kotlin/cn/rtast/fancybot/FancyBot.kt @@ -19,6 +19,7 @@ import cn.rtast.fancybot.commands.MusicCommand import cn.rtast.fancybot.commands.MyPointCommand import cn.rtast.fancybot.commands.QRCodeCommand import cn.rtast.fancybot.commands.RedeemCommand +import cn.rtast.fancybot.commands.RemakeCommand import cn.rtast.fancybot.commands.SignCommand import cn.rtast.fancybot.commands.WeatherCommand import cn.rtast.fancybot.entity.enums.WSType @@ -85,7 +86,8 @@ val commands = listOf( HitokotoCommand(), FKXQSCommand(), QRCodeCommand(), AntiRevokeCommand(), MCPingCommand(), HelpCommand(), - WeatherCommand(), CigaretteCommand() + WeatherCommand(), CigaretteCommand(), + RemakeCommand() ) suspend fun main() { diff --git a/src/main/kotlin/cn/rtast/fancybot/commands/RemakeCommand.kt b/src/main/kotlin/cn/rtast/fancybot/commands/RemakeCommand.kt new file mode 100644 index 0000000..f0580ab --- /dev/null +++ b/src/main/kotlin/cn/rtast/fancybot/commands/RemakeCommand.kt @@ -0,0 +1,42 @@ +/* + * Copyright © 2024 RTAkland + * Author: RTAkland + * Date: 2024/9/5 + */ + + +package cn.rtast.fancybot.commands + +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.OBMessage + +class RemakeCommand : BaseCommand() { + override val commandNames = listOf("/remake", "/重开", "remake", "重开") + + private val locations = listOf( + "厕所", "首都", "农村", "市区", "大学" + ) + + private val roles = listOf( + "男孩子", "女孩子", "小男娘", "伞兵", + "人机", "114514", "是吧", "罕见", + "鸽子", "鼠鼠", "化石", "狗狗" + ) + + override suspend fun executeGroup(listener: OBMessage, message: GroupMessage, args: List) { + 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()) + } +} \ No newline at end of file diff --git a/src/main/kotlin/cn/rtast/fancybot/entity/enums/CountryList.kt b/src/main/kotlin/cn/rtast/fancybot/entity/enums/CountryList.kt new file mode 100644 index 0000000..5d191dd --- /dev/null +++ b/src/main/kotlin/cn/rtast/fancybot/entity/enums/CountryList.kt @@ -0,0 +1,24 @@ +/* + * Copyright © 2024 RTAkland + * Author: RTAkland + * Date: 2024/9/5 + */ + + +package cn.rtast.fancybot.entity.enums + +enum class CountryList(val chineseName: String) { + China("中国"), UnitedStates("美国"), Russia("俄罗斯"), + Germany("德国"), France("法国"), UnitedKingdom("英国"), + Japan("日本"), Brazil("巴西"), Canada("加拿大"), + Australia("澳大利亚"), India("印度"), Italy("意大利"), + Spain("西班牙"), SouthKorea("韩国"), Mexico("墨西哥"), + Indonesia("印度尼西亚"), Turkey("土耳其"), SouthAfrica("南非"), + Argentina("阿根廷"), Netherlands("荷兰"); + + companion object { + fun getRandomCountry(): CountryList { + return entries.random() + } + } +} \ No newline at end of file diff --git a/src/main/kotlin/cn/rtast/fancybot/util/Misc.kt b/src/main/kotlin/cn/rtast/fancybot/util/Misc.kt new file mode 100644 index 0000000..e704fd0 --- /dev/null +++ b/src/main/kotlin/cn/rtast/fancybot/util/Misc.kt @@ -0,0 +1,15 @@ +/* + * Copyright © 2024 RTAkland + * Author: RTAkland + * Date: 2024/9/5 + */ + + +package cn.rtast.fancybot.util + +import kotlin.random.Random + +fun randomBooleanWithProbability(probability: Double): Boolean { + val randomValue = Random.nextInt(100) + return randomValue <= (probability * 100) +} \ No newline at end of file