mirror of
https://github.com/jie65535/mirai-console-jhr-plugin.git
synced 2025-06-02 17:39:16 +08:00
调整目录结构
增加 结束赛马 在进行过程中可以结束赛马(需要管理身份) 调整 占位符不再支持中文问号(因为事件消息内包含中文问号)
This commit is contained in:
parent
6fb3ee99ce
commit
e0095de5b1
37
README.md
37
README.md
@ -27,3 +27,40 @@
|
|||||||
等待比赛结束,结算奖励。
|
等待比赛结束,结算奖励。
|
||||||
|
|
||||||
发送`我有多少钱`或者其它查询余额命令来查询当前余额。(可私聊查询)
|
发送`我有多少钱`或者其它查询余额命令来查询当前余额。(可私聊查询)
|
||||||
|
|
||||||
|
### 道具池
|
||||||
|
```
|
||||||
|
巧克力
|
||||||
|
作用:60%几率使马下一步多走1格
|
||||||
|
价格:8$
|
||||||
|
|
||||||
|
兴奋剂
|
||||||
|
作用:60%几率使马下一步多走3格,10%几率使马过于兴奋回到起点
|
||||||
|
价格:10$
|
||||||
|
|
||||||
|
强效兴奋剂
|
||||||
|
作用:60%几率使马下一步多走5格,30%几率使马过于兴奋回到起点
|
||||||
|
价格:15$
|
||||||
|
|
||||||
|
冰淇淋
|
||||||
|
作用:30%几率使马滑到,下一步走0格
|
||||||
|
价格:10$
|
||||||
|
|
||||||
|
香蕉皮
|
||||||
|
作用:50%几率使马滑到,下一步走0格
|
||||||
|
价格:5$
|
||||||
|
|
||||||
|
肥皂
|
||||||
|
作用:70%几率使马滑到,下一步走0格
|
||||||
|
价格:7$
|
||||||
|
|
||||||
|
祈祷符
|
||||||
|
作用:5%几率使马下一步多走10格
|
||||||
|
价格:7$
|
||||||
|
|
||||||
|
使用指令:物品名称+马的序号
|
||||||
|
例:巧克力1(为马1使用巧克力)
|
||||||
|
注:本商店物品无需买入,在赛马进行中,只要有足够的$,直接用指令发动即可自动使用
|
||||||
|
注:如果物品名称后面不跟马的序号,视为对随机一匹马发动,购入价格减半
|
||||||
|
注:物品效果可累计
|
||||||
|
```
|
@ -17,6 +17,8 @@ import net.mamoe.mirai.message.data.MessageChainBuilder
|
|||||||
import net.mamoe.mirai.message.data.MessageSource.Key.quote
|
import net.mamoe.mirai.message.data.MessageSource.Key.quote
|
||||||
import net.mamoe.mirai.message.data.PlainText
|
import net.mamoe.mirai.message.data.PlainText
|
||||||
import net.mamoe.mirai.utils.info
|
import net.mamoe.mirai.utils.info
|
||||||
|
import top.jie65535.jhr.game.Bet
|
||||||
|
import top.jie65535.jhr.game.Horse
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import kotlin.random.Random
|
import kotlin.random.Random
|
||||||
|
|
||||||
@ -55,8 +57,6 @@ object JHorseRacing : KotlinPlugin(
|
|||||||
|
|
||||||
// region 赛马
|
// region 赛马
|
||||||
|
|
||||||
private data class Bet(val id: Long, val number: Int, val score: Int)
|
|
||||||
private data class Horse(val type: Int, var position: Int = 0)
|
|
||||||
private data class Rank(val horses: List<Horse>, val job: Job)
|
private data class Rank(val horses: List<Horse>, val job: Job)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -117,11 +117,7 @@ object JHorseRacing : KotlinPlugin(
|
|||||||
JHRPluginConfig.badEvents[Random.nextInt(JHRPluginConfig.badEvents.size)]
|
JHRPluginConfig.badEvents[Random.nextInt(JHRPluginConfig.badEvents.size)]
|
||||||
}
|
}
|
||||||
val number = (eventHorseIndex + 1).toString()
|
val number = (eventHorseIndex + 1).toString()
|
||||||
subject.sendMessage(
|
subject.sendMessage(eventMsg.replace("?", number))
|
||||||
eventMsg
|
|
||||||
.replace("?", number)
|
|
||||||
.replace("?", number)
|
|
||||||
)
|
|
||||||
|
|
||||||
// 所有马前进
|
// 所有马前进
|
||||||
for ((i, horse) in rank.horses.withIndex()) {
|
for ((i, horse) in rank.horses.withIndex()) {
|
||||||
@ -199,7 +195,22 @@ object JHorseRacing : KotlinPlugin(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
msg.startsWith("开始赛马") -> launch { startRank(subject) }
|
msg.startsWith("开始赛马") -> launch {
|
||||||
|
startRank(subject)
|
||||||
|
}
|
||||||
|
msg.startsWith("结束赛马") -> {
|
||||||
|
if (sender.permission.isOperator()) {
|
||||||
|
val rank = ranks[subject.id]
|
||||||
|
if (rank != null) {
|
||||||
|
rank.job.cancel()
|
||||||
|
ranks.remove(subject.id)
|
||||||
|
pools.remove(subject.id)
|
||||||
|
subject.sendMessage("已结束比赛")
|
||||||
|
} else {
|
||||||
|
subject.sendMessage("没有正在进行中的赛马")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
msg == "关闭赛马" -> {
|
msg == "关闭赛马" -> {
|
||||||
if (sender.permission.isOperator()) {
|
if (sender.permission.isOperator()) {
|
||||||
JHRPluginConfig.enabledGroups.remove(subject.id)
|
JHRPluginConfig.enabledGroups.remove(subject.id)
|
||||||
|
10
src/main/kotlin/game/Bet.kt
Normal file
10
src/main/kotlin/game/Bet.kt
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
package top.jie65535.jhr.game
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 赌注
|
||||||
|
*
|
||||||
|
* @param id 下注用户
|
||||||
|
* @param number 马号
|
||||||
|
* @param score 下注点数
|
||||||
|
*/
|
||||||
|
data class Bet(val id: Long, val number: Int, val score: Int)
|
5
src/main/kotlin/game/Game.kt
Normal file
5
src/main/kotlin/game/Game.kt
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
package top.jie65535.jhr.game
|
||||||
|
|
||||||
|
//class Game {
|
||||||
|
// // TODO
|
||||||
|
//}
|
16
src/main/kotlin/game/Horse.kt
Normal file
16
src/main/kotlin/game/Horse.kt
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package top.jie65535.jhr.game
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 赛马
|
||||||
|
*
|
||||||
|
* @param type 赛马类型(样式)
|
||||||
|
*/
|
||||||
|
data class Horse(val type: Int) {
|
||||||
|
/**
|
||||||
|
* 马的位置 设置为小于0的值时会重置为0
|
||||||
|
*/
|
||||||
|
var position: Int = 0
|
||||||
|
set(value) {
|
||||||
|
field = if (value < 0) 0 else value
|
||||||
|
}
|
||||||
|
}
|
29
src/main/kotlin/game/Item.kt
Normal file
29
src/main/kotlin/game/Item.kt
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
package top.jie65535.jhr.game
|
||||||
|
|
||||||
|
// TODO("游戏道具")
|
||||||
|
//class Item(
|
||||||
|
// val name: String,
|
||||||
|
// val price: Int,
|
||||||
|
// val description: String,
|
||||||
|
//) {
|
||||||
|
// fun handle(horse: Horse) {
|
||||||
|
// when (name) {
|
||||||
|
// "巧克力" -> {
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// companion object {
|
||||||
|
// val ITEMS = listOf(
|
||||||
|
// Item("巧克力", 100, "60%几率使马下一步多走1格"),
|
||||||
|
// Item("兴奋剂", 100, "60%几率使马下一步多走3格,10%几率使马过于兴奋回到起点"),
|
||||||
|
// Item("强效兴奋剂", 100, "60%几率使马下一步多走5格,30%几率使马过于兴奋回到起点"),
|
||||||
|
// Item("冰淇淋", 100, "30%几率使马滑到,下一步走0格"),
|
||||||
|
// Item("香蕉皮", 100, "50%几率使马滑到,下一步走0格"),
|
||||||
|
// Item("肥皂", 100, "70%几率使马滑到,下一步走0格"),
|
||||||
|
// Item("祈祷符", 100, "5%几率使马下一步多走10格"),
|
||||||
|
// )
|
||||||
|
// }
|
||||||
|
//}
|
Loading…
Reference in New Issue
Block a user