From 93625f9c4fedbe52fe887a98fc5a3b292d7dcb23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BA=90=E6=96=87=E9=9B=A8?= <41315874+fumiama@users.noreply.github.com> Date: Wed, 1 Feb 2023 15:03:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81=E7=BB=93?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugin/warframeapi/main.go | 27 +++++++++++++-------------- plugin/warframeapi/world.go | 13 ++++++++++--- 2 files changed, 23 insertions(+), 17 deletions(-) diff --git a/plugin/warframeapi/main.go b/plugin/warframeapi/main.go index 9dc3a7b3..f097616d 100644 --- a/plugin/warframeapi/main.go +++ b/plugin/warframeapi/main.go @@ -29,11 +29,6 @@ func init() { "- wf每日特惠", PrivateDataFolder: "warframeapi", }) - gameWorld.w = [3]*timezone{ - {Name: "地球平原", DayDesc: "白天", NightDesc: "夜晚", DayLen: 100 * 60, NightLen: 50 * 60}, - {Name: "金星平原", DayDesc: "温暖", NightDesc: "寒冷", DayLen: 400, NightLen: 20 * 60}, - {Name: "火卫二平原", DayDesc: "fass", NightDesc: "vome", DayLen: 100 * 60, NightLen: 50 * 60}, - } // 获取具体的平原时间, 在触发后, 会启动持续时间按5分钟的时间更新模拟, 以此处理短时间内请求时, 时间不会变化的问题 eng.OnSuffix("平原时间").SetBlock(true). @@ -254,19 +249,23 @@ func init() { case 1: // 如果只搜索到了一个 name = sol[0] default: // 如果搜搜到了多个 - // 遍历搜索结果, 并打印为图片展出 - msgs := make(message.Message, len(sol)+1) - msgs[0] = ctxext.FakeSenderForwardNode(ctx, message.Text("包含多个结果, 请输入编号查看(30s内),输入c直接结束会话")) sb := strings.Builder{} if len(sol) > 25 { - sb.WriteString("数量过多,只显示前25\n") + sb.WriteString("数量过多, 只显示前25\n") sol = sol[:25] } - for i, v := range sol { - sb.WriteString(fmt.Sprintln("[", i, "] ", v)) + sb.WriteString("[0] ") + sb.WriteString(sol[0]) + for i, v := range sol[1:] { + sb.WriteString("\n[") + sb.WriteString(strconv.Itoa(i + 1)) + sb.WriteString("] ") + sb.WriteString(v) } - msgs[1] = ctxext.FakeSenderForwardNode(ctx, message.Text(sb.String())) - ctx.SendChain(msgs...) + ctx.SendChain( + ctxext.FakeSenderForwardNode(ctx, message.Text("包含多个结果, 请输入编号查看(30s内),输入c直接结束会话")), + ctxext.FakeSenderForwardNode(ctx, message.Text(&sb)), + ) itemIndex := getitemnameindex(ctx) if itemIndex < 0 { return @@ -331,7 +330,7 @@ func init() { sb.WriteString(fmt.Sprintf("[%d] %dP -%s\n", i, sells[i].Platinum, sells[i].User.IngameName)) } } - msgs = append(msgs, ctxext.FakeSenderForwardNode(ctx, message.Text(sb.String()))) + msgs = append(msgs, ctxext.FakeSenderForwardNode(ctx, message.Text(&sb))) ctx.SendChain(msgs...) for i := 0; i < 3; i++ { diff --git a/plugin/warframeapi/world.go b/plugin/warframeapi/world.go index 85656cda..814abdd4 100644 --- a/plugin/warframeapi/world.go +++ b/plugin/warframeapi/world.go @@ -26,9 +26,7 @@ type world struct { hassync uintptr } -var ( - gameWorld world -) +var gameWorld = newworld() // String 根据传入的世界编号,获取对应的游戏时间文本 func (t *timezone) String() string { @@ -49,6 +47,15 @@ func (t *timezone) String() string { return sb.String() } +func newworld() (w world) { + w.w = [3]*timezone{ + {Name: "地球平原", DayDesc: "白天", NightDesc: "夜晚", DayLen: 100 * 60, NightLen: 50 * 60}, + {Name: "金星平原", DayDesc: "温暖", NightDesc: "寒冷", DayLen: 400, NightLen: 20 * 60}, + {Name: "火卫二平原", DayDesc: "fass", NightDesc: "vome", DayLen: 100 * 60, NightLen: 50 * 60}, + } + return +} + func (w *world) hasSync() bool { return atomic.LoadUintptr(&w.hassync) != 0 }