koishi-plugin-echo-cave 1.25.2 → 1.26.1

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 +46 -40
  2. package/package.json +1 -1
package/lib/index.cjs CHANGED
@@ -405,6 +405,7 @@ async function addCave(ctx, session, cfg, userIds) {
405
405
  }
406
406
  }
407
407
  }
408
+ let selectedUsersWithNames = [];
408
409
  let content;
409
410
  let type;
410
411
  let forwardUsers = [];
@@ -447,49 +448,54 @@ async function addCave(ctx, session, cfg, userIds) {
447
448
  content = JSON.stringify(await processMessageContent(ctx, msgJson, cfg));
448
449
  }
449
450
  if (type === "forward" && forwardUsers.length > 0 && parsedUserIds.length === 0 && cfg.enableForwardUserSelection) {
450
- const userSelectionPromise = new Promise((resolve) => {
451
- let prompt = session.text(".selectRelatedUsers");
452
- forwardUsers.forEach((user, index) => {
453
- prompt += `
451
+ const userSelectionPromise = new Promise(
452
+ (resolve) => {
453
+ let prompt = session.text(".selectRelatedUsers");
454
+ forwardUsers.forEach((user, index) => {
455
+ prompt += `
454
456
  ${index + 1}: ${user.nickname}`;
455
- });
456
- prompt += `
457
+ });
458
+ prompt += `
457
459
  ${session.text(".selectInstruction")}`;
458
- listenForUserMessage(
459
- ctx,
460
- session,
461
- prompt,
462
- cfg.forwardSelectTimeout * 1e3,
463
- // Convert seconds to milliseconds
464
- async (message) => {
465
- const trimmedMessage = message.trim();
466
- let selectedUsers = [];
467
- if (trimmedMessage.toLowerCase() === "all") {
468
- selectedUsers = forwardUsers.map((user) => user.userId);
469
- } else if (trimmedMessage.toLowerCase() === "skip") {
470
- selectedUsers = [];
471
- } else {
472
- const indices = trimmedMessage.split(/\s+/).map((index) => parseInt(index.trim()) - 1);
473
- const validIndices = indices.filter(
474
- (index) => index >= 0 && index < forwardUsers.length
475
- );
476
- if (validIndices.length > 0) {
477
- selectedUsers = validIndices.map((index) => forwardUsers[index].userId);
460
+ listenForUserMessage(
461
+ ctx,
462
+ session,
463
+ prompt,
464
+ cfg.forwardSelectTimeout * 1e3,
465
+ // Convert seconds to milliseconds
466
+ async (message) => {
467
+ const trimmedMessage = message.trim();
468
+ let selectedUsers = [];
469
+ if (trimmedMessage.toLowerCase() === "all") {
470
+ selectedUsers = [...forwardUsers];
471
+ } else if (trimmedMessage.toLowerCase() === "skip") {
472
+ selectedUsers = [];
478
473
  } else {
479
- await session.send(session.text(".invalidSelection"));
480
- return true;
474
+ const indices = trimmedMessage.split(/\s+/).map((index) => parseInt(index.trim()) - 1);
475
+ const validIndices = indices.filter(
476
+ (index) => index >= 0 && index < forwardUsers.length
477
+ );
478
+ if (validIndices.length > 0) {
479
+ selectedUsers = validIndices.map((index) => forwardUsers[index]);
480
+ } else {
481
+ await session.send(session.text(".invalidSelection"));
482
+ return true;
483
+ }
481
484
  }
485
+ resolve(selectedUsers);
486
+ return false;
487
+ },
488
+ async () => {
489
+ resolve([]);
482
490
  }
483
- resolve(selectedUsers);
484
- return false;
485
- },
486
- async () => {
487
- resolve([]);
488
- }
489
- );
490
- });
491
- parsedUserIds = await userSelectionPromise;
491
+ );
492
+ }
493
+ );
494
+ selectedUsersWithNames = await userSelectionPromise;
492
495
  }
496
+ const finalParsedUserIds = selectedUsersWithNames.map((user) => user.userId);
497
+ const originName = await getUserName(ctx, session, quote.user.id);
498
+ const relatedUsersFormatted = selectedUsersWithNames.length !== 0 ? selectedUsersWithNames.map((user) => user.nickname).join(", ") : originName;
493
499
  try {
494
500
  const result = await ctx.database.create("echo_cave_v2", {
495
501
  channelId,
@@ -498,9 +504,9 @@ ${session.text(".selectInstruction")}`;
498
504
  originUserId: quote.user.id,
499
505
  type,
500
506
  content,
501
- relatedUsers: parsedUserIds || []
507
+ relatedUsers: finalParsedUserIds
502
508
  });
503
- return session.text(".msgSaved", [result.id]);
509
+ return session.text(".msgSaved", { id: result.id, relatedUsers: relatedUsersFormatted });
504
510
  } catch (error) {
505
511
  return session.text(".msgFailedToSave");
506
512
  }
@@ -1054,7 +1060,7 @@ var zh_CN_default = {
1054
1060
  description: "\u5C06\u6D88\u606F\u5B58\u5165\u56DE\u58F0\u6D1E",
1055
1061
  messages: {
1056
1062
  noMsgQuoted: "\u{1F4A1} \u8BF7\u5F15\u7528\u4E00\u6761\u6D88\u606F\u540E\u518D\u4F7F\u7528\u6B64\u547D\u4EE4\uFF01",
1057
- msgSaved: "\u2705 \u56DE\u58F0\u6D1E\u6D88\u606F\u5DF2\u6210\u529F\u5B58\u5165\uFF0C\u6D88\u606F ID\uFF1A{0}",
1063
+ msgSaved: "\u2705 \u56DE\u58F0\u6D1E\u6D88\u606F\u5DF2\u6210\u529F\u5B58\u5165\uFF0C\u6D88\u606F ID\uFF1A{id}",
1058
1064
  msgFailedToSave: "\u274C \u56DE\u58F0\u6D1E\u4FDD\u5B58\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\uFF01",
1059
1065
  selectRelatedUsers: "\u8BF7\u9009\u62E9\u8981\u5173\u8054\u7684\u7528\u6237\uFF08\u4EE5\u7A7A\u683C\u5206\u9694\u5E8F\u53F7\uFF0C\u8F93\u5165'all'\u9009\u62E9\u5168\u90E8\uFF09\uFF1A",
1060
1066
  selectInstruction: "\u8F93\u5165\u793A\u4F8B\uFF1A1 3 \u6216 all \u6216 skip",
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.25.2",
4
+ "version": "1.26.1",
5
5
  "main": "lib/index.cjs",
6
6
  "typings": "lib/index.d.ts",
7
7
  "type": "module",