forked from FloatTech/ZeroBot-Plugin
-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* 优化在两个命令中使用空格分隔的体验 - fortune的设置底图功能 - b14的加密功能 * 优化四个插件中使用空格分隔的体验 - 加密 - 哔哩哔哩推送 - 藏头诗 - 运势 * 优化并修正了上一个commit - 加上了因为复制粘贴疏忽又没有注意测试遗漏的`?` - 调整藏头诗和加密的正则触发,使其不必多此一举 - 删去了未被发现的测试代码 * - 删去了遗漏的Trim * 优化了更多插件中使用空格的体验 - 优化了music bilibili image_finder 中使用空格的体验 - 补上了plugin_bilibili中未实现的vup开头触发 - 为plugin_bilibili_parse输出的消息加上一个换行符,优化排版 * - 调整funny - 补回readme中bilibili_push的注释说明 * - 简化funny说明 * feat:抽塔罗牌 * 🎨 改进代码样式 * 加上一个换行符 * 🎨 改进代码样式 * - At用户 * 🎨 改进代码样式 * -改进抽塔罗牌 * typo: 小写struct名 Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
- Loading branch information
1 parent
d29e12a
commit 1909131
Showing
3 changed files
with
86 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
package tarot | ||
|
||
import ( | ||
"encoding/json" | ||
"fmt" | ||
"log" | ||
"math/rand" | ||
"strconv" | ||
|
||
"github.com/FloatTech/zbputils/control" | ||
"github.com/FloatTech/zbputils/ctxext" | ||
"github.com/FloatTech/zbputils/file" | ||
zero "github.com/wdvxdr1123/ZeroBot" | ||
"github.com/wdvxdr1123/ZeroBot/message" | ||
) | ||
|
||
const bed = "https://gitcode.net/shudorcl/zbp-tarot/-/raw/master/" | ||
|
||
type card struct { | ||
Name string `json:"name"` | ||
Info struct { | ||
Description string `json:"description"` | ||
ReverseDescription string `json:"reverseDescription"` | ||
ImgURL string `json:"imgUrl"` | ||
} `json:"info"` | ||
} | ||
type cardset = map[string]card | ||
|
||
var cardMap = make(cardset, 256) | ||
var reasons = []string{"您抽到的是~\n", "锵锵锵,塔罗牌的预言是~\n", "诶,让我看看您抽到了~\n"} | ||
var position = []string{"正位", "逆位"} | ||
|
||
func init() { | ||
engine := control.Register("tarot", &control.Options{ | ||
DisableOnDefault: false, | ||
Help: "塔罗牌\n" + | ||
"- 抽塔罗牌\n", | ||
// TODO 抽X张塔罗牌 解塔罗牌[牌名] | ||
PublicDataFolder: "Tarot", | ||
}).ApplySingle(ctxext.DefaultSingle) | ||
|
||
engine.OnFullMatch("抽塔罗牌", ctxext.DoOnceOnSuccess( | ||
func(ctx *zero.Ctx) bool { | ||
tarotPath := engine.DataFolder() + "tarots.json" | ||
data, err := file.GetLazyData(tarotPath, true, true) | ||
if err != nil { | ||
ctx.SendChain(message.Text("ERROR:", err)) | ||
return false | ||
} | ||
err = json.Unmarshal(data, &cardMap) | ||
if err != nil { | ||
panic(err) | ||
} | ||
log.Printf("[tarot]读取%d张塔罗牌", len(cardMap)) | ||
return true | ||
}, | ||
)).SetBlock(true).Limit(ctxext.LimitByUser).Handle(func(ctx *zero.Ctx) { | ||
i := rand.Intn(22) | ||
p := rand.Intn(2) | ||
card := cardMap[(strconv.Itoa(i))] | ||
name := card.Name | ||
var info string | ||
if p == 0 { | ||
info = card.Info.Description | ||
} else { | ||
info = card.Info.ReverseDescription | ||
} | ||
if id := ctx.SendChain( | ||
message.At(ctx.Event.UserID), | ||
message.Text(reasons[rand.Intn(len(reasons))], position[p], " 的 ", name, "\n"), | ||
message.Image(fmt.Sprintf(bed+"MajorArcana/%d.png", i)), | ||
message.Text("\n其意义为:", info), | ||
); id.ID() == 0 { | ||
ctx.SendChain(message.Text("ERROR:可能被风控了")) | ||
} | ||
}) | ||
} |