| 546 | // 引用重置:清空 ZprConfigManager 的静态引用,便于 reload 后重新初始化。 |
| 547 | ZprConfigManager.cleanup(); |
| 548 | } |
| 549 | |
| 550 | async setup(): Promise<void> { |
| 551 | // 重新初始化配置管理器,确保 reload 后可用 |
| 552 | await ZprConfigManager.reinit(); |
| 553 | } |
| 554 | |
| 555 | description = `随机纸片人插件\n\n${help_text}`; |
| 556 | |
| 557 | cmdHandlers: Record<string, (msg: Api.Message, trigger?: Api.Message) => Promise<void>> = { |
| 558 | zpr: async (msg: Api.Message): Promise<void> => { |
| 559 | try { |
| 560 | const client = await getGlobalClient(); |
| 561 | if (!client) { |
| 562 | await editHtmlMessage(msg, "❌ 客户端未初始化"); |
| 563 | return; |
| 564 | } |
| 565 | |
| 566 | // 标准参数解析 |
| 567 | const lines = msg.text?.trim()?.split(/\r?\n/g) || []; |
| 568 | const parts = lines?.[0]?.split(/\s+/) || []; |
| 569 | const [, ...args] = parts; |
| 570 | const sub = (args[0] || "").toLowerCase(); |
| 571 | |
| 572 | // 处理帮助命令 |
| 573 | if (sub === "help" || sub === "h" || |
| 574 | (args.length > 1 && (args[args.length - 1].toLowerCase() === "help" || args[args.length - 1].toLowerCase() === "h"))) { |
| 575 | await editHtmlMessage(msg, help_text); |
| 576 | return; |
| 577 | } |
| 578 | |
| 579 | // 处理 proxy 子命令 |
| 580 | if (sub === "proxy") { |
| 581 | if (args.length === 1) { |
| 582 | // 查看当前反代设置 |
| 583 | const currentProxy = await ZprConfigManager.getProxyHost(); |
| 584 | await editHtmlMessage(msg, `🔗 <b>当前反代设置</b> |
| 585 | |
| 586 | <b>当前地址:</b> <code>${htmlEscape(currentProxy)}</code> |
| 587 | |
| 588 | <b>可用地址:</b> |
| 589 | ${Object.entries(PROXY_HOSTS).map(([key, value]) => |
| 590 | `• <code>${htmlEscape(value)}</code> - ${htmlEscape(key)}`).join('\n')} |
| 591 | |
| 592 | <b>使用方法:</b> |
| 593 | <code>${mainPrefix}zpr proxy [地址]</code> - 设置反代地址`); |
| 594 | return; |
| 595 | } |
| 596 | |
| 597 | // 设置反代地址 |
| 598 | const newProxy = args[1]; |
| 599 | const validHosts = Object.values(PROXY_HOSTS); |
| 600 | |
| 601 | if (!validHosts.includes(newProxy)) { |
| 602 | await editHtmlMessage(msg, `❌ <b>无效的反代地址</b> |
| 603 | |
| 604 | <b>可用地址:</b> |
| 605 | ${Object.entries(PROXY_HOSTS).map(([key, value]) => |
nothing calls this directly
no test coverage detected