koishi-plugin-ggcevo 1.3.3 → 1.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/lib/index.js +15 -13
  2. package/package.json +1 -1
  3. package/readme.md +21 -1
package/lib/index.js CHANGED
@@ -128,6 +128,18 @@ var ExchangeConfig = {
128
128
  23: { name: "赎罪券", quality: "t0", type: "道具", cost: 2 }
129
129
  };
130
130
  function apply(ctx, config) {
131
+ ctx.root.on("command/before-execute", (argv) => {
132
+ if (argv.command?.ctx === ctx && argv.command.name !== "咕咕之战") {
133
+ ;
134
+ argv.session["ggcevoQuote"] = true;
135
+ }
136
+ });
137
+ ctx.root.before("send", (session, options) => {
138
+ const source = options.session;
139
+ if (source?.["ggcevoQuote"] && !session.elements?.some((el) => el.type === "quote")) {
140
+ session.elements?.unshift((0, import_koishi.h)("quote", { id: source.messageId }));
141
+ }
142
+ });
131
143
  const debug = /* @__PURE__ */ __name((...args) => {
132
144
  if (config.debugEnabled) {
133
145
  ctx.logger.info("[ggcevo:debug]", ...args);
@@ -2838,7 +2850,6 @@ ${rewardLines.join("\n")}` : "";
2838
2850
  key: "daily",
2839
2851
  label: "每日玩法",
2840
2852
  emoji: "📅",
2841
- desc: "签到 / 挖矿 / 探索 / 补签",
2842
2853
  items: [
2843
2854
  { key: "sign", icon: "签", label: "签到", desc: "每日签到, 获取金币与咕咕币" },
2844
2855
  { key: "mine", icon: "挖", label: "挖矿", desc: "领取挂机挖矿收益(每半小时4金币)" },
@@ -2850,7 +2861,6 @@ ${rewardLines.join("\n")}` : "";
2850
2861
  key: "bag",
2851
2862
  label: "物品背包",
2852
2863
  emoji: "🎒",
2853
- desc: "背包 / 个人信息 / 使用",
2854
2864
  items: [
2855
2865
  { key: "inv", icon: "包", label: "背包", desc: "查看自己的物品背包" },
2856
2866
  { key: "profile", icon: "信", label: "个人信息", desc: "查看签到统计与个人信息" },
@@ -2861,7 +2871,6 @@ ${rewardLines.join("\n")}` : "";
2861
2871
  key: "lottery",
2862
2872
  label: "抽奖兑换",
2863
2873
  emoji: "🎲",
2864
- desc: "抽奖 / 抽奖概率 / 兑换 / 兑换列表",
2865
2874
  items: [
2866
2875
  { key: "lottery", icon: "抽", label: "抽奖", desc: "抽奖, 可加选项 -p 奖池ID -c 次数" },
2867
2876
  { key: "odds", icon: "率", label: "抽奖概率", desc: "查看各奖池抽奖概率与保底说明" },
@@ -2873,7 +2882,6 @@ ${rewardLines.join("\n")}` : "";
2873
2882
  key: "activity",
2874
2883
  label: "活动",
2875
2884
  emoji: "🎉",
2876
- desc: "活动列表 / 领取活动",
2877
2885
  items: [
2878
2886
  { key: "actList", icon: "活", label: "活动列表", desc: '查看进行中的活动(参数"全部"查看全部)' },
2879
2887
  { key: "actClaim", icon: "领", label: "领取活动", desc: "领取指定(或最新)活动奖励" }
@@ -2883,7 +2891,6 @@ ${rewardLines.join("\n")}` : "";
2883
2891
  key: "handle",
2884
2892
  label: "句柄绑定",
2885
2893
  emoji: "🔗",
2886
- desc: "绑定 / 句柄 / 切换 / 查询 / 解绑 / 迁移",
2887
2894
  items: [
2888
2895
  { key: "bind", icon: "绑", label: "绑定 <句柄>", desc: "绑定星际争霸2游戏句柄" },
2889
2896
  { key: "list", icon: "句", label: "句柄", desc: "查询已绑定的游戏句柄" },
@@ -2897,7 +2904,6 @@ ${rewardLines.join("\n")}` : "";
2897
2904
  key: "query",
2898
2905
  label: "查询信息",
2899
2906
  emoji: "📊",
2900
- desc: "地图检测 / 封禁记录 / 签到奖励",
2901
2907
  items: [
2902
2908
  { key: "map", icon: "图", label: "地图检测", desc: "查询已配置地图的检测状态" },
2903
2909
  { key: "ban", icon: "封", label: "封禁记录", desc: "查询句柄的封禁记录" },
@@ -2908,7 +2914,7 @@ ${rewardLines.join("\n")}` : "";
2908
2914
  const buildTextMenu = /* @__PURE__ */ __name(() => [
2909
2915
  "🐤 咕咕之战菜单",
2910
2916
  "",
2911
- ...menuCategories.map((cat) => `${cat.emoji} ${cat.label}(${cat.desc})
2917
+ ...menuCategories.map((cat) => `${cat.emoji} ${cat.label}
2912
2918
  ${cat.items.map((item) => item.label).join(" / ")}`),
2913
2919
  "",
2914
2920
  "提示: 直接输入上方指令名即可使用对应功能。"
@@ -2985,7 +2991,6 @@ ${rewardLines.join("\n")}` : "";
2985
2991
  await page.setContent(html);
2986
2992
  await page.waitForNetworkIdle();
2987
2993
  const img = await page.screenshot({ type: "jpeg", quality: 85, fullPage: true, encoding: "binary" });
2988
- logger.info("[menu-render] 菜单图渲染完成, 体积 %s KB", (img.length / 1024).toFixed(1));
2989
2994
  try {
2990
2995
  await (0, import_promises.mkdir)(menuCacheDir, { recursive: true });
2991
2996
  const files = await (0, import_promises.readdir)(menuCacheDir);
@@ -3015,7 +3020,6 @@ ${rewardLines.join("\n")}` : "";
3015
3020
  session["seq"] = msgSeq;
3016
3021
  if (session.isDirect) {
3017
3022
  const fileRes = await bot.internal.sendFilePrivate(session.userId, { file_type: 1, srv_send_msg: false, file_data: fileData });
3018
- logger.info("[menu-render] QQ 官方图片上传响应: %o", fileRes);
3019
3023
  await bot.internal.sendPrivateMessage(session.channelId, {
3020
3024
  msg_type: 7,
3021
3025
  media: fileRes,
@@ -3025,7 +3029,6 @@ ${rewardLines.join("\n")}` : "";
3025
3029
  });
3026
3030
  } else {
3027
3031
  const fileRes = await bot.internal.sendFileGuild(session.channelId, { file_type: 1, srv_send_msg: false, file_data: fileData });
3028
- logger.info("[menu-render] QQ 官方图片上传响应: %o", fileRes);
3029
3032
  const msgRes = await bot.internal.sendMessage(session.channelId, {
3030
3033
  msg_type: 7,
3031
3034
  media: fileRes,
@@ -3033,8 +3036,7 @@ ${rewardLines.join("\n")}` : "";
3033
3036
  msg_id: session.messageId,
3034
3037
  msg_seq: msgSeq
3035
3038
  });
3036
- logger.info("[menu-render] QQ 官方消息发送响应: %o", msgRes);
3037
- if (msgRes?.audit_id) logger.warn("[menu-render] QQ 消息进入审核(audit_id=%s), 需开启 MESSAGE_AUDIT intent 才能确认最终是否发出", msgRes.audit_id);
3039
+ if (msgRes?.audit_id) logger.warn("[menu-render] QQ 菜单图消息进入审核(audit_id=%s), 若未开启 MESSAGE_AUDIT intent 消息可能不显示", msgRes.audit_id);
3038
3040
  }
3039
3041
  return;
3040
3042
  } catch (e) {
@@ -3042,7 +3044,7 @@ ${rewardLines.join("\n")}` : "";
3042
3044
  return "⚠️ QQ 发送菜单图失败,请查看日志中的错误信息。";
3043
3045
  }
3044
3046
  }, "sendMenuImage");
3045
- ctx.command("咕咕之战", "查看咕咕之战内容分类菜单").alias("菜单").action(async ({ session }) => {
3047
+ ctx.command("咕咕之战", "查看咕咕之战内容分类菜单").action(async ({ session }) => {
3046
3048
  if (config.menuStyle === "image") {
3047
3049
  const dataUrl = await renderMenuImage(buildMenuHtml("咕咕之战", "内容分类菜单 · 输入指令名即可使用"));
3048
3050
  return sendMenuImage(session, dataUrl);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "koishi-plugin-ggcevo",
3
3
  "description": "GGCEVO 综合插件:星际争霸2游戏句柄绑定 + 签到/抽奖/兑换/背包/活动系统等虚拟物品玩法",
4
- "version": "1.3.3",
4
+ "version": "1.3.6",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
7
7
  "files": [
package/readme.md CHANGED
@@ -108,7 +108,7 @@ npm install koishi-plugin-ggcevo
108
108
 
109
109
  | 指令 | 别名 | 权限 | 说明 |
110
110
  | --- | --- | --- | --- |
111
- | `咕咕之战` | 菜单 | — | 生成咕咕之战内容分类菜单(「每日玩法」「物品背包」「抽奖兑换」「活动」「句柄绑定」「查询信息」六类,仅收录普通用户可用指令)。根据配置项 `menuStyle` 选择渲染方式:`text`(默认)输出文字分类菜单,`image` 使用 puppeteer 渲染分类图片菜单(需启用 puppeteer 服务,未启用时自动降级为文字菜单) |
111
+ | `咕咕之战` | — | — | 生成咕咕之战内容分类菜单(「每日玩法」「物品背包」「抽奖兑换」「活动」「句柄绑定」「查询信息」六类,仅收录普通用户可用指令)。根据配置项 `menuStyle` 选择渲染方式:`text`(默认)输出文字分类菜单,`image` 使用 puppeteer 渲染分类图片菜单(需启用 puppeteer 服务,未启用时自动降级为文字菜单) |
112
112
  | `签到` | — | — | 每日签到,获取奖励并发放签到券/补签券等。每月首次签到时,若签到者的游戏句柄匹配管理员福利文档记录,额外发放 50 咕咕币津贴(仅校验句柄) |
113
113
  | `挖矿` | — | — | 领取挂机挖矿收益(咕咕之战玩法)。每半小时收益 4 金币,单次存储上限 24 小时,领取后立即进入下一轮挖矿。累计挖矿总时长与累计收益金币数会被记录统计。受宵禁影响:17:00-24:00 禁止领取 |
114
114
  | `探索` | — | — | 选择星系进行 12 小时探索,结束后领取收益(咕咕之战玩法)。星系:天枢(成功率100%,成功80金币)、赤潮(成功率60%,成功120金币/失败60金币)、千帆(成功率80%,成功50金币/失败25金币,成功时独立概率获得补签券×1(10%)、咕咕币1-3枚(50%),失败无道具)。金币/道具发放到背包,按星系累计统计探索次数/成功次数/累计金币。受宵禁影响:17:00-24:00 禁止 |
@@ -179,6 +179,26 @@ npm install koishi-plugin-ggcevo
179
179
 
180
180
  ## 更新日志
181
181
 
182
+ ### v1.3.6
183
+
184
+ 优化文字版菜单输出。
185
+
186
+ - **文字菜单去重**:分类行不再重复显示指令列表,仅显示分类名,指令只在分类下方展示;移除与指令列表重复的 `MenuCategory.desc` 冗余字段
187
+
188
+ ### v1.3.5
189
+
190
+ 引用回复与菜单指令调整。
191
+
192
+ - **移除 `菜单` 别名**:菜单仅可通过 `咕咕之战` 指令触发
193
+ - **统一引用回复**:除 `咕咕之战` 外,其余指令的回复自动添加引用回复(引用用户触发指令的原消息);已自带引用的指令(如句柄绑定/切换)不会叠加,避免双引用
194
+
195
+ ### v1.3.4
196
+
197
+ 正式版清理:去除调试日志。
198
+
199
+ - **去除调试日志**:移除 v1.3.3 新增的 `[menu-render]` 信息级调试日志(渲染体积、QQ 上传/发送响应打印),仅保留发送失败时的错误日志,以及消息进入审核(`audit_id`)时的警告
200
+ - 保留 QQ 官方机器人手动富媒体上传+发送逻辑(v1.3.3 修复,不走适配器以避免静默吞错)
201
+
182
202
  ### v1.3.3
183
203
 
184
204
  修复 QQ 官方机器人不发送图片菜单且无报错的问题。