@kotori-bot/kotori-plugin-core 1.3.0 → 1.4.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.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- import { Context } from 'kotori-bot';
1
+ import { type Context } from 'kotori-bot';
2
2
  export declare const lang: string[];
3
3
  export declare function main(ctx: Context): void;
package/lib/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
 
2
2
  /**
3
3
  * @Package @kotori-bot/kotori-plugin-core
4
- * @Version 1.3.0
5
- * @Author Hotaru <biyuehuya@gmail.com>
4
+ * @Version 1.4.0
5
+ * @Author Hotaru <me@hotaru.icu>
6
6
  * @Copyright 2024 Hotaru. All rights reserved.
7
7
  * @License GPL-3.0
8
8
  * @Link https://github.com/kotorijs/kotori
9
- * @Date 2024/6/6 21:03:44
9
+ * @Date 2024/8/8 20:54:06
10
10
  */
11
11
 
12
12
  "use strict";
@@ -27,8 +27,6 @@ var __copyProps = (to, from, except, desc) => {
27
27
  return to;
28
28
  };
29
29
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
-
31
- // src/index.ts
32
30
  var src_exports = {};
33
31
  __export(src_exports, {
34
32
  lang: () => lang,
@@ -36,20 +34,20 @@ __export(src_exports, {
36
34
  });
37
35
  module.exports = __toCommonJS(src_exports);
38
36
  var import_kotori_bot = require("kotori-bot");
39
- var lang = [__dirname, "../locales"];
37
+ const lang = [__dirname, "../locales"];
40
38
  function main(ctx) {
41
- ctx.on("parse", (data) => {
42
- const { quick } = data.session;
39
+ ctx.on("before_command", (data) => {
40
+ const quick = data.session.quick.bind(data.session);
43
41
  if (!(data.result instanceof import_kotori_bot.CommandError)) {
44
42
  const { scope, access } = data.command.meta;
45
43
  if (scope && scope !== "all" && data.session.type !== scope) {
46
44
  quick("corei18n.template.scope");
47
45
  data.cancel();
48
- } else if (data.session.userId !== data.session.api.adapter.config.master) {
49
- if (access === import_kotori_bot.CommandAccess.ADMIN) {
46
+ } else if (String(data.session.userId) !== String(data.session.api.adapter.config.master)) {
47
+ if (access === import_kotori_bot.UserAccess.ADMIN) {
50
48
  quick("corei18n.template.no_access_admin");
51
49
  data.cancel();
52
- } else if (access === import_kotori_bot.CommandAccess.MANGER && (data.session.type === import_kotori_bot.MessageScope.PRIVATE || data.session.sender.role === "member")) {
50
+ } else if (access === import_kotori_bot.UserAccess.MANGER && (data.session.type === import_kotori_bot.MessageScope.PRIVATE || data.session.type === import_kotori_bot.MessageScope.GROUP && !["owner", "admin"].includes(data.session.sender.role))) {
53
51
  quick("corei18n.template.no_access_manger");
54
52
  data.cancel();
55
53
  }
@@ -74,17 +72,17 @@ function main(ctx) {
74
72
  case "syntax":
75
73
  quick(["corei18n.template.syntax", [value.index, value.char]]);
76
74
  break;
77
- case "unknown":
78
- quick(["corei18n.template.unknown", [value.input]]);
79
- break;
80
75
  default:
81
76
  }
82
77
  });
83
- ctx.on("command", (data) => {
84
- if (!(data.result instanceof import_kotori_bot.CommandError)) return;
85
- const { value } = data.result;
86
- const { quick } = data.session;
78
+ ctx.on("command", ({ result, session }) => {
79
+ if (!(result instanceof import_kotori_bot.CommandError)) return;
80
+ const { value } = result;
81
+ const quick = session.quick.bind(session);
87
82
  switch (value.type) {
83
+ case "unknown":
84
+ quick(["corei18n.template.unknown", [value.input]]);
85
+ break;
88
86
  case "res_error":
89
87
  quick(["corei18n.template.res_error", [value.error.message]]);
90
88
  break;
@@ -107,7 +105,7 @@ function main(ctx) {
107
105
  quick(["corei18n.template.no_exists", [value.target]]);
108
106
  break;
109
107
  case "error":
110
- ctx.logger.error(value.error);
108
+ ctx.emit("error", value.error instanceof Error ? value.error : new import_kotori_bot.ModuleError(String(value.error)));
111
109
  if (value.error instanceof import_kotori_bot.TsuError) {
112
110
  quick(["corei18n.template.res_error", [value.error.message]]);
113
111
  return;
@@ -123,99 +121,96 @@ function main(ctx) {
123
121
  quick(["corei18n.template.error", [String(value.error)]]);
124
122
  break;
125
123
  case "data_error":
126
- quick([
127
- `corei18n.template.data_error.${typeof value.target === "string" ? "options" : "args"}`,
128
- [value.target]
129
- ]);
124
+ quick([`corei18n.template.data_error.${typeof value.target === "string" ? "options" : "args"}`, [value.target]]);
130
125
  break;
131
126
  default:
132
127
  }
133
128
  });
134
- ctx.command("core - core.descr.core").action((_, session) => {
129
+ ctx.filter({
130
+ test: import_kotori_bot.FilterTestList.USER_ID,
131
+ operator: "==",
132
+ value: "114514"
133
+ }).command("core - core.descr.core").action((_, session) => {
135
134
  const { config, baseDir, options } = session.api.adapter.ctx;
136
- let botsLength = 0;
137
- ctx[import_kotori_bot.Symbols.bot].forEach(
138
- (bots) => bots.forEach(() => {
139
- botsLength += 1;
140
- })
141
- );
142
- return [
143
- "core.msg.core",
144
- {
145
- lang: config.global.lang,
146
- root: baseDir.root,
147
- mode: options.mode,
148
- modules: ctx[import_kotori_bot.Symbols.modules] ? ctx[import_kotori_bot.Symbols.modules].size : 0,
149
- services: ctx[import_kotori_bot.Symbols.adapter].size,
150
- bots: botsLength,
151
- midwares: ctx[import_kotori_bot.Symbols.midware].size,
152
- commands: ctx[import_kotori_bot.Symbols.command].size,
153
- regexps: ctx[import_kotori_bot.Symbols.regexp].size
154
- }
155
- ];
135
+ const botsLength = Array.from(ctx[import_kotori_bot.Symbols.bot].values()).map((set) => Array.from(set.values()).length).reduce((a, b) => a + b, 0);
136
+ return session.format("core.msg.core", {
137
+ lang: config.global.lang,
138
+ root: baseDir.root,
139
+ mode: options.mode,
140
+ modules: ctx[import_kotori_bot.Symbols.modules] ? ctx[import_kotori_bot.Symbols.modules].size : 0,
141
+ services: ctx[import_kotori_bot.Symbols.adapter].size,
142
+ bots: botsLength,
143
+ midwares: ctx[import_kotori_bot.Symbols.midware].size,
144
+ commands: ctx[import_kotori_bot.Symbols.command].size,
145
+ regexps: ctx[import_kotori_bot.Symbols.regexp].size
146
+ });
156
147
  });
157
148
  ctx.command("bot - core.descr.bot").action((_, session) => {
158
149
  const { identity, platform, selfId, config, status } = session.api.adapter;
159
- return [
160
- "core.msg.bot",
161
- {
162
- identity,
163
- lang: config.lang,
164
- platform,
165
- self_id: selfId,
166
- create_time: session.i18n.time(status.createTime),
167
- last_msg_time: status.lastMsgTime ? session.i18n.time(status.lastMsgTime) : "",
168
- received_msg: status.receivedMsg,
169
- sent_msg: status.sentMsg,
170
- offline_times: status.offlineTimes
171
- }
172
- ];
173
- });
174
- ctx.command("bots - core.descr.bots").action((_, session) => {
175
- let list = "";
176
- ctx[import_kotori_bot.Symbols.bot].forEach(
177
- (bots) => bots.forEach((bot) => {
178
- const { identity, platform, config, status } = bot.adapter;
179
- list += session.format("core.msg.bots.list", {
180
- identity,
181
- lang: config.lang,
182
- platform,
183
- status: status.value
184
- });
185
- })
186
- );
187
- return ["core.msg.bots", { list }];
150
+ return session.format("core.msg.bot", {
151
+ identity,
152
+ lang: config.lang,
153
+ platform,
154
+ self_id: selfId,
155
+ create_time: session.i18n.time(status.createTime),
156
+ last_msg_time: status.lastMsgTime ? session.i18n.time(status.lastMsgTime) : "",
157
+ received_msg: status.receivedMsg,
158
+ sent_msg: status.sentMsg,
159
+ offline_times: status.offlineTimes
160
+ });
188
161
  });
189
- ctx.command("about - core.descr.about").action((_, session) => {
190
- const { version, license } = session.api.adapter.ctx.pkg;
191
- return ["core.msg.about", { version, license, node_version: process.version }];
162
+ ctx.command("bots - core.descr.bots").action(
163
+ (_, session) => session.format("core.msg.bots", {
164
+ list: Array.from(ctx[import_kotori_bot.Symbols.bot].values()).map(
165
+ (bots) => Array.from(bots.values()).map(
166
+ ({ adapter: { identity, platform, config, status } }) => session.format("core.msg.bots.list", {
167
+ identity,
168
+ lang: config.lang,
169
+ platform,
170
+ status: status.value
171
+ })
172
+ ).join("")
173
+ ).join("")
174
+ })
175
+ );
176
+ ctx.command("about - core.descr.about").alias("version").shortcut(["\u5C0F\u9E1F", "\u5C0F\u9CE5", "\u3053\u3068\u308A", "kotori", "Kotori"]).hide().action((_, session) => {
177
+ const { version, license, coreVersion, loaderVersion } = session.api.adapter.ctx.meta;
178
+ return session.format("core.msg.about", {
179
+ version,
180
+ license,
181
+ core_version: coreVersion,
182
+ loader_version: loaderVersion,
183
+ node_version: process.version
184
+ });
192
185
  });
193
- ctx.command("locale <lang> - core.descr.locale").option("G", "global:boolean - core.option.locale.global").action(({ args: [lang2], options: { global } }, session) => {
186
+ ctx.command("locale <lang> - core.descr.locale").option("G", "global:boolean core.option.locale.global").action(({ args: [lang2], options: { global } }, session) => {
194
187
  const { adapter } = session.api;
195
188
  if (!["en_US", "ja_JP", "zh_CN", "zh_TW"].includes(lang2)) return "core.msg.locale.invalid";
196
189
  if (global) {
197
190
  adapter.ctx.root.config.global.lang = lang2;
198
- adapter.ctx[import_kotori_bot.Symbols.bot].forEach(
199
- (apis) => apis.forEach((api) => {
200
- const { adapter: adapter2 } = api;
201
- adapter2.config.lang = lang2;
202
- })
203
- );
191
+ for (const apis of adapter.ctx[import_kotori_bot.Symbols.bot].values()) {
192
+ for (const { adapter: adapter2 } of apis.values()) adapter2.config.lang = lang2;
193
+ }
204
194
  } else {
205
195
  adapter.config.lang = lang2;
206
196
  }
207
- return session.quick([`core.msg.locale${global ? ".global" : ""}`, { lang: lang2 }]);
197
+ return session.format(`core.msg.locale${global ? ".global" : ""}`, { lang: lang2 });
208
198
  });
209
- ctx.command("module - core.descr.module").action((_, session) => {
210
- let list = "";
211
- ctx[import_kotori_bot.Symbols.modules].forEach(([{ pkg }]) => {
212
- list += session.format("core.msg.module.list", {
213
- name: pkg.name,
214
- version: pkg.version,
215
- description: pkg.description
216
- });
199
+ ctx.command("module [name] - core.descr.module").action(({ args: [name] }, session) => {
200
+ let modulesList = Array.from(ctx[import_kotori_bot.Symbols.modules].values());
201
+ if (name) {
202
+ modulesList = modulesList.filter(([{ pkg }]) => pkg.name.startsWith(name));
203
+ if (modulesList.length === 0) return session.format("core.msg.module.not_found", { name });
204
+ }
205
+ return session.format("core.msg.module", {
206
+ list: modulesList.map(
207
+ ([{ pkg }]) => session.format("core.msg.module.list", {
208
+ name: pkg.name,
209
+ version: pkg.version,
210
+ description: pkg.description
211
+ })
212
+ ).join("")
217
213
  });
218
- return ["core.msg.module", { list }];
219
214
  });
220
215
  }
221
216
  // Annotate the CommonJS export names for ESM import in node:
@@ -1,11 +1,41 @@
1
1
  {
2
- "core.descr.core": "View instance statistics",
3
- "core.descr.bot": "View current bot info and running status",
4
- "core.descr.bots": "View all bots info and running status",
5
- "core.descr.about": "View about info",
6
- "core.msg.bot": "ID: %identity%\nLanguage: %lang%\nPlatform: %platform%\nSelf ID: %self_id%\nConnect Time: %create_time%\nMessages Received: %received_msg%\nMessages Sent: %sent_msg%\nOffline Times: %offline_times%\nLast Message Time: %last_msg_time%",
7
- "core.msg.core": "Global Language: %lang%\nRoot Directory: %root%\nRunning Mode: %mode%\nNumber of Modules: %modules%\nNumber of Services: %services%\nNumber of Bots: %bots%\nNumber of Middlewares: %midwares%\nNumber of Commands: %commands%\nNumber of Regexps: %regexps%",
8
- "core.msg.bots": "Bot List: %list%",
2
+ "corei18n.template.args_error": "The type of argument \"{0}\" is incorrect, expected type: {1}, actual type: {2}",
3
+ "corei18n.template.args_few": "Fewer arguments than expected were provided. Expected number: {0}, actual number: {1}",
4
+ "corei18n.template.args_many": "More arguments than expected were provided. Please reduce the number of arguments. Expected number: {0}, actual number: {1}",
5
+ "corei18n.template.option_error": "The type of option \"{0}\" is incorrect, expected type: {1}, actual type: {2}",
6
+ "corei18n.template.syntax": "Syntax error in command. Unexpected character \"{1}\" at position {0}",
7
+ "corei18n.template.unknown": "Unknown command \"{0}\". Please check if the command is entered correctly",
8
+ "corei18n.template.error": "An unexpected error has occurred!\nCaptured information: {0}",
9
+ "corei18n.template.res_error": "Error in response data format!\nError message: {0}",
10
+ "corei18n.template.num_error": "Incorrect sequence number, please resend",
11
+ "corei18n.template.exists": "The target argument \"{0}\" already exists, do not execute repeatedly",
12
+ "corei18n.template.no_exists": "The target argument \"{0}\" does not exist, please confirm and resend",
13
+ "corei18n.template.data_error.args": "Error in data passed to argument \"{0}\"",
14
+ "corei18n.template.data_error.options": "Error in data passed to option \"{0}\"",
15
+ "corei18n.template.scope": "This command can only be used in group chats or private chats!",
16
+ "corei18n.template.no_access_manger": "This command can only be used by group managers and group BOT administrators!",
17
+ "corei18n.template.no_access_admin": "This command can only be used by the highest administrator of the BOT!",
18
+ "corei18n.template.empty": "None",
19
+ "corei18n.template.unsupported": "The current platform does not support this message element",
20
+ "corei18n.template": "The current platform does not support this message element",
21
+ "corei18n.template.prompt": "Please enter a value:",
22
+ "corei18n.template.confirm": "Are you sure? (Yes/No)",
23
+ "corei18n.template.confirm.sure": "Yes",
24
+ "core.descr.core": "View instance statistics information",
25
+ "core.descr.bot": "View information and status of the current bot",
26
+ "core.descr.bots": "View information and status of all bots",
27
+ "core.descr.about": "View about information",
28
+ "core.descr.locale": "Set the display language",
29
+ "core.descr.module": "View the list of modules",
30
+ "core.msg.bot": "ID: %identity%\nLanguage: %lang%\nPlatform: %platform%\nID: %self_id%\nConnection time: %create_time%\nNumber of received messages: %received_msg%\nNumber of sent messages: %sent_msg%\nNumber of instance shutdowns: %offline_times%\nLast message time: %last_msg_time%",
31
+ "core.msg.core": "Global language: %lang%\nInstance directory: %root%\nRunning mode: %mode%\nNumber of modules: %modules%\nNumber of services: %services%\nNumber of bot instances: %bots%\nNumber of middlewares: %midwares%\nNumber of commands: %commands%\nNumber of regular expressions: %regexps%",
32
+ "core.msg.bots": "Instance list: %list%",
9
33
  "core.msg.bots.list": "\n----------\nID: %identity%\nLanguage: %lang%\nPlatform: %platform%\nStatus: %status%",
10
- "core.msg.about": "Kotori Version: %version%\nLicense: %license%\nNodeJS Version: %node_version%"
11
- }
34
+ "core.msg.about": "Kotori version: %version%\nCore version: %core_version%\n%Loader version: %loader_version%%\nLicense: %license%\nNodeJS version: %node_version%",
35
+ "core.msg.locale": "Successfully set the display language for the current instance to: %lang%",
36
+ "core.msg.locale.global": "Successfully set the global display language to: %lang%",
37
+ "core.msg.locale.invalid": "Parameter is invalid, must be one of the following values: en_US, ja_JP, zh_CN, zh_TW",
38
+ "core.msg.module": "Module list: %list%",
39
+ "core.msg.module.list": "\n----------\nName: %name%\nDescription: %description%\nVersion: %version%",
40
+ "core.msg.module.not_found": "Module %name% not found"
41
+ }
@@ -1,11 +1,41 @@
1
1
  {
2
- "core.descr.core": "インスタンスの統計を表示",
3
- "core.descr.bot": "現在のbotの情報と実行状態を表示",
4
- "core.descr.bots": "すべてのbotの情報と実行状態を表示",
5
- "core.descr.about": "バージョン情報を表示",
6
- "core.msg.bot": "ID:%identity%\n言語:%lang%\nプラットフォーム:%platform%\nセルフID:%self_id%\n接続時間:%create_time%\n受信メッセージ数:%received_msg%\n送信メッセージ数:%sent_msg%\nオフライン回数:%offline_times%\n最終メッセージ時間:%last_msg_time%",
7
- "core.msg.core": "グローバル言語:%lang%\nルートディレクトリ:%root%\n実行モード:%mode%\nモジュール数:%modules%\nサービス数:%services%\nボットインスタンス数:%bots%\nミドルウェア数:%midwares%\nコマンド数:%commands%\n正規表現数:%regexps%",
8
- "core.msg.bots": "ボットリスト:%list%",
2
+ "corei18n.template.args_error": "パラメータ「{0}」の型が誤っています。期待する型:{1}、実際の型:{2}",
3
+ "corei18n.template.args_few": "期待される引数の数が不足しています。期待される数:{0}、実際の数:{1}",
4
+ "corei18n.template.args_many": "引数の数が多すぎます。期待される数:{0}、実際の数:{1}",
5
+ "corei18n.template.option_error": "オプション「{0}」の型が誤っています。期待する型:{1}、実際の型:{2}",
6
+ "corei18n.template.syntax": "コマンドの構文エラー、{0}の位置で予期しない文字「{1}」",
7
+ "corei18n.template.unknown": "未知のコマンド「{0}」、コマンドの入力を確認してください",
8
+ "corei18n.template.error": "予期しないエラーが発生しました!\n捕捉された情報:{0}",
9
+ "corei18n.template.res_error": "レスポンスデータの形式が誤っています!\nエラーメッセージ:{0}",
10
+ "corei18n.template.num_error": "番号が誤っています、再度送信してください",
11
+ "corei18n.template.exists": "対象のパラメータ「{0}」はすでに存在しています、繰り返し実行しないでください",
12
+ "corei18n.template.no_exists": "対象のパラメータ「{0}」は存在していません、確認後、再度送信してください",
13
+ "corei18n.template.data_error.args": "パラメータ「{0}」に誤ったデータが渡されました",
14
+ "corei18n.template.data_error.options": "オプション「{0}」に誤ったデータが渡されました",
15
+ "corei18n.template.scope": "このコマンドはグループチャットまたはプライベートチャットでのみ使用できます!",
16
+ "corei18n.template.no_access_manger": "このコマンドはグループ管理者およびBOT管理者のみ使用できます!",
17
+ "corei18n.template.no_access_admin": "このコマンドはBOTの最高管理者のみ使用できます!",
18
+ "corei18n.template.empty": "なし",
19
+ "corei18n.template.unsupported": "現在のプラットフォームではこのメッセージ要素はサポートされていません",
20
+ "corei18n.template": "現在のプラットフォームではこのメッセージ要素はサポートされていません",
21
+ "corei18n.template.prompt": "値を入力してください:",
22
+ "corei18n.template.confirm": "確認しますか?(はい/いいえ)",
23
+ "corei18n.template.confirm.sure": "はい",
24
+ "core.descr.core": "インスタンスの統計情報を表示します",
25
+ "core.descr.bot": "現在のBOTの情報と動作状況を表示します",
26
+ "core.descr.bots": "すべてのBOTの情報と動作状況を表示します",
27
+ "core.descr.about": "について情報を表示します",
28
+ "core.descr.locale": "表示言語を設定します",
29
+ "core.descr.module": "モジュールを表示します",
30
+ "core.msg.bot": "ID:%identity%\n言語:%lang%\nプラットフォーム:%platform%\nID:%self_id%\n接続時間:%create_time%\n受信メッセージ数:%received_msg%\n送信メッセージ数:%sent_msg%\nインスタンスオフライン回数:%offline_times%\n最後のメッセージ時間:%last_msg_time%",
31
+ "core.msg.core": "グローバル言語:%lang%\nインスタンスディレクトリ:%root%\n動作モード:%mode%\nモジュール数:%modules%\nサービス数:%services%\nBOTインスタンス数:%bots%\nミドルウェア数:%midwares%\nコマンド数:%commands%\n正規表現数:%regexps%",
32
+ "core.msg.bots": "インスタンスリスト:%list%",
9
33
  "core.msg.bots.list": "\n----------\nID:%identity%\n言語:%lang%\nプラットフォーム:%platform%\n状態:%status%",
10
- "core.msg.about": "Kotoriバージョン:%version%\nライセンス:%license%\nNodeJSバージョン:%node_version%"
11
- }
34
+ "core.msg.about": "Kotori バージョン:%version%\nライセンス:%license%\nNodeJS バージョン:%node_version%",
35
+ "core.msg.locale": "現在のインスタンスの表示言語を %lang% に設定しました",
36
+ "core.msg.locale.global": "グローバル表示言語を %lang% に設定しました",
37
+ "core.msg.locale.invalid": "パラメータが無効です。以下の値のいずれかでなければなりません:en_US、ja_JP、zh_CN、zh_TW",
38
+ "core.msg.module": "モジュールリスト:%list%",
39
+ "core.msg.module.list": "\n----------\n名前:%name%\n説明:%description%\nバージョン:%version%",
40
+ "core.msg.module.not_found": "%name% モジュールが見つかりませんでした"
41
+ }
@@ -31,10 +31,11 @@
31
31
  "core.msg.core": "全局语言:%lang%\n实例目录:%root%\n运行模式:%mode%\n模块数量:%modules%\n服务数量:%services%\nbot 实例数量:%bots%\n中间件数量:%midwares%\n指令数量:%commands%\n正则数量:%regexps%",
32
32
  "core.msg.bots": "实例列表:%list%",
33
33
  "core.msg.bots.list": "\n----------\nID:%identity%\n语言:%lang%\n平台:%platform%\n状态:%status%",
34
- "core.msg.about": "Kotori 版本:%version%\n协议:%license%\nNodeJS 版本:%node_version%",
34
+ "core.msg.about": "Kotori 版本:%version%\n核心版本:%core_version%\n加载器版本:%loader_version%\n协议:%license%\nNodeJS 版本:%node_version%",
35
35
  "core.msg.locale": "成功将当前实例显示语言设置为:%lang%",
36
36
  "core.msg.locale.global": "成功将全局显示语言设置为:%lang%",
37
37
  "core.msg.locale.invalid": "参数无效,必须是以下中的一个值:en_US、ja_JP、zh_CN、zh_TW",
38
38
  "core.msg.module": "模块列表:%list%",
39
- "core.msg.module.list": "\n----------\n名称:%name%\n描述:%description%\n版本:%version%"
39
+ "core.msg.module.list": "\n----------\n名称:%name%\n描述:%description%\n版本:%version%",
40
+ "core.msg.module.not_found": "未找到模块:%name%"
40
41
  }
@@ -36,5 +36,6 @@
36
36
  "core.msg.locale.global": "成功將全局顯示語言設置爲:%lang%",
37
37
  "core.msg.locale.invalid": "參數無效,必須是以下中的壹個值:en_US、ja_JP、zh_CN、zh_TW",
38
38
  "core.msg.module": "模塊列表:%list%",
39
- "core.msg.module.list": "\n----------\n名稱:%name%\n描述:%description%\n版本:%version%"
39
+ "core.msg.module.list": "\n----------\n名稱:%name%\n描述:%description%\n版本:%version%",
40
+ "core.msg.module.not_found": "未找到模塊"
40
41
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kotori-bot/kotori-plugin-core",
3
- "version": "1.3.0",
3
+ "version": "1.4.0",
4
4
  "description": "core plugin",
5
5
  "main": "lib/index.js",
6
6
  "keywords": [
@@ -15,9 +15,9 @@
15
15
  "LICENSE",
16
16
  "README.md"
17
17
  ],
18
- "author": "Hotaru <biyuehuya@gmail.com>",
18
+ "author": "Hotaru <me@hotaru.icu>",
19
19
  "peerDependencies": {
20
- "kotori-bot": "^1.5.0"
20
+ "kotori-bot": "^1.6.0-rc.1"
21
21
  },
22
22
  "kotori": {
23
23
  "meta": {