Skip to content

Commit f6ef326

Browse files
authored
fix(mcfish): 鱼竿Number大于1,合成时少鱼竿的情况 (#947)
合成鱼竿未考虑鱼竿articles.Number>1的情况。 如果要修复这个问题,需要重构这块代码 所以梭哈功能直接按照原有思路,生成多个Number=1的鱼竿。
1 parent 4ffa18c commit f6ef326

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

plugin/mcfish/pole.go

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -383,7 +383,7 @@ func init() {
383383
})
384384
}
385385
list := []int{0, 1, 2}
386-
// 可以用于合成的鱼竿数量(取3的倍数)
386+
// 可以用于合成的鱼竿数量(取3的倍数),note:此处未对article.Number>1的情况做处理
387387
upgradeNum := (len(articles) / 3) * 3
388388
check := false
389389
if len(articles) > 3 {
@@ -485,17 +485,22 @@ func init() {
485485
Duration: time.Now().Unix(),
486486
Type: "pole",
487487
Name: thingName,
488-
Number: upgradeNum / 3,
488+
Number: 1,
489489
Other: attribute,
490490
}
491-
err = dbdata.updateUserThingInfo(uid, newthing)
492-
if err != nil {
493-
ctx.SendChain(message.Text("[ERROR at pole.go.12]:", err))
494-
return
491+
// 代码未对article.Number>1的情况做处理,直接生成多个Number=1的鱼竿
492+
for i := 0; i < upgradeNum/3; i++ {
493+
// 使用时间戳作为主键,增加固定值避免主键冲突
494+
newthing.Duration += int64(i * 10)
495+
err = dbdata.updateUserThingInfo(uid, newthing)
496+
if err != nil {
497+
ctx.SendChain(message.Text("[ERROR at pole.go.12]:", err))
498+
return
499+
}
495500
}
496501
ctx.Send(
497502
message.ReplyWithMessage(ctx.Event.MessageID,
498-
message.Text("成功合成", upgradeNum/3, "个", thingName, "\n属性: ", attribute),
503+
message.Text("成功合成", upgradeNum/3, "个", thingName, "\n属性: ", attribute),
499504
),
500505
)
501506
})

0 commit comments

Comments
 (0)