koishi-plugin-ggcevo 1.3.3 → 1.3.5

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 +14 -6
  2. package/package.json +1 -1
  3. package/readme.md +15 -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);
@@ -2985,7 +2997,6 @@ ${rewardLines.join("\n")}` : "";
2985
2997
  await page.setContent(html);
2986
2998
  await page.waitForNetworkIdle();
2987
2999
  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
3000
  try {
2990
3001
  await (0, import_promises.mkdir)(menuCacheDir, { recursive: true });
2991
3002
  const files = await (0, import_promises.readdir)(menuCacheDir);
@@ -3015,7 +3026,6 @@ ${rewardLines.join("\n")}` : "";
3015
3026
  session["seq"] = msgSeq;
3016
3027
  if (session.isDirect) {
3017
3028
  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
3029
  await bot.internal.sendPrivateMessage(session.channelId, {
3020
3030
  msg_type: 7,
3021
3031
  media: fileRes,
@@ -3025,7 +3035,6 @@ ${rewardLines.join("\n")}` : "";
3025
3035
  });
3026
3036
  } else {
3027
3037
  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
3038
  const msgRes = await bot.internal.sendMessage(session.channelId, {
3030
3039
  msg_type: 7,
3031
3040
  media: fileRes,
@@ -3033,8 +3042,7 @@ ${rewardLines.join("\n")}` : "";
3033
3042
  msg_id: session.messageId,
3034
3043
  msg_seq: msgSeq
3035
3044
  });
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);
3045
+ if (msgRes?.audit_id) logger.warn("[menu-render] QQ 菜单图消息进入审核(audit_id=%s), 若未开启 MESSAGE_AUDIT intent 消息可能不显示", msgRes.audit_id);
3038
3046
  }
3039
3047
  return;
3040
3048
  } catch (e) {
@@ -3042,7 +3050,7 @@ ${rewardLines.join("\n")}` : "";
3042
3050
  return "⚠️ QQ 发送菜单图失败,请查看日志中的错误信息。";
3043
3051
  }
3044
3052
  }, "sendMenuImage");
3045
- ctx.command("咕咕之战", "查看咕咕之战内容分类菜单").alias("菜单").action(async ({ session }) => {
3053
+ ctx.command("咕咕之战", "查看咕咕之战内容分类菜单").action(async ({ session }) => {
3046
3054
  if (config.menuStyle === "image") {
3047
3055
  const dataUrl = await renderMenuImage(buildMenuHtml("咕咕之战", "内容分类菜单 · 输入指令名即可使用"));
3048
3056
  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.5",
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,20 @@ npm install koishi-plugin-ggcevo
179
179
 
180
180
  ## 更新日志
181
181
 
182
+ ### v1.3.5
183
+
184
+ 引用回复与菜单指令调整。
185
+
186
+ - **移除 `菜单` 别名**:菜单仅可通过 `咕咕之战` 指令触发
187
+ - **统一引用回复**:除 `咕咕之战` 外,其余指令的回复自动添加引用回复(引用用户触发指令的原消息);已自带引用的指令(如句柄绑定/切换)不会叠加,避免双引用
188
+
189
+ ### v1.3.4
190
+
191
+ 正式版清理:去除调试日志。
192
+
193
+ - **去除调试日志**:移除 v1.3.3 新增的 `[menu-render]` 信息级调试日志(渲染体积、QQ 上传/发送响应打印),仅保留发送失败时的错误日志,以及消息进入审核(`audit_id`)时的警告
194
+ - 保留 QQ 官方机器人手动富媒体上传+发送逻辑(v1.3.3 修复,不走适配器以避免静默吞错)
195
+
182
196
  ### v1.3.3
183
197
 
184
198
  修复 QQ 官方机器人不发送图片菜单且无报错的问题。