koishi-plugin-game-mini 0.2.9 → 0.3.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.js +20 -19
  2. package/package.json +1 -1
package/lib/index.js CHANGED
@@ -674,27 +674,12 @@ async function apply(ctx, cfg) {
674
674
  const refreshActive = (st) => {
675
675
  st.chengyuJielong.lastActiveTime = Date.now();
676
676
  };
677
- const scheduleAutoPlay = (session, key, st) => {
678
- clearAllTimers(st);
679
- if (st.chengyuJielong.currentRound === 1 && st.chengyuJielong.jielongCount === 0) {
680
- const delay = 100;
681
- st.chengyuJielong.autoPlayTimer = setTimeout(() => {
682
- doAutoPlay(session, key, st);
683
- }, delay);
684
- return;
685
- }
686
- if (cfg.chengyuJielong.botParticipate && st.chengyuJielong.botTurn) {
687
- const delay = cfg.chengyuJielong.autoPlayDelay * 1000;
688
- st.chengyuJielong.autoPlayTimer = setTimeout(() => {
689
- doAutoPlay(session, key, st);
690
- }, delay);
691
- }
692
- };
693
677
  const doAutoPlay = async (session, key, st) => {
694
678
  if (!st.chengyuJielong.started)
695
679
  return;
696
680
  try {
697
681
  const intUserId = getIntUserId(session);
682
+ logger.info(`[成语接龙] 开始调用API,用户ID: ${intUserId}`);
698
683
  const r = await axios_1.default.get('https://api.suol.cc/v1/game_cyjl.php', {
699
684
  params: {
700
685
  id: intUserId,
@@ -705,6 +690,7 @@ async function apply(ctx, cfg) {
705
690
  'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
706
691
  }
707
692
  });
693
+ logger.info(`[成语接龙] API返回状态码: ${r.status}`);
708
694
  const dt = r.data;
709
695
  let m = '';
710
696
  if (dt.code === 200 && dt.data?.system) {
@@ -713,9 +699,11 @@ async function apply(ctx, cfg) {
713
699
  st.chengyuJielong.lastChar = dt.data.current_char || '';
714
700
  st.chengyuJielong.jielongCount += 1;
715
701
  st.chengyuJielong.botTurn = false;
702
+ logger.info(`[成语接龙] 成功获取成语: ${sys.idiom}`);
716
703
  await session.send(m);
717
704
  }
718
705
  else {
706
+ logger.warn(`[成语接龙] API返回异常: code=${dt.code}, msg=${dt.msg}`);
719
707
  m = dt.msg || d.chengyuJielong.botWin;
720
708
  st.chengyuJielong.currentRound += 1;
721
709
  st.chengyuJielong.botTurn = true;
@@ -750,6 +738,8 @@ async function apply(ctx, cfg) {
750
738
  }
751
739
  }
752
740
  catch (error) {
741
+ const err = error;
742
+ logger.error(`[成语接龙] API调用失败: ${err.message}`);
753
743
  await session.send(d.chengyuJielong.apiError);
754
744
  }
755
745
  gameStates.set(key, st);
@@ -798,6 +788,7 @@ async function apply(ctx, cfg) {
798
788
  }
799
789
  try {
800
790
  const intUserId = getIntUserId(session);
791
+ logger.info(`[成语接龙玩家] 开始调用API,用户ID: ${intUserId}, 内容: ${content}`);
801
792
  const r = await axios_1.default.get('https://api.suol.cc/v1/game_cyjl.php', {
802
793
  params: {
803
794
  id: intUserId,
@@ -808,6 +799,7 @@ async function apply(ctx, cfg) {
808
799
  'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
809
800
  }
810
801
  });
802
+ logger.info(`[成语接龙玩家] API返回状态码: ${r.status}`);
811
803
  const dt = r.data;
812
804
  let m = '';
813
805
  if (dt.code === 200) {
@@ -816,28 +808,36 @@ async function apply(ctx, cfg) {
816
808
  m += d.chengyuJielong.correct + '\n';
817
809
  m += `你的成语:${dt.data.user.idiom}\n`;
818
810
  st.chengyuJielong.botTurn = true;
811
+ logger.info(`[成语接龙玩家] 接龙成功: ${dt.data.user.idiom}`);
819
812
  }
820
813
  else {
821
814
  m += d.chengyuJielong.wrong + '\n';
815
+ logger.info(`[成语接龙玩家] 接龙失败`);
822
816
  }
823
817
  if (dt.data?.system) {
824
818
  m += `我的接龙:${dt.data.system.idiom}`;
825
819
  st.chengyuJielong.lastChar = dt.data.current_char || '';
826
820
  st.chengyuJielong.jielongCount += 1;
821
+ logger.info(`[成语接龙玩家] 机器人接龙: ${dt.data.system.idiom}`);
827
822
  }
828
823
  st.chengyuJielong.currentRound += 1;
829
824
  await session.send(m);
830
825
  if (cfg.chengyuJielong.botParticipate && st.chengyuJielong.botTurn) {
831
- scheduleAutoPlay(session, key, st);
826
+ setTimeout(() => {
827
+ doAutoPlay(session, key, st);
828
+ }, cfg.chengyuJielong.autoPlayDelay * 1000);
832
829
  }
833
830
  }
834
831
  else {
832
+ logger.warn(`[成语接龙玩家] API返回异常: code=${dt.code}, msg=${dt.msg}`);
835
833
  m = dt.msg || '接龙失败';
836
834
  m += '\n' + d.chengyuJielong.wrong;
837
835
  await session.send(m);
838
836
  }
839
837
  }
840
838
  catch (error) {
839
+ const err = error;
840
+ logger.error(`[成语接龙玩家] API调用失败: ${err.message}`);
841
841
  await session.send(d.chengyuJielong.apiError);
842
842
  }
843
843
  setupAutoStop(session, st.chengyuJielong, 'chengyuJielong', d.chengyuJielong.autoStop, cfg.chengyuJielong.showRank, d.chengyuJielong.rankTitle, d.chengyuJielong.rankEmpty);
@@ -1321,9 +1321,10 @@ async function apply(ctx, cfg) {
1321
1321
  st.chengyuJielong.autoPlayCount = 0;
1322
1322
  st.chengyuJielong.jielongCount = 0;
1323
1323
  st.chengyuJielong.botTurn = true;
1324
- st.chengyuJielong.hasTriggeredAutoPlay = false;
1325
1324
  await session.send(d.chengyuJielong.start.replace('{0}', st.chengyuJielong.totalRounds.toString()));
1326
- scheduleAutoPlay(session, key, st);
1325
+ setTimeout(() => {
1326
+ doAutoPlay(session, key, st);
1327
+ }, 100);
1327
1328
  gameStates.set(key, st);
1328
1329
  setupAutoStop(session, st.chengyuJielong, 'chengyuJielong', d.chengyuJielong.autoStop, cfg.chengyuJielong.showRank, d.chengyuJielong.rankTitle, d.chengyuJielong.rankEmpty);
1329
1330
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "koishi-plugin-game-mini",
3
- "version": "0.2.9",
3
+ "version": "0.3.0",
4
4
  "description": "Koishi多功能小游戏合集:猜数字、猜王者英雄、看图猜成语、成语接龙、算24点",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",