MCPcopy Create free account
hub / github.com/FloatTech/ZeroBot-Plugin / getitemnameindex

Function getitemnameindex

plugin/warframeapi/main.go:391–418  ·  view source on GitHub ↗

获取搜索结果中的物品具体名称index的FutureEvent 传入ctx和一个递归次数上限,返回一个int 如果为返回内容为负, 说明 -1 会话超时 -2 主动结束 -3 连续3次错误

(ctx *zero.Ctx)

Source from the content-addressed store, hash-verified

389// -2 主动结束
390// -3 连续3次错误
391func getitemnameindex(ctx *zero.Ctx) int {
392 recv, cancel := zero.NewFutureEvent("message", 999, false, ctx.CheckSession()).Repeat()
393 defer cancel()
394 for i := 0; i < 3; i++ {
395 select {
396 case <-time.After(time.Second * 30):
397 // 超时15秒处理
398 ctx.SendChain(message.Text("会话已超时!"))
399 return -1
400 case e := <-recv:
401 msg := e.Event.Message.ExtractPlainText()
402 // 输入c主动结束的处理
403 if msg == "c" {
404 ctx.SendChain(message.Text("会话已结束!"))
405 return -2
406 }
407 // 尝试对输入进行数字转换
408 num, err := strconv.Atoi(msg)
409 if err != nil {
410 ctx.SendChain(message.Text("请输入数字! (输入c结束会话)"))
411 continue
412 }
413 return num
414 }
415 }
416 ctx.SendChain(message.Text("连续输入错误, 会话已结束!"))
417 return -3
418}

Callers 1

initFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected