koishi-plugin-echo-cave 1.32.3 → 1.33.0

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.
@@ -21,6 +21,7 @@ export interface Config {
21
21
  enableForwardUserSelection?: boolean;
22
22
  autoBindSingleForwardUser?: boolean;
23
23
  forwardSpecialUserHandlingMode?: ForwardSpecialUserHandlingMode;
24
+ enablePokeTrigger?: boolean;
24
25
  alpha?: number;
25
26
  mediaStorage?: 'local' | 's3';
26
27
  s3UploadFailureFallbackMode?: S3UploadFailureFallbackMode;
package/lib/index.cjs CHANGED
@@ -4101,6 +4101,7 @@ var zh_CN_default2 = {
4101
4101
  enableForwardUserSelection: "\u662F\u5426\u542F\u7528\u5408\u5E76\u8F6C\u53D1\u6D88\u606F\u7684\u5173\u8054\u7528\u6237\u9009\u62E9\u529F\u80FD",
4102
4102
  autoBindSingleForwardUser: "\u5408\u5E76\u8F6C\u53D1\u6D88\u606F\u4EC5\u8BC6\u522B\u5230\u4E00\u4E2A\u7528\u6237\u65F6\uFF0C\u662F\u5426\u9ED8\u8BA4\u81EA\u52A8\u7ED1\u5B9A\u8BE5\u7528\u6237",
4103
4103
  forwardSpecialUserHandlingMode: "\u68C0\u6D4B\u5230\u7279\u6B8A\u7528\u6237 1094950020 \u65F6\u7684\u5904\u7406\u65B9\u5F0F\uFF1Aignore \u4E3A\u5FFD\u7565\uFF0Creject \u4E3A\u63D0\u9192\u5E76\u62D2\u7EDD\u5B58\u50A8\uFF0Cconfirm \u4E3A\u63D0\u9192\u3001\u5C55\u793A\u8F6C\u53D1\u5185\u5BB9\u5E76\u8981\u6C42\u786E\u8BA4\u540E\u518D\u5B58\u50A8",
4104
+ enablePokeTrigger: "\u5728\u7FA4\u804A\u4E2D\u62CD\u4E00\u62CD\u673A\u5668\u4EBA\u65F6\uFF0C\u662F\u5426\u89E6\u53D1\u4E0E cave \u6307\u4EE4\u76F8\u540C\u7684\u968F\u673A\u62BD\u53D6\u6548\u679C\uFF08\u4EC5 OneBot/NapCat \u7B49\u652F\u6301 notify.poke \u4E8B\u4EF6\u7684\u9002\u914D\u5668\u6709\u6548\uFF09",
4104
4105
  alpha: "\u52A0\u6743\u968F\u673A\u62BD\u53D6\u7684\u8C03\u6574\u56E0\u5B50\uFF0C\u63A7\u5236\u62BD\u53D6\u6B21\u6570\u5BF9\u6982\u7387\u7684\u5F71\u54CD\u7A0B\u5EA6\uFF0C\u503C\u8D8A\u5927\u5F71\u54CD\u8D8A\u660E\u663E",
4105
4106
  mediaStorage: "\u5A92\u4F53\u5B58\u50A8\u65B9\u5F0F\uFF1Alocal \u4E3A\u672C\u5730\uFF0Cs3 \u4E3A\u5BF9\u8C61\u5B58\u50A8",
4106
4107
  s3UploadFailureFallbackMode: "\u4EC5\u5728\u5A92\u4F53\u5B58\u50A8\u65B9\u5F0F\u4E3A s3 \u65F6\u751F\u6548\uFF1AS3 \u4E0A\u4F20\u5931\u8D25\u540E\u56DE\u9000\u5230\u672C\u5730\u5B58\u50A8\uFF0C\u6216\u4FDD\u7559\u539F\u59CB\u94FE\u63A5",
@@ -4135,7 +4136,8 @@ var Config = import_koishi2.Schema.intersect([
4135
4136
  enableForwardUserSelection: import_koishi2.Schema.boolean().default(true),
4136
4137
  forwardSelectTimeout: import_koishi2.Schema.number().default(20),
4137
4138
  autoBindSingleForwardUser: import_koishi2.Schema.boolean().default(false),
4138
- forwardSpecialUserHandlingMode: import_koishi2.Schema.union(["ignore", "reject", "confirm"]).default("ignore")
4139
+ forwardSpecialUserHandlingMode: import_koishi2.Schema.union(["ignore", "reject", "confirm"]).default("ignore"),
4140
+ enablePokeTrigger: import_koishi2.Schema.boolean().default(true)
4139
4141
  }).description("\u6D88\u606F\u884C\u4E3A"),
4140
4142
  import_koishi2.Schema.object({
4141
4143
  deleteMediaWhenDeletingMsg: import_koishi2.Schema.boolean().default(true),
@@ -4277,6 +4279,25 @@ function apply(ctx, cfg) {
4277
4279
  }
4278
4280
  });
4279
4281
  ctx.command("cave [target:text]").action(async ({ session }, target) => await getCave(ctx, session, cfg, target));
4282
+ const pokeCooldown = /* @__PURE__ */ new Map();
4283
+ const POKE_COOLDOWN_MS = 5e3;
4284
+ ctx.on("notice", async (session) => {
4285
+ if (session.platform !== "onebot") return;
4286
+ if (session.subtype !== "poke") return;
4287
+ if (!session.guildId) return;
4288
+ if (session["targetId"] !== session.selfId) return;
4289
+ if (cfg.enablePokeTrigger === false) return;
4290
+ const key = `${session.channelId}:${session.userId}`;
4291
+ const now = Date.now();
4292
+ if (now - (pokeCooldown.get(key) ?? 0) < POKE_COOLDOWN_MS) return;
4293
+ if (pokeCooldown.size >= 256) {
4294
+ for (const [k, t] of pokeCooldown) {
4295
+ if (now - t > POKE_COOLDOWN_MS) pokeCooldown.delete(k);
4296
+ }
4297
+ }
4298
+ pokeCooldown.set(key, now);
4299
+ await session.execute("cave");
4300
+ });
4280
4301
  ctx.command("cave.pic").action(async ({ session }) => await getCave(ctx, session, cfg, void 0, true));
4281
4302
  ctx.command("cave.listen").action(async ({ session }) => await getCaveListByUser(ctx, session));
4282
4303
  ctx.command("cave.trace").action(async ({ session }) => await getCaveListByOriginUser(ctx, session));
package/lib/index.d.ts CHANGED
@@ -42,5 +42,8 @@ declare module 'koishi' {
42
42
  echo_cave_send_failure: EchoCaveSendFailure;
43
43
  echo_cave_user_state: EchoCaveUserState;
44
44
  }
45
+ interface Events {
46
+ notice(session: Session): void;
47
+ }
45
48
  }
46
49
  export declare function apply(ctx: Context, cfg: Config): void;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "koishi-plugin-echo-cave",
3
3
  "description": "Group echo cave",
4
- "version": "1.32.3",
4
+ "version": "1.33.0",
5
5
  "main": "lib/index.cjs",
6
6
  "typings": "lib/index.d.ts",
7
7
  "type": "module",