koishi-plugin-echo-cave 1.7.5 → 1.9.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.
- package/lib/index.cjs +84 -23
- package/lib/index.d.ts +2 -0
- package/package.json +6 -1
package/lib/index.cjs
CHANGED
|
@@ -4,6 +4,9 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __getProtoOf = Object.getPrototypeOf;
|
|
6
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __commonJS = (cb, mod) => function __require() {
|
|
8
|
+
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
9
|
+
};
|
|
7
10
|
var __export = (target, all) => {
|
|
8
11
|
for (var name2 in all)
|
|
9
12
|
__defProp(target, name2, { get: all[name2], enumerable: true });
|
|
@@ -26,6 +29,51 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
26
29
|
));
|
|
27
30
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
31
|
|
|
32
|
+
// src/locales/zh-CN.json
|
|
33
|
+
var require_zh_CN = __commonJS({
|
|
34
|
+
"src/locales/zh-CN.json"(exports2, module2) {
|
|
35
|
+
module2.exports = {
|
|
36
|
+
config: {
|
|
37
|
+
adminMessageProtection: "\u5F00\u542F\u7BA1\u7406\u5458\u6D88\u606F\u4FDD\u62A4\uFF0C\u5F00\u542F\u540E\u7BA1\u7406\u5458\u53D1\u5E03\u7684\u6D88\u606F\u53EA\u80FD\u7531\u7BA1\u7406\u5458\u5220\u9664",
|
|
38
|
+
allowContributorDelete: "\u5141\u8BB8\u6295\u7A3F\u8005\u5220\u9664\u81EA\u5DF1\u6295\u7A3F\u7684\u56DE\u58F0\u6D1E",
|
|
39
|
+
allowSenderDelete: "\u5141\u8BB8\u539F\u59CB\u53D1\u9001\u8005\u5220\u9664\u88AB\u6295\u7A3F\u7684\u56DE\u58F0\u6D1E"
|
|
40
|
+
},
|
|
41
|
+
general: {
|
|
42
|
+
privateChatReminder: "\u274C \u8BF7\u5728\u7FA4\u804A\u4E2D\u4F7F\u7528\u8BE5\u547D\u4EE4\uFF01",
|
|
43
|
+
noMsgWithId: "\u{1F50D} \u672A\u627E\u5230\u8BE5 ID \u7684\u56DE\u58F0\u6D1E\u6D88\u606F"
|
|
44
|
+
},
|
|
45
|
+
commands: {
|
|
46
|
+
cave: {
|
|
47
|
+
description: "\u968F\u673A\u83B7\u53D6 / \u83B7\u53D6\u7279\u5B9A id \u7684\u56DE\u58F0\u6D1E\u4FE1\u606F",
|
|
48
|
+
messages: {
|
|
49
|
+
noMsgInCave: '\u{1F680} \u56DE\u58F0\u6D1E\u4E2D\u6682\u65E0\u6D88\u606F\uFF0C\u5FEB\u4F7F\u7528 "cave.echo" \u547D\u4EE4\u6DFB\u52A0\u7B2C\u4E00\u6761\u6D88\u606F\u5427\uFF01'
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"cave.echo": {
|
|
53
|
+
description: "\u5C06\u6D88\u606F\u5B58\u5165\u56DE\u58F0\u6D1E",
|
|
54
|
+
messages: {
|
|
55
|
+
noMsgQuoted: "\u{1F4A1} \u8BF7\u5F15\u7528\u4E00\u6761\u6D88\u606F\u540E\u518D\u4F7F\u7528\u6B64\u547D\u4EE4\uFF01",
|
|
56
|
+
existingMsg: "\u267B\uFE0F \u8BE5\u6D88\u606F\u5DF2\u5B58\u5728\u4E8E\u56DE\u58F0\u6D1E\u7A74\u4E2D\uFF01",
|
|
57
|
+
msgSaved: "\u2705 \u56DE\u58F0\u6D1E\u6D88\u606F\u5DF2\u6210\u529F\u5B58\u5165\uFF0C\u6D88\u606F ID\uFF1A{0}",
|
|
58
|
+
msgFailedToSave: "\u274C \u56DE\u58F0\u6D1E\u4FDD\u5B58\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\uFF01"
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"cave.wipe": {
|
|
62
|
+
description: "\u62B9\u53BB\u7279\u5B9A id \u7684\u56DE\u58F0\u6D1E\u4FE1\u606F",
|
|
63
|
+
messages: {
|
|
64
|
+
noIdProvided: "\u274C \u8BF7\u63D0\u4F9B\u8981\u5220\u9664\u7684\u56DE\u58F0\u6D1E\u6D88\u606F ID\uFF01",
|
|
65
|
+
adminOnly: "\u26D4 \u8BE5\u6D88\u606F\u7531\u7BA1\u7406\u5458\u53D1\u5E03\uFF0C\u5DF2\u5F00\u542F\u7BA1\u7406\u5458\u6D88\u606F\u4FDD\u62A4\uFF0C\u53EA\u6709\u7BA1\u7406\u5458\u53EF\u4EE5\u5220\u9664\u3002",
|
|
66
|
+
permissionDenied: "\u26D4 \u60A8\u6CA1\u6709\u6743\u9650\u5220\u9664\u6B64\u6D88\u606F\uFF01\u53EA\u6709\u7BA1\u7406\u5458\u53EF\u4EE5\u5220\u9664\u3002",
|
|
67
|
+
contributorDeleteDenied: "\u26D4 \u60A8\u6CA1\u6709\u6743\u9650\u5220\u9664\u6B64\u6D88\u606F\uFF01\u5F53\u524D\u914D\u7F6E\u4E0D\u5141\u8BB8\u6295\u7A3F\u8005\u5220\u9664\u56DE\u58F0\u6D1E\u3002",
|
|
68
|
+
senderDeleteDenied: "\u26D4 \u60A8\u6CA1\u6709\u6743\u9650\u5220\u9664\u6B64\u6D88\u606F\uFF01\u5F53\u524D\u914D\u7F6E\u4E0D\u5141\u8BB8\u539F\u59CB\u53D1\u9001\u8005\u5220\u9664\u56DE\u58F0\u6D1E\u3002",
|
|
69
|
+
msgDeleted: "\u2705 \u5DF2\u6210\u529F\u62B9\u53BB\u56DE\u58F0\u6D1E\u6D88\u606F ID\uFF1A{0}"
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
|
|
29
77
|
// src/index.ts
|
|
30
78
|
var index_exports = {};
|
|
31
79
|
__export(index_exports, {
|
|
@@ -276,9 +324,14 @@ var import_node_path2 = __toESM(require("node:path"), 1);
|
|
|
276
324
|
var name = "echo-cave";
|
|
277
325
|
var inject = ["database"];
|
|
278
326
|
var Config = import_koishi.Schema.object({
|
|
279
|
-
adminMessageProtection: import_koishi.Schema.boolean().
|
|
327
|
+
adminMessageProtection: import_koishi.Schema.boolean().default(false),
|
|
328
|
+
allowContributorDelete: import_koishi.Schema.boolean().default(true),
|
|
329
|
+
allowSenderDelete: import_koishi.Schema.boolean().default(true)
|
|
330
|
+
}).i18n({
|
|
331
|
+
"zh-CN": require_zh_CN().config
|
|
280
332
|
});
|
|
281
333
|
function apply(ctx, cfg) {
|
|
334
|
+
ctx.i18n.define("zh-CN", require_zh_CN());
|
|
282
335
|
const imgPath = import_node_path2.default.join(ctx.baseDir, "data", "cave", "images");
|
|
283
336
|
if (!import_fs.default.existsSync(imgPath)) {
|
|
284
337
|
import_fs.default.mkdirSync(imgPath, { recursive: true });
|
|
@@ -300,13 +353,11 @@ function apply(ctx, cfg) {
|
|
|
300
353
|
unique: ["content"]
|
|
301
354
|
}
|
|
302
355
|
);
|
|
303
|
-
ctx.command("cave [id:number]"
|
|
356
|
+
ctx.command("cave [id:number]").action(
|
|
304
357
|
async ({ session }, id) => await getCave(ctx, session, id)
|
|
305
358
|
);
|
|
306
|
-
ctx.command("cave.echo"
|
|
307
|
-
|
|
308
|
-
);
|
|
309
|
-
ctx.command("cave.wipe <id:number>", "\u62B9\u53BB\u7279\u5B9A id \u7684\u56DE\u58F0\u6D1E\u4FE1\u606F").action(
|
|
359
|
+
ctx.command("cave.echo").action(async ({ session }) => await addCave(ctx, session));
|
|
360
|
+
ctx.command("cave.wipe <id:number>").action(
|
|
310
361
|
async ({ session }, id) => await deleteCave(ctx, session, cfg, id)
|
|
311
362
|
);
|
|
312
363
|
ctx.command("cave.listen", "\u83B7\u5F97\u7531\u81EA\u5DF1\u6295\u7A3F\u7684\u56DE\u58F0\u6D1E\u5217\u8868").action(
|
|
@@ -318,7 +369,7 @@ function apply(ctx, cfg) {
|
|
|
318
369
|
}
|
|
319
370
|
async function getCaveListByUser(ctx, session) {
|
|
320
371
|
if (!session.guildId) {
|
|
321
|
-
return "
|
|
372
|
+
return session.text("general.privateChatReminder");
|
|
322
373
|
}
|
|
323
374
|
const { userId, channelId } = session;
|
|
324
375
|
const caves = await ctx.database.get("echo_cave", {
|
|
@@ -338,7 +389,7 @@ async function getCaveListByUser(ctx, session) {
|
|
|
338
389
|
}
|
|
339
390
|
async function getCaveListByOriginUser(ctx, session) {
|
|
340
391
|
if (!session.guildId) {
|
|
341
|
-
return "
|
|
392
|
+
return session.text("general.privateChatReminder");
|
|
342
393
|
}
|
|
343
394
|
const { userId, channelId } = session;
|
|
344
395
|
const caves = await ctx.database.get("echo_cave", {
|
|
@@ -358,7 +409,7 @@ async function getCaveListByOriginUser(ctx, session) {
|
|
|
358
409
|
}
|
|
359
410
|
async function getCave(ctx, session, id) {
|
|
360
411
|
if (!session.guildId) {
|
|
361
|
-
return "
|
|
412
|
+
return session.text("general.privateChatReminder");
|
|
362
413
|
}
|
|
363
414
|
let caveMsg;
|
|
364
415
|
const { channelId } = session;
|
|
@@ -367,7 +418,7 @@ async function getCave(ctx, session, id) {
|
|
|
367
418
|
channelId
|
|
368
419
|
});
|
|
369
420
|
if (caves.length === 0) {
|
|
370
|
-
return
|
|
421
|
+
return session.text(".noMsgInCave");
|
|
371
422
|
}
|
|
372
423
|
caveMsg = caves[Math.floor(Math.random() * caves.length)];
|
|
373
424
|
} else {
|
|
@@ -376,7 +427,7 @@ async function getCave(ctx, session, id) {
|
|
|
376
427
|
channelId
|
|
377
428
|
});
|
|
378
429
|
if (caves.length === 0) {
|
|
379
|
-
return "
|
|
430
|
+
return session.text("general.noMsgWithId");
|
|
380
431
|
}
|
|
381
432
|
caveMsg = caves[0];
|
|
382
433
|
}
|
|
@@ -384,14 +435,14 @@ async function getCave(ctx, session, id) {
|
|
|
384
435
|
}
|
|
385
436
|
async function deleteCave(ctx, session, cfg, id) {
|
|
386
437
|
if (!session.guildId) {
|
|
387
|
-
return "
|
|
438
|
+
return session.text("general.privateChatReminder");
|
|
388
439
|
}
|
|
389
440
|
if (!id) {
|
|
390
|
-
return "
|
|
441
|
+
return session.text(".noIdProvided");
|
|
391
442
|
}
|
|
392
443
|
const caves = await ctx.database.get("echo_cave", id);
|
|
393
444
|
if (caves.length === 0) {
|
|
394
|
-
return "
|
|
445
|
+
return session.text("general.noMsgWithId");
|
|
395
446
|
}
|
|
396
447
|
const caveMsg = caves[0];
|
|
397
448
|
const currentUserId = session.userId;
|
|
@@ -402,21 +453,31 @@ async function deleteCave(ctx, session, cfg, id) {
|
|
|
402
453
|
const caveUser = await ctx.database.getUser(session.platform, caveMsg.userId);
|
|
403
454
|
const isCaveUserAdmin = caveUser.authority >= 4;
|
|
404
455
|
if (isCaveUserAdmin && !isCurrentUserAdmin) {
|
|
405
|
-
return "
|
|
456
|
+
return session.text(".adminOnly");
|
|
406
457
|
}
|
|
407
458
|
}
|
|
408
|
-
if (
|
|
409
|
-
|
|
459
|
+
if (!isCurrentUserAdmin) {
|
|
460
|
+
if (currentUserId === caveMsg.userId) {
|
|
461
|
+
if (!cfg.allowContributorDelete) {
|
|
462
|
+
return session.text(".contributorDeleteDenied");
|
|
463
|
+
}
|
|
464
|
+
} else if (currentUserId === caveMsg.originUserId) {
|
|
465
|
+
if (!cfg.allowSenderDelete) {
|
|
466
|
+
return session.text(".senderDeleteDenied");
|
|
467
|
+
}
|
|
468
|
+
} else {
|
|
469
|
+
return session.text(".permissionDenied");
|
|
470
|
+
}
|
|
410
471
|
}
|
|
411
472
|
await ctx.database.remove("echo_cave", id);
|
|
412
|
-
return
|
|
473
|
+
return session.text(".msgDeleted", [id]);
|
|
413
474
|
}
|
|
414
475
|
async function addCave(ctx, session) {
|
|
415
476
|
if (!session.guildId) {
|
|
416
|
-
return "
|
|
477
|
+
return session.text("general.privateChatReminder");
|
|
417
478
|
}
|
|
418
479
|
if (!session.quote) {
|
|
419
|
-
return "
|
|
480
|
+
return session.text(".noMsgQuoted");
|
|
420
481
|
}
|
|
421
482
|
const { userId, channelId, quote } = session;
|
|
422
483
|
const messageId = quote.id;
|
|
@@ -442,7 +503,7 @@ async function addCave(ctx, session) {
|
|
|
442
503
|
}
|
|
443
504
|
await ctx.database.get("echo_cave", { content }).then((existing) => {
|
|
444
505
|
if (existing) {
|
|
445
|
-
return "
|
|
506
|
+
return session.text(".existingMsg");
|
|
446
507
|
}
|
|
447
508
|
});
|
|
448
509
|
try {
|
|
@@ -454,9 +515,9 @@ async function addCave(ctx, session) {
|
|
|
454
515
|
type,
|
|
455
516
|
content
|
|
456
517
|
});
|
|
457
|
-
return
|
|
518
|
+
return session.text(".msgSaved", [result.id]);
|
|
458
519
|
} catch (error) {
|
|
459
|
-
return "
|
|
520
|
+
return session.text(".msgFailedToSave");
|
|
460
521
|
}
|
|
461
522
|
}
|
|
462
523
|
// Annotate the CommonJS export names for ESM import in node:
|
package/lib/index.d.ts
CHANGED
|
@@ -4,6 +4,8 @@ export declare const name = "echo-cave";
|
|
|
4
4
|
export declare const inject: string[];
|
|
5
5
|
export interface Config {
|
|
6
6
|
adminMessageProtection?: boolean;
|
|
7
|
+
allowContributorDelete?: boolean;
|
|
8
|
+
allowSenderDelete?: boolean;
|
|
7
9
|
}
|
|
8
10
|
export declare const Config: Schema<Config>;
|
|
9
11
|
export interface EchoCave {
|
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
|
+
"version": "1.9.0",
|
|
5
5
|
"main": "lib/index.cjs",
|
|
6
6
|
"typings": "lib/index.d.ts",
|
|
7
7
|
"type": "module",
|
|
@@ -23,6 +23,11 @@
|
|
|
23
23
|
"plugin",
|
|
24
24
|
"cave"
|
|
25
25
|
],
|
|
26
|
+
"koishi": {
|
|
27
|
+
"locales": [
|
|
28
|
+
"zh"
|
|
29
|
+
]
|
|
30
|
+
},
|
|
26
31
|
"peerDependencies": {
|
|
27
32
|
"koishi": "^4.18.9"
|
|
28
33
|
},
|