Skip to content

Commit d1b83f4

Browse files
vateburfumiamaguohuiyuanshudorcl
authored
[mcfish] Add one click selling (#894)
* [mcfish] Add one click selling Add one click waste selling function to mcfish plugin 给mcfish 添加一键售卖垃圾功能 * 🔖 v1.7.8 * chore: del aipaint due to 过气 * chore: del baidu due to 使えない * chore: del cangtoushi due to 使えない * chore: del dress due to 删库 * chore: del heisi due to 跑路 * chore: del jiami due to 跑路 * chore: del jiuejuezi due to 跑路 * chore: del quan due to 跑路 * chore: del wangyiyun due to 跑路 * chore: del wenben due to 跑路 * fix: atri 早安 conflict with sleep_manage & add 回应表情 * fix: version limit * fix: version limit * fix: version limit * chore: update deps * fix(searcher): forward node * 💩👌 make lint happy * revert: fix(searcher): forward node * fix(github): get api method * chore: del imgfinder due to 跑路 * optimize: saucenao head * chore: tidy * chore: del vtbxxx due to 跑路 * fix(drawlots): draw gif noise * fix(emojimix): connection issue in some regions * 💩👌 make lint happy * fix(drawlots): draw gif noise * fix(emojimix): add more logs * feat: add uwu logo * optimize: README uwu icon * chore: update deps * optimize: 赞我 触发失败时静默 * fix: update img pool * fix: imgpool on LLOB * fix(manager): 回应表情 * ✨ 修复b站小程序解析 (#895) * add control for saucenao & bilibili_parse (#839) * add control for saucenao&bilibili_parse * not only group * update control * reuse variables --------- Co-authored-by: 源文雨 <[email protected]> * fix(bilibili): parse config * fix(manager): 撤回 * fix: reply face * fix: reply face * 💩👌 make lint happy * feat: add option `-mirror` * chore: update deps * chore: update deps * chore: update deps * chore: update deps * chore: update deps * chore: update deps * chore: update deps * 🔖 v1.8.0 * revert: emojimix http2 * 📝 update README * [mcfish] Add one click selling Add one click waste selling function to mcfish plugin 给mcfish 添加一键售卖垃圾功能 * Update robbery plugin Update robbery plugin 修改打劫功能 --------- Co-authored-by: 源文雨 <[email protected]> Co-authored-by: himawari <[email protected]> Co-authored-by: 莫思潋 <[email protected]>
1 parent 78c64ac commit d1b83f4

File tree

3 files changed

+93
-2
lines changed

3 files changed

+93
-2
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -900,7 +900,7 @@ print("run[CQ:image,file="+j["img"]+"]")
900900

901901
- [x] 钓鱼商店
902902
- [x] 购买xxx [数量]
903-
- [x] 出售xxx [数量]
903+
- [x] 出售[xxx [数量]|所有垃圾]
904904
- [x] 钓鱼背包
905905
- [x] 装备[xx竿|三叉戟|美西螈]
906906
- [x] 附魔[诱钓|海之眷顾]

plugin/mcfish/main.go

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ var (
131131
DisableOnDefault: false,
132132
Brief: "钓鱼",
133133
Help: "一款钓鱼模拟器\n----------指令----------\n" +
134-
"- 钓鱼看板/钓鱼商店\n- 购买xxx\n- 购买xxx [数量]\n- 出售xxx\n- 出售xxx [数量]\n" +
134+
"- 钓鱼看板/钓鱼商店\n- 购买xxx\n- 购买xxx [数量]\n- 出售xxx\n- 出售xxx [数量]\n- 出售所有垃圾\n" +
135135
"- 钓鱼背包\n- 装备[xx竿|三叉戟|美西螈]\n- 附魔[诱钓|海之眷顾]\n- 修复鱼竿\n- 合成[xx竿|三叉戟]\n- 消除[绑定|宝藏]诅咒\n- 消除[绑定|宝藏]诅咒 [数量]\n" +
136136
"- 进行钓鱼\n- 进行n次钓鱼\n- 当前装备概率明细\n" +
137137
"规则V" + version + ":\n" +
@@ -530,6 +530,26 @@ func (sql *fishdb) getNumberFor(uid int64, thing string) (number int, err error)
530530
return
531531
}
532532

533+
// 获取用户的某类物品信息
534+
func (sql *fishdb) getUserTypeInfo(uid int64, thingType string) (thingInfos []article, err error) {
535+
name := strconv.FormatInt(uid, 10) + "Pack"
536+
sql.Lock()
537+
defer sql.Unlock()
538+
userInfo := article{}
539+
err = sql.db.Create(name, &userInfo)
540+
if err != nil {
541+
return
542+
}
543+
if !sql.db.CanFind(name, "where Type = '"+thingType+"'") {
544+
return
545+
}
546+
err = sql.db.FindFor(name, &userInfo, "where Type = '"+thingType+"'", func() error {
547+
thingInfos = append(thingInfos, userInfo)
548+
return nil
549+
})
550+
return
551+
}
552+
533553
/*********************************************************/
534554
/************************商店相关函数***********************/
535555
/*********************************************************/

plugin/mcfish/store.go

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,77 @@ func init() {
306306
}
307307
ctx.Send(message.ReplyWithMessage(ctx.Event.MessageID, message.Text("出售成功,你赚到了", pice*number, msg)))
308308
})
309+
engine.OnRegex(`^出售所有垃圾`, getdb, refreshFish).SetBlock(true).Limit(limitSet).Handle(func(ctx *zero.Ctx) {
310+
uid := ctx.Event.UserID
311+
312+
articles, err := dbdata.getUserTypeInfo(uid, "waste")
313+
if err != nil {
314+
ctx.SendChain(message.Text("[ERROR]:获取背包信息错误", err))
315+
return
316+
}
317+
if len(articles) == 0 {
318+
ctx.SendChain(message.Text("你的背包不存在该物品"))
319+
return
320+
}
321+
if len(articles) > 1 {
322+
msg := make(message.Message, 0, 3+len(articles))
323+
msg = append(msg, message.Reply(ctx.Event.MessageID), message.Text("找到以下物品:\n"))
324+
for i, info := range articles {
325+
msg = append(msg, message.Text(
326+
"[", i, "]", info.Name, " 数量: ", info.Number, "\n"))
327+
}
328+
ctx.Send(msg)
329+
}
330+
331+
pice := 0
332+
for _, info := range articles {
333+
pice += (priceList[info.Name] * discountList[info.Name] / 100) * info.Number * 8 / 10
334+
}
335+
336+
ctx.Send(message.ReplyWithMessage(ctx.Event.MessageID, message.Text("是否接受商店将以", pice, "收购全部垃圾", "?\n回答\"\"\"\"")))
337+
// 等待用户下一步选择
338+
recv, cancel1 := zero.NewFutureEvent("message", 999, false, zero.RegexRule(`^(是|否)$`), zero.CheckUser(ctx.Event.UserID)).Repeat()
339+
defer cancel1()
340+
buy := false
341+
for {
342+
select {
343+
case <-time.After(time.Second * 60):
344+
ctx.Send(message.ReplyWithMessage(ctx.Event.MessageID, message.Text("等待超时,取消钓鱼")))
345+
return
346+
case e := <-recv:
347+
nextcmd := e.Event.Message.String()
348+
if nextcmd == "否" {
349+
ctx.Send(message.ReplyWithMessage(ctx.Event.MessageID, message.Text("已取消出售")))
350+
return
351+
}
352+
buy = true
353+
}
354+
if buy {
355+
break
356+
}
357+
}
358+
359+
msg := ""
360+
curse, err := dbdata.getNumberFor(uid, "宝藏诅咒")
361+
if err != nil {
362+
ctx.SendChain(message.Text("[ERROR at store.go.9.3]:", err))
363+
return
364+
}
365+
if curse != 0 {
366+
msg = "\n(你身上绑定了" + strconv.Itoa(curse) + "层诅咒)"
367+
pice = pice * (100 - 10*curse) / 100
368+
}
369+
370+
for _, info := range articles {
371+
info.Number = 0
372+
err = dbdata.updateUserThingInfo(uid, info)
373+
if err != nil {
374+
ctx.SendChain(message.Text("[ERROR at store.go.6]:", err))
375+
return
376+
}
377+
}
378+
ctx.Send(message.ReplyWithMessage(ctx.Event.MessageID, message.Text("出售成功,你赚到了", pice, msg)))
379+
})
309380
engine.OnRegex(`^购买(`+strings.Join(thingList, "|")+`)\s*(\d*)$`, getdb, refreshFish).SetBlock(true).Limit(limitSet).Handle(func(ctx *zero.Ctx) {
310381
uid := ctx.Event.UserID
311382
numberOfPole, err := dbdata.getNumberFor(uid, "竿")

0 commit comments

Comments
 (0)