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.
- package/lib/index.js +15 -13
- package/package.json +1 -1
- 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}
|
|
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.
|
|
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("咕咕之战", "查看咕咕之战内容分类菜单").
|
|
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
package/readme.md
CHANGED
|
@@ -108,7 +108,7 @@ npm install koishi-plugin-ggcevo
|
|
|
108
108
|
|
|
109
109
|
| 指令 | 别名 | 权限 | 说明 |
|
|
110
110
|
| --- | --- | --- | --- |
|
|
111
|
-
| `咕咕之战` |
|
|
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 官方机器人不发送图片菜单且无报错的问题。
|