This commit is contained in:
2022-03-28 14:30:51 +08:00
parent b9268d7b90
commit df5723a63a

View File

@ -1,12 +1,12 @@
package top.jie65535
import net.mamoe.mirai.console.command.CommandManager.INSTANCE.register
import net.mamoe.mirai.console.command.CommandSender
import net.mamoe.mirai.console.command.SimpleCommand
import net.mamoe.mirai.console.plugin.jvm.JvmPluginDescription
import net.mamoe.mirai.console.plugin.jvm.KotlinPlugin
import net.mamoe.mirai.event.GlobalEventChannel
import net.mamoe.mirai.event.events.MessageEvent
import net.mamoe.mirai.message.data.content
import net.mamoe.mirai.utils.info
import java.util.Random
import java.util.*
object JAlchemyRecipeGenerator : KotlinPlugin(
JvmPluginDescription(
@ -20,17 +20,22 @@ object JAlchemyRecipeGenerator : KotlinPlugin(
) {
override fun onEnable() {
JargCommand.register()
GlobalEventChannel.parentScope(this).subscribeAlways<MessageEvent> {
val msg = message.content
if (msg.startsWith("/chaos ")) {
val seedStr = msg.removePrefix("/chaos ").trim()
var seed = seedStr.toLongOrNull()
if (seed == null) {
seed = seedStr.hashCode().toLong()
}
subject.sendMessage(gen(seed))
}
}
logger.info { "Plugin loaded" }
}
object JargCommand : SimpleCommand(
JAlchemyRecipeGenerator, "chaos", "催化",
description = "输入地图种子,得到催化配方"
) {
@Handler
suspend fun CommandSender.onCommand(seed: Long) {
private fun gen(seed: Long): String {
val random = Random(seed)
val sb = StringBuilder()
for (catalyst in catalysts) {
@ -39,29 +44,30 @@ object JAlchemyRecipeGenerator : KotlinPlugin(
sb.append(catalyst.materials[random.nextInt(catalyst.materials.size)]).append(' ')
sb.appendLine()
val ret = IntArray(6) { it }
for (i in ret.size-1 downTo 1) {
val j = random.nextInt(i+1)
val temp = ret[i]
ret[i] = ret[j]
ret[j] = temp
for (i in 1..5) {
random.nextInt()
}
sb.append('[')
for (i in ret) {
sb.append(' ').append(i).append(',')
// val ret = IntArray(6) { it }
// for (i in ret.size-1 downTo 1) {
// val j = random.nextInt(i+1)
// val temp = ret[i]
// ret[i] = ret[j]
// ret[j] = temp
// }
// sb.append('[')
// for (i in ret) {
// sb.append(' ').append(i).append(',')
// }
// sb.appendLine(']')
}
sb.appendLine(']')
return sb.toString()
}
sendMessage(sb.toString())
}
}
private val catalysts = arrayOf(
Catalyst("火成催化剂", arrayOf("安山岩", "闪长岩", "花岗岩", "圆石", "玄武岩", "辉长岩")),
Catalyst("草本催化剂", arrayOf("绯红", "橙色", "下界", "黑曜石", "蓝色", "品红色")),
Catalyst("不稳定催化剂", arrayOf("烈焰", "史莱姆", "花岗岩", "圆石", "火药", "海晶")),
Catalyst("晶化催化剂", arrayOf("神秘", "磷灰石", "硫磺", "硝石", "赛特斯石英", "石英")),
Catalyst("晶化催化剂", arrayOf("神秘", "磷灰石", "硫磺", "硝石", "赛特斯石英", "石英")),
Catalyst("金属催化剂", arrayOf("", "", "", "", "", "")),
Catalyst("宝石催化剂", arrayOf("朱砂", "青金石", "蓝宝石", "绿宝石", "红宝石", "钻石")),
Catalyst("混沌催化剂", arrayOf("火成催化剂", "草本催化剂", "不稳定催化剂", "晶化催化剂", "金属催化剂", "宝石催化剂")),