koishi-plugin-game-mini 0.1.6 → 0.1.7

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
@@ -12,9 +12,19 @@ export interface Config {
12
12
  max: number;
13
13
  botParticipateInGroup: boolean;
14
14
  };
15
+ wzHero: {
16
+ botParticipateInGroup: boolean;
17
+ };
18
+ chengyuImage: {
19
+ botParticipateInGroup: boolean;
20
+ };
21
+ chengyuJielong: {
22
+ botParticipateInGroup: boolean;
23
+ };
15
24
  apiConfig: {
25
+ wzHeroUserId: string;
26
+ cyjlUserId: string;
16
27
  timeout: number;
17
- botParticipateInGroup: boolean;
18
28
  };
19
29
  }
20
30
  export declare const Config: Schema<Config>;
package/lib/index.js CHANGED
@@ -23,9 +23,19 @@ exports.Config = koishi_1.Schema.object({
23
23
  max: koishi_1.Schema.number().min(1).default(100).description('猜数字最大值'),
24
24
  botParticipateInGroup: koishi_1.Schema.boolean().default(true).description('群聊中Bot是否参与猜数字(私聊强制参与)')
25
25
  }).description('猜数字游戏配置'),
26
+ wzHero: koishi_1.Schema.object({
27
+ botParticipateInGroup: koishi_1.Schema.boolean().default(true).description('群聊中Bot是否参与王者英雄猜谜(私聊强制参与)')
28
+ }).description('王者英雄猜谜配置'),
29
+ chengyuImage: koishi_1.Schema.object({
30
+ botParticipateInGroup: koishi_1.Schema.boolean().default(true).description('群聊中Bot是否参与看图猜成语(私聊强制参与)')
31
+ }).description('看图猜成语配置'),
32
+ chengyuJielong: koishi_1.Schema.object({
33
+ botParticipateInGroup: koishi_1.Schema.boolean().default(true).description('群聊中Bot是否参与成语接龙(私聊强制参与)')
34
+ }).description('成语接龙配置'),
26
35
  apiConfig: koishi_1.Schema.object({
27
- timeout: koishi_1.Schema.number().default(5000).description('API请求超时时间(毫秒)'),
28
- botParticipateInGroup: koishi_1.Schema.boolean().default(true).description('群聊中Bot是否参与其他游戏(私聊强制参与)')
36
+ wzHeroUserId: koishi_1.Schema.string().default('1828222534').description('王者英雄猜谜API的用户区分ID(建议填写Bot的QQ号/原生账号)'),
37
+ cyjlUserId: koishi_1.Schema.string().default('1828222534').description('成语接龙API的用户区分ID(建议填写Bot的QQ号/原生账号)'),
38
+ timeout: koishi_1.Schema.number().default(5000).description('第三方API请求超时时间(毫秒)')
29
39
  }).description('游戏API配置')
30
40
  }).i18n({
31
41
  'zh-CN': {
@@ -43,10 +53,23 @@ exports.Config = koishi_1.Schema.object({
43
53
  'guessNumber.max.description': '设置猜数字游戏的最大值,需大于0',
44
54
  'guessNumber.botParticipateInGroup': '群聊Bot参与猜数字开关',
45
55
  'guessNumber.botParticipateInGroup.description': '控制Bot是否在群聊中参与猜数字,私聊场景下Bot强制参与',
56
+ 'guessNumber': '猜数字游戏配置',
57
+ 'wzHero.botParticipateInGroup': '群聊Bot参与王者英雄猜谜开关',
58
+ 'wzHero.botParticipateInGroup.description': '控制Bot是否在群聊中参与王者英雄猜谜,私聊场景下Bot强制参与',
59
+ 'wzHero': '王者英雄猜谜配置',
60
+ 'chengyuImage.botParticipateInGroup': '群聊Bot参与看图猜成语开关',
61
+ 'chengyuImage.botParticipateInGroup.description': '控制Bot是否在群聊中参与看图猜成语,私聊场景下Bot强制参与',
62
+ 'chengyuImage': '看图猜成语配置',
63
+ 'chengyuJielong.botParticipateInGroup': '群聊Bot参与成语接龙开关',
64
+ 'chengyuJielong.botParticipateInGroup.description': '控制Bot是否在群聊中参与成语接龙,私聊场景下Bot强制参与',
65
+ 'chengyuJielong': '成语接龙配置',
66
+ 'apiConfig.wzHeroUserId': '王者英雄猜谜API用户ID',
67
+ 'apiConfig.wzHeroUserId.description': '用于区分Bot参与的ID,建议填写Bot的QQ号/原生账号',
68
+ 'apiConfig.cyjlUserId': '成语接龙API用户ID',
69
+ 'apiConfig.cyjlUserId.description': '用于区分Bot参与的ID,建议填写Bot的QQ号/原生账号',
46
70
  'apiConfig.timeout': 'API超时时间',
47
71
  'apiConfig.timeout.description': '第三方API请求的超时时间,单位为毫秒',
48
- 'apiConfig.botParticipateInGroup': '群聊Bot参与其他游戏开关',
49
- 'apiConfig.botParticipateInGroup.description': '控制Bot是否在群聊中参与王者英雄/猜成语/成语接龙,私聊强制参与'
72
+ 'apiConfig': '游戏API配置'
50
73
  }
51
74
  });
52
75
  const logger = new koishi_1.Logger('game-mini');
@@ -56,6 +79,9 @@ const commandDescriptions = {
56
79
  chengyuImage: '看图猜成语小游戏指令',
57
80
  chengyuJielong: '成语接龙小游戏指令'
58
81
  };
82
+ const getUserRealId = (session) => {
83
+ return session.userId || `${session.platform}_${session.selfId}`;
84
+ };
59
85
  function apply(ctx, config) {
60
86
  const defaultI18n = {
61
87
  guessNumber: {
@@ -72,9 +98,9 @@ function apply(ctx, config) {
72
98
  disabled: '猜数字游戏功能已关闭,请联系管理员开启',
73
99
  },
74
100
  wzHero: {
75
- startUsage: '用法错误!正确用法:wzhero start <难度>,难度可选:简单/中等/困难',
101
+ startUsage: '用法错误!正确用法:wzhero start [难度],难度可选:简单/中等/困难',
76
102
  stop: '王者英雄猜谜游戏已停止',
77
- notStarted: '王者英雄猜谜游戏尚未开始,请输入 wzhero start <难度> 开始游戏',
103
+ notStarted: '王者英雄猜谜游戏尚未开始,请输入 wzhero start [难度] 开始游戏',
78
104
  hint: '提示',
79
105
  apiError: 'API请求失败,请稍后再试',
80
106
  botGuess: '让我猜猜~我觉得是:{0}',
@@ -122,9 +148,22 @@ function apply(ctx, config) {
122
148
  }
123
149
  const gameStates = new Map();
124
150
  const getSessionKey = (session) => session.channelId ? `group:${session.channelId}` : `private:${session.userId}`;
125
- const getBotParticipate = (session) => {
151
+ const getBotParticipate = (session, gameType) => {
126
152
  const isPrivate = !session.channelId;
127
- return isPrivate || (session.channelId ? config.apiConfig.botParticipateInGroup : true);
153
+ if (isPrivate)
154
+ return true;
155
+ switch (gameType) {
156
+ case 'guessNumber':
157
+ return config.guessNumber.botParticipateInGroup;
158
+ case 'wzHero':
159
+ return config.wzHero.botParticipateInGroup;
160
+ case 'chengyuImage':
161
+ return config.chengyuImage.botParticipateInGroup;
162
+ case 'chengyuJielong':
163
+ return config.chengyuJielong.botParticipateInGroup;
164
+ default:
165
+ return true;
166
+ }
128
167
  };
129
168
  const initSessionState = (key) => {
130
169
  const state = {
@@ -186,8 +225,7 @@ function apply(ctx, config) {
186
225
  return;
187
226
  }
188
227
  gameStates.set(key, state);
189
- const isPrivate = !session.channelId;
190
- const botPlay = isPrivate || config.guessNumber.botParticipateInGroup;
228
+ const botPlay = getBotParticipate(session, 'guessNumber');
191
229
  if (botPlay && gnState.started && gnState.currentMin <= gnState.currentMax) {
192
230
  let botGuess;
193
231
  let safe = 0;
@@ -220,7 +258,7 @@ function apply(ctx, config) {
220
258
  try {
221
259
  const response = await axios_1.default.get('https://api.suol.cc/v1/game_wz.php', {
222
260
  params: {
223
- id: session.userId,
261
+ id: getUserRealId(session),
224
262
  msg: content
225
263
  },
226
264
  timeout: config.apiConfig.timeout
@@ -228,20 +266,26 @@ function apply(ctx, config) {
228
266
  const data = response.data;
229
267
  let reply = '';
230
268
  if (data.status === 'success') {
231
- reply = `${data.message || ''}\n${data.hint || ''}\n剩余提示次数:${data.remaining_hints}\n${data.guide || ''}`;
232
- wzState.lastHint = data.hint || '';
269
+ if (data.message.includes('用完了所有提示') || data.remaining_hints === 0) {
270
+ reply = '很遗憾,你用完了所有提示!难度太大?可以向我发送“wzhero start 简单”以降低猜测英雄难度。游戏开始!当前难度:简单\n请看题,下面是一首描写该英雄的诗词。\n胡笳琴韵愈伤痕\n弹弹连控摄敌魂\n加血提速护友紧\n奶妈之名天下闻\n请输入你猜测的英雄名称,或输入"提示"获取下一条线索';
271
+ }
272
+ else {
273
+ reply = `${data.message || ''}\n${data.hint || ''}\n剩余提示次数:${data.remaining_hints}\n${data.guide || ''}`;
274
+ wzState.lastHint = data.hint || '';
275
+ }
233
276
  }
234
277
  else {
235
278
  reply = data.message || '游戏出错了,请稍后再试';
236
279
  }
237
280
  await session.send(reply);
238
- if (getBotParticipate(session) && !wzState.botAnswered) {
281
+ const botPlay = getBotParticipate(session, 'wzHero');
282
+ if (botPlay && !wzState.botAnswered) {
239
283
  setTimeout(async () => {
240
284
  const heroList = ['李白', '韩信', '貂蝉', '诸葛亮', '妲己', '亚瑟', '鲁班七号', '孙尚香', '孙悟空', '安琪拉'];
241
285
  const randomHero = heroList[Math.floor(Math.random() * heroList.length)];
242
286
  const botResponse = await axios_1.default.get('https://api.suol.cc/v1/game_wz.php', {
243
287
  params: {
244
- id: session.selfId,
288
+ id: config.apiConfig.wzHeroUserId,
245
289
  msg: randomHero
246
290
  },
247
291
  timeout: config.apiConfig.timeout
@@ -302,7 +346,7 @@ function apply(ctx, config) {
302
346
  cyImageState.options = data.data.question.options;
303
347
  cyImageState.botGuessed = false;
304
348
  gameStates.set(key, state);
305
- reply = `${session.text('chengyuImage.next')}\n${data.data.message}\n选项:${data.data.question.options.join('、')}\n图片链接:${data.data.question.image_url}`;
349
+ reply = `${session.text('chengyuImage.next')}\n${data.data.message}\n选项:${data.data.question.options.join('、')}\n[CQ:image,file=${data.data.question.image_url}]`;
306
350
  }
307
351
  else {
308
352
  reply = '获取下一题失败,请稍后再试';
@@ -318,10 +362,19 @@ function apply(ctx, config) {
318
362
  timeout: config.apiConfig.timeout
319
363
  });
320
364
  const data = response.data;
321
- reply = data.message || '提交答案失败,请稍后再试';
365
+ if (data.success) {
366
+ reply = data.message;
367
+ if (data.message.includes('正确') || data.message.includes('答对')) {
368
+ state.chengyuImage.started = false;
369
+ }
370
+ }
371
+ else {
372
+ reply = '提交答案失败,请稍后再试';
373
+ }
322
374
  }
323
375
  await session.send(reply);
324
- if (getBotParticipate(session) && !cyImageState.botGuessed && cyImageState.options.length > 0) {
376
+ const botPlay = getBotParticipate(session, 'chengyuImage');
377
+ if (botPlay && !cyImageState.botGuessed && cyImageState.options.length > 0) {
325
378
  setTimeout(async () => {
326
379
  const randomWords = [];
327
380
  for (let i = 0; i < 4; i++) {
@@ -373,7 +426,7 @@ function apply(ctx, config) {
373
426
  try {
374
427
  const response = await axios_1.default.get('https://api.suol.cc/v1/game_cyjl.php', {
375
428
  params: {
376
- id: session.userId,
429
+ id: getUserRealId(session),
377
430
  msg: `我接${idiom}`
378
431
  },
379
432
  timeout: config.apiConfig.timeout
@@ -395,11 +448,12 @@ function apply(ctx, config) {
395
448
  reply = data.msg || '接龙失败,请换个成语试试';
396
449
  }
397
450
  await session.send(reply);
398
- if (getBotParticipate(session) && cyJlState.lastChar) {
451
+ const botPlay = getBotParticipate(session, 'chengyuJielong');
452
+ if (botPlay && cyJlState.lastChar) {
399
453
  setTimeout(async () => {
400
454
  const botResponse = await axios_1.default.get('https://api.suol.cc/v1/game_cyjl.php', {
401
455
  params: {
402
- id: session.selfId,
456
+ id: config.apiConfig.cyjlUserId,
403
457
  msg: `开始成语接龙`
404
458
  },
405
459
  timeout: config.apiConfig.timeout
@@ -443,8 +497,7 @@ function apply(ctx, config) {
443
497
  state.guessNumber.botGuess = [];
444
498
  gameStates.set(key, state);
445
499
  await session.send(session.text('guessNumber.start', [config.guessNumber.min, config.guessNumber.max]));
446
- const isPrivate = !session.channelId;
447
- const botPlay = isPrivate || config.guessNumber.botParticipateInGroup;
500
+ const botPlay = getBotParticipate(session, 'guessNumber');
448
501
  if (botPlay) {
449
502
  setTimeout(async () => {
450
503
  const botGuess = koishi_1.Random.int(config.guessNumber.min, config.guessNumber.max);
@@ -481,28 +534,30 @@ function apply(ctx, config) {
481
534
  }
482
535
  if (config.enableWzHero) {
483
536
  ctx.command('wzhero <action:string> [difficulty:string]', commandDescriptions.wzHero)
537
+ .usage('用法:wzhero start [难度],难度可选:简单/中等/困难,默认中等')
484
538
  .action(async (argv, action, difficulty) => {
485
539
  const session = argv.session;
486
540
  if (!session || !action) {
487
- await session?.send(session.text('wzHero.startUsage'));
541
+ await session?.send('用法错误!正确用法:wzhero start [难度],难度可选:简单/中等/困难');
488
542
  return '';
489
543
  }
490
544
  const key = getSessionKey(session);
491
545
  const state = gameStates.get(key) || initSessionState(key);
492
546
  if (action === 'start') {
493
- if (!difficulty || !['简单', '中等', '困难'].includes(difficulty)) {
494
- await session.send(session.text('wzHero.startUsage'));
547
+ const finalDifficulty = difficulty || '中等';
548
+ if (!['简单', '中等', '困难'].includes(finalDifficulty)) {
549
+ await session.send('用法错误!正确用法:wzhero start [难度],难度可选:简单/中等/困难');
495
550
  return '';
496
551
  }
497
552
  state.wzHero.started = true;
498
- state.wzHero.difficulty = difficulty;
553
+ state.wzHero.difficulty = finalDifficulty;
499
554
  state.wzHero.botAnswered = false;
500
555
  gameStates.set(key, state);
501
556
  try {
502
557
  const response = await axios_1.default.get('https://api.suol.cc/v1/game_wz.php', {
503
558
  params: {
504
- id: session.userId,
505
- msg: `开始游戏${difficulty}`
559
+ id: getUserRealId(session),
560
+ msg: `开始游戏${finalDifficulty}`
506
561
  },
507
562
  timeout: config.apiConfig.timeout
508
563
  });
@@ -516,13 +571,14 @@ function apply(ctx, config) {
516
571
  reply = data.message || '游戏开始失败,请稍后再试';
517
572
  }
518
573
  await session.send(reply);
519
- if (getBotParticipate(session)) {
574
+ const botPlay = getBotParticipate(session, 'wzHero');
575
+ if (botPlay) {
520
576
  setTimeout(async () => {
521
577
  const heroList = ['李白', '韩信', '貂蝉', '诸葛亮', '妲己', '亚瑟', '鲁班七号', '孙尚香', '孙悟空', '安琪拉'];
522
578
  const randomHero = heroList[Math.floor(Math.random() * heroList.length)];
523
579
  const botResponse = await axios_1.default.get('https://api.suol.cc/v1/game_wz.php', {
524
580
  params: {
525
- id: session.selfId,
581
+ id: config.apiConfig.wzHeroUserId,
526
582
  msg: randomHero
527
583
  },
528
584
  timeout: config.apiConfig.timeout
@@ -554,7 +610,7 @@ function apply(ctx, config) {
554
610
  await session.send(session.text('wzHero.stop'));
555
611
  }
556
612
  else {
557
- await session.send(session.text('wzHero.startUsage'));
613
+ await session.send('用法错误!正确用法:wzhero start [难度],难度可选:简单/中等/困难');
558
614
  }
559
615
  return '';
560
616
  });
@@ -585,9 +641,10 @@ function apply(ctx, config) {
585
641
  state.chengyuImage.options = data.data.question.options;
586
642
  state.chengyuImage.botGuessed = false;
587
643
  gameStates.set(key, state);
588
- const reply = `${session.text('chengyuImage.start')}\n${data.data.message}\n选项:${data.data.question.options.join('、')}\n图片链接:${data.data.question.image_url}`;
644
+ const reply = `${session.text('chengyuImage.start')}\n${data.data.message}\n选项:${data.data.question.options.join('、')}\n[CQ:image,file=${data.data.question.image_url}]`;
589
645
  await session.send(reply);
590
- if (getBotParticipate(session)) {
646
+ const botPlay = getBotParticipate(session, 'chengyuImage');
647
+ if (botPlay) {
591
648
  setTimeout(async () => {
592
649
  const randomWords = [];
593
650
  for (let i = 0; i < 4; i++) {
@@ -655,7 +712,7 @@ function apply(ctx, config) {
655
712
  try {
656
713
  const response = await axios_1.default.get('https://api.suol.cc/v1/game_cyjl.php', {
657
714
  params: {
658
- id: session.userId,
715
+ id: getUserRealId(session),
659
716
  msg: '开始成语接龙'
660
717
  },
661
718
  timeout: config.apiConfig.timeout
@@ -1,42 +1,47 @@
1
+ # locales/zh-CN.yml
1
2
  guessNumber:
2
- usage: 用法错误!正确用法:guess start/stop 或 直接输入数字
3
- start: 猜数字游戏开始!初始范围是 {0}-{1},快来猜猜看~
4
- stop: 猜数字游戏已停止,正确数字是 {0}
5
- outOfRange: 数字超出当前范围 [{0}-{1}],请重新输入!
6
- tooSmall: 猜小啦!当前范围更新为 [{0}-{1}]
7
- tooBig: 猜大啦!当前范围更新为 [{0}-{1}]
8
- correct: 恭喜你猜中了!正确数字就是 {0} 🎉
9
- botWin: 哈哈我猜中了!我猜的是 {0},正确数字就是 {0},我赢啦 🎉
10
- botGuessTooSmall: 我猜 {0},猜小啦!当前范围 [{1}-{2}]
11
- botGuessTooBig: 我猜 {0},猜大啦!当前范围 [{1}-{2}]
12
- commandDesc: 猜数字小游戏指令
3
+ usage: "用法错误!正确用法:guess start/stop 或 直接输入数字"
4
+ start: "猜数字游戏开始!初始范围是 {0}-{1},快来猜猜看~"
5
+ stop: "猜数字游戏已停止,正确数字是 {0}"
6
+ outOfRange: "数字超出当前范围 [{0}-{1}],请重新输入!"
7
+ tooSmall: "猜小啦!当前范围更新为 [{0}-{1}]"
8
+ tooBig: "猜大啦!当前范围更新为 [{0}-{1}]"
9
+ correct: "恭喜你猜中了!正确数字就是 {0} 🎉"
10
+ botWin: "哈哈我猜中了!我猜的是 {0},正确数字就是 {0},我赢啦 🎉"
11
+ botGuessTooSmall: "我猜 {0},猜小啦!当前范围 [{1}-{2}]"
12
+ botGuessTooBig: "我猜 {0},猜大啦!当前范围 [{1}-{2}]"
13
+ disabled: "猜数字游戏功能已关闭,请联系管理员开启"
14
+
13
15
  wzHero:
14
- startUsage: 用法错误!正确用法:wzhero start <难度>,难度可选:简单/中等/困难
15
- stop: 王者英雄猜谜游戏已停止
16
- notStarted: 王者英雄猜谜游戏尚未开始,请输入 wzhero start <难度> 开始游戏
17
- hint: 提示
18
- commandDesc: 猜王者荣耀英雄小游戏指令
19
- apiError: API请求失败,请稍后再试
20
- botGuess: 让我猜猜~我觉得是:{0}
21
- botWrong: 哎呀猜错了😜,继续猜猜看!
22
- botRight: 耶!我猜对了~就是{0} ✨
16
+ startUsage: "用法错误!正确用法:wzhero start [难度],难度可选:简单/中等/困难"
17
+ stop: "王者英雄猜谜游戏已停止"
18
+ notStarted: "王者英雄猜谜游戏尚未开始,请输入 wzhero start [难度] 开始游戏"
19
+ hint: "提示"
20
+ apiError: "API请求失败,请稍后再试"
21
+ botGuess: "让我猜猜~我觉得是:{0}"
22
+ botWrong: "哎呀猜错了😜,继续猜猜看!"
23
+ botRight: "耶!我猜对了~就是{0} ✨"
24
+ disabled: "王者英雄猜谜功能已关闭,请联系管理员开启"
25
+
23
26
  chengyuImage:
24
- start: 看图猜成语游戏开始!
25
- stop: 看图猜成语游戏已停止
26
- submitUsage: 请直接输入你猜测的成语,或输入 提示 获取线索
27
- notStarted: 看图猜成语游戏尚未开始,请输入 cyimage start 开始游戏
28
- next: 下一题来啦!
29
- hintUsage: 提示等级可选1-5,用法:提示 <等级>,如 提示 2
30
- commandDesc: 看图猜成语小游戏指令
31
- apiError: API请求失败,请稍后再试
32
- botGuess: 我来试试!我猜是:{0}
33
- botWrong: 猜错了😭,换个试试!
34
- botRight: 太棒了!我猜对了~就是{0} 🎊
27
+ start: "看图猜成语游戏开始!"
28
+ stop: "看图猜成语游戏已停止"
29
+ submitUsage: "请直接输入你猜测的成语,或输入 提示 获取线索"
30
+ notStarted: "看图猜成语游戏尚未开始,请输入 cyimage start 开始游戏"
31
+ next: "下一题来啦!"
32
+ hintUsage: "提示等级可选1-5,用法:提示 <等级>,如 提示 2"
33
+ apiError: "API请求失败,请稍后再试"
34
+ botGuess: "我来试试!我猜是:{0}"
35
+ botWrong: "猜错了😭,换个试试!"
36
+ botRight: "太棒了!我猜对了~就是{0} 🎊"
37
+ disabled: "看图猜成语功能已关闭,请联系管理员开启"
38
+
35
39
  chengyuJielong:
36
- start: 成语接龙游戏开始!我先来~
37
- stop: 成语接龙游戏已停止
38
- notStarted: 成语接龙游戏尚未开始,请输入 cyjl start 开始游戏
39
- joinUsage: 请输入 我接<成语> 进行接龙,如 我接一帆风顺
40
- commandDesc: 成语接龙小游戏指令
41
- apiError: API请求失败,请稍后再试
42
- botTurn: 该我了!我接:{0}({1})\n释义:{2}
40
+ start: "成语接龙游戏开始!我先来~"
41
+ stop: "成语接龙游戏已停止"
42
+ notStarted: "成语接龙游戏尚未开始,请输入 cyjl start 开始游戏"
43
+ joinUsage: "请输入 我接<成语> 进行接龙,如 我接一帆风顺"
44
+ apiError: "API请求失败,请稍后再试"
45
+ botTurn: "该我了!我接:{0}({1})\n释义:{2}"
46
+ botWin: "哈哈我接不上了,你赢啦~"
47
+ disabled: "成语接龙功能已关闭,请联系管理员开启"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "koishi-plugin-game-mini",
3
- "version": "0.1.6",
3
+ "version": "0.1.7",
4
4
  "description": "一款包含猜数字、猜王者英雄、看图猜成语、成语接龙的多功能小游戏插件",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",