koishi-plugin-echo-cave 1.4.0 → 1.5.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.
Files changed (2) hide show
  1. package/lib/index.cjs +29 -3
  2. package/package.json +1 -1
package/lib/index.cjs CHANGED
@@ -264,20 +264,43 @@ function apply(ctx) {
264
264
  "cave [id:number]",
265
265
  "\u968F\u673A\u83B7\u53D6 / \u83B7\u53D6\u7279\u5B9A id \u7684\u56DE\u58F0\u6D1E\u4FE1\u606F"
266
266
  ).action(async ({ session }, id) => await getCave(ctx, session, id));
267
- ctx.command("cave.echo", "\u5C06\u6D88\u606F\u5B58\u5165\u56DE\u58F0\u6D1E\u7A74").action(
267
+ ctx.command("cave.echo", "\u5C06\u6D88\u606F\u5B58\u5165\u56DE\u58F0\u6D1E").action(
268
268
  async ({ session }) => await addCave(ctx, session)
269
269
  );
270
270
  ctx.command("cave.wipe <id:number>", "\u62B9\u53BB\u7279\u5B9A id \u7684\u56DE\u58F0\u6D1E\u4FE1\u606F").action(
271
271
  async ({ session }, id) => await deleteCave(ctx, session, id)
272
272
  );
273
+ ctx.command("cave.listen", "\u83B7\u5F97\u7531\u81EA\u5DF1\u6295\u7A3F\u7684\u56DE\u58F0\u6D1E\u5217\u8868").action(
274
+ async ({ session }) => await getCaveListByUser(ctx, session)
275
+ );
276
+ }
277
+ async function getCaveListByUser(ctx, session) {
278
+ if (!session.guildId) {
279
+ return "\u274C \u8BF7\u5728\u7FA4\u804A\u4E2D\u4F7F\u7528\u8BE5\u547D\u4EE4\uFF01";
280
+ }
281
+ const { userId, channelId } = session;
282
+ const caves = await ctx.database.get("echo_cave", {
283
+ userId,
284
+ channelId
285
+ });
286
+ if (caves.length === 0) {
287
+ return '\u{1F680} \u60A8\u5728\u56DE\u58F0\u6D1E\u4E2D\u6682\u65E0\u6295\u7A3F\uFF0C\u5FEB\u4F7F\u7528 "cave.echo" \u547D\u4EE4\u6DFB\u52A0\u7B2C\u4E00\u6761\u6D88\u606F\u5427\uFF01';
288
+ }
289
+ let response = `\u{1F4DC} \u60A8\u5728\u672C\u9891\u9053\u6295\u7A3F\u7684\u56DE\u58F0\u6D1E\u6D88\u606F\u5217\u8868\uFF1A
290
+ `;
291
+ for (const cave of caves) {
292
+ response += `ID: ${cave.id} | \u521B\u5EFA\u65F6\u95F4: ${formatDate(cave.createTime)}
293
+ `;
294
+ }
295
+ return response;
273
296
  }
274
297
  async function getCave(ctx, session, id) {
275
298
  if (!session.guildId) {
276
299
  return "\u274C \u8BF7\u5728\u7FA4\u804A\u4E2D\u4F7F\u7528\u8BE5\u547D\u4EE4\uFF01";
277
300
  }
278
301
  let caveMsg;
302
+ const { channelId } = session;
279
303
  if (!id) {
280
- const { channelId } = session;
281
304
  const caves = await ctx.database.get("echo_cave", {
282
305
  channelId
283
306
  });
@@ -286,7 +309,10 @@ async function getCave(ctx, session, id) {
286
309
  }
287
310
  caveMsg = caves[Math.floor(Math.random() * caves.length)];
288
311
  } else {
289
- const caves = await ctx.database.get("echo_cave", id);
312
+ const caves = await ctx.database.get("echo_cave", {
313
+ id,
314
+ channelId
315
+ });
290
316
  if (caves.length === 0) {
291
317
  return "\u{1F50D} \u672A\u627E\u5230\u8BE5 ID \u7684\u56DE\u58F0\u6D1E\u6D88\u606F";
292
318
  }
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.4.0",
4
+ "version": "1.5.0",
5
5
  "main": "lib/index.cjs",
6
6
  "typings": "lib/index.d.ts",
7
7
  "type": "module",