koishi-plugin-game-mini 0.2.7 → 0.2.8

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
@@ -55,8 +55,8 @@ export interface Config {
55
55
  autoPlayMaxCount: number;
56
56
  autoStopInactiveTime: number;
57
57
  enablePenalty: boolean;
58
- rewardScore: number;
59
58
  penaltyScore: number;
59
+ rewardScore: number;
60
60
  messages: {
61
61
  usage: string;
62
62
  start: string;
@@ -80,6 +80,7 @@ export interface Config {
80
80
  autoStopInactiveTime: number;
81
81
  rewardScore: number;
82
82
  messages: {
83
+ usage: string;
83
84
  start: string;
84
85
  startUsage: string;
85
86
  stop: string;
@@ -103,6 +104,7 @@ export interface Config {
103
104
  autoStopInactiveTime: number;
104
105
  rewardScore: number;
105
106
  messages: {
107
+ usage: string;
106
108
  start: string;
107
109
  stop: string;
108
110
  submitUsage: string;
@@ -131,6 +133,7 @@ export interface Config {
131
133
  botParticipate: boolean;
132
134
  rewardScore: number;
133
135
  messages: {
136
+ usage: string;
134
137
  start: string;
135
138
  stop: string;
136
139
  notStarted: string;
@@ -171,6 +174,7 @@ export interface Config {
171
174
  autoStopInactiveTime: number;
172
175
  rewardScore: number;
173
176
  messages: {
177
+ usage: string;
174
178
  start: string;
175
179
  stop: string;
176
180
  notStarted: string;
package/lib/index.js CHANGED
@@ -30,6 +30,7 @@ const defaultMessages = {
30
30
  autoStop: "太久没人玩啦,比赛自动结束~"
31
31
  },
32
32
  wzHero: {
33
+ usage: "用法错误!正确用法:猜王者英雄 开始 | [答案] | 提示 | 结束",
33
34
  start: "猜王者英雄开始!本次共 {0} 回合~当前难度:{1}",
34
35
  startUsage: "用法错误!正确用法:猜王者英雄 开始 | [答案] | 提示 | 结束",
35
36
  stop: "猜王者英雄比赛已停止",
@@ -46,9 +47,10 @@ const defaultMessages = {
46
47
  autoStop: "太久没人玩啦,比赛自动结束~"
47
48
  },
48
49
  chengyuImage: {
50
+ usage: "用法错误!正确用法:看图猜成语 开始 | [答案] | 提示 | 结束",
49
51
  start: "看图猜成语比赛开始!本次共 {0} 回合~当前提示级别:{1}",
50
52
  stop: "看图猜成语比赛已停止",
51
- submitUsage: "请直接输入 [答案],或输入 提示 获取线索",
53
+ submitUsage: "用法错误!正确用法:看图猜成语 开始 | [答案] | 提示 | 结束",
52
54
  notStarted: "看图猜成语比赛尚未开始,请输入 看图猜成语 开始 开始游戏",
53
55
  next: "第 {0} 题来啦!",
54
56
  hintGet: "【提示】{0}",
@@ -64,10 +66,11 @@ const defaultMessages = {
64
66
  autoStop: "太久没人玩啦,比赛自动结束~"
65
67
  },
66
68
  chengyuJielong: {
69
+ usage: "用法错误!正确用法:成语接龙 开始 | [成语] | 结束",
67
70
  start: "成语接龙比赛开始!本次共 {0} 回合~我先来~",
68
71
  stop: "成语接龙比赛已停止",
69
72
  notStarted: "成语接龙比赛尚未开始,请输入 成语接龙 开始 开始游戏",
70
- joinUsage: "请直接发送成语参与接龙",
73
+ joinUsage: "用法错误!正确用法:成语接龙 开始 | [成语] | 结束",
71
74
  apiError: "API请求失败,请稍后再试",
72
75
  botTurn: "该我了!我接:{0}",
73
76
  botWin: "哈哈我接不上了!本轮结束~",
@@ -83,6 +86,7 @@ const defaultMessages = {
83
86
  autoStop: "太久没人玩啦,比赛自动结束~"
84
87
  },
85
88
  calc24: {
89
+ usage: "用法错误!正确用法:算24点 开始 | [算式] | 换题 | 结束",
86
90
  start: "算24点游戏开始!本次共 {0} 回合~当前难度:{1}",
87
91
  stop: "算24点游戏已停止",
88
92
  notStarted: "算24点游戏尚未开始,请输入 算24点 开始 开始游戏",
@@ -154,9 +158,9 @@ exports.Config = koishi_1.Schema.intersect([
154
158
  autoPlayDelay: koishi_1.Schema.number().min(0).default(10).description('机器人自动操作延迟(秒)'),
155
159
  autoPlayMaxCount: koishi_1.Schema.number().min(1).default(5).description('机器人最大自动操作次数'),
156
160
  autoStopInactiveTime: koishi_1.Schema.number().min(0).default(60).description('游戏无操作自动停止时间(秒)'),
157
- enablePenalty: koishi_1.Schema.boolean().default(true).description('启用惩罚机制'),
158
- rewardScore: koishi_1.Schema.number().min(0).default(1).description('猜中者奖励分数'),
159
- penaltyScore: koishi_1.Schema.number().max(0).default(-1).description('其他人扣除分数'),
161
+ enablePenalty: koishi_1.Schema.boolean().default(true).description('启用惩罚机制(猜中者扣分,其他人加分)'),
162
+ penaltyScore: koishi_1.Schema.number().max(0).default(-1).description('猜中者扣除分数(负数)'),
163
+ rewardScore: koishi_1.Schema.number().min(0).default(1).description('其他人奖励分数'),
160
164
  messages: koishi_1.Schema.object({
161
165
  usage: koishi_1.Schema.string().default(defaultMessages.guessNumber.usage).description('用法错误提示\n{0}-最小值, {1}-最大值'),
162
166
  start: koishi_1.Schema.string().default(defaultMessages.guessNumber.start).description('游戏开始提示\n{0}-总回合数'),
@@ -170,7 +174,7 @@ exports.Config = koishi_1.Schema.intersect([
170
174
  rankTitle: koishi_1.Schema.string().default(defaultMessages.guessNumber.rankTitle).description('本局排行榜标题'),
171
175
  rankEmpty: koishi_1.Schema.string().default(defaultMessages.guessNumber.rankEmpty).description('本局排行榜为空提示'),
172
176
  disabled: koishi_1.Schema.string().default(defaultMessages.guessNumber.disabled).description('功能禁用提示'),
173
- autoStop: koishi_1.Schema.string().default("太久没人玩啦,比赛自动结束~").description('自动停止提示'),
177
+ autoStop: koishi_1.Schema.string().default(defaultMessages.guessNumber.autoStop).description('自动停止提示'),
174
178
  }).description('💬 猜数字消息配置'),
175
179
  }).description('🎲 猜数字游戏配置'),
176
180
  }),
@@ -182,6 +186,7 @@ exports.Config = koishi_1.Schema.intersect([
182
186
  autoStopInactiveTime: koishi_1.Schema.number().min(0).default(60).description('游戏无操作自动停止时间(秒)'),
183
187
  rewardScore: koishi_1.Schema.number().min(0).default(1).description('答对奖励分数'),
184
188
  messages: koishi_1.Schema.object({
189
+ usage: koishi_1.Schema.string().default(defaultMessages.wzHero.usage).description('用法错误提示'),
185
190
  start: koishi_1.Schema.string().default(defaultMessages.wzHero.start).description('游戏开始提示\n{0}-总回合数, {1}-难度'),
186
191
  startUsage: koishi_1.Schema.string().default(defaultMessages.wzHero.startUsage).description('开始用法提示'),
187
192
  stop: koishi_1.Schema.string().default(defaultMessages.wzHero.stop).description('游戏停止提示'),
@@ -195,7 +200,7 @@ exports.Config = koishi_1.Schema.intersect([
195
200
  rankTitle: koishi_1.Schema.string().default(defaultMessages.wzHero.rankTitle).description('本局排行榜标题'),
196
201
  rankEmpty: koishi_1.Schema.string().default(defaultMessages.wzHero.rankEmpty).description('本局排行榜为空提示'),
197
202
  disabled: koishi_1.Schema.string().default(defaultMessages.wzHero.disabled).description('功能禁用提示'),
198
- autoStop: koishi_1.Schema.string().default("太久没人玩啦,比赛自动结束~").description('自动停止提示'),
203
+ autoStop: koishi_1.Schema.string().default(defaultMessages.wzHero.autoStop).description('自动停止提示'),
199
204
  }).description('💬 王者英雄猜谜消息配置'),
200
205
  }).description('⚔️ 王者英雄猜谜配置'),
201
206
  }),
@@ -207,6 +212,7 @@ exports.Config = koishi_1.Schema.intersect([
207
212
  autoStopInactiveTime: koishi_1.Schema.number().min(0).default(60).description('游戏无操作自动停止时间(秒)'),
208
213
  rewardScore: koishi_1.Schema.number().min(0).default(1).description('答对奖励分数'),
209
214
  messages: koishi_1.Schema.object({
215
+ usage: koishi_1.Schema.string().default(defaultMessages.chengyuImage.usage).description('用法错误提示'),
210
216
  start: koishi_1.Schema.string().default(defaultMessages.chengyuImage.start).description('游戏开始提示\n{0}-总回合数, {1}-提示级别'),
211
217
  stop: koishi_1.Schema.string().default(defaultMessages.chengyuImage.stop).description('游戏停止提示'),
212
218
  submitUsage: koishi_1.Schema.string().default(defaultMessages.chengyuImage.submitUsage).description('提交答案用法提示'),
@@ -222,7 +228,7 @@ exports.Config = koishi_1.Schema.intersect([
222
228
  rankTitle: koishi_1.Schema.string().default(defaultMessages.chengyuImage.rankTitle).description('本局排行榜标题'),
223
229
  rankEmpty: koishi_1.Schema.string().default(defaultMessages.chengyuImage.rankEmpty).description('本局排行榜为空提示'),
224
230
  disabled: koishi_1.Schema.string().default(defaultMessages.chengyuImage.disabled).description('功能禁用提示'),
225
- autoStop: koishi_1.Schema.string().default("太久没人玩啦,比赛自动结束~").description('自动停止提示'),
231
+ autoStop: koishi_1.Schema.string().default(defaultMessages.chengyuImage.autoStop).description('自动停止提示'),
226
232
  }).description('💬 看图猜成语消息配置'),
227
233
  }).description('🖼️ 看图猜成语配置'),
228
234
  }),
@@ -237,6 +243,7 @@ exports.Config = koishi_1.Schema.intersect([
237
243
  botParticipate: koishi_1.Schema.boolean().default(false).description('机器人是否参与接龙'),
238
244
  rewardScore: koishi_1.Schema.number().min(0).default(1).description('接龙成功奖励分数'),
239
245
  messages: koishi_1.Schema.object({
246
+ usage: koishi_1.Schema.string().default(defaultMessages.chengyuJielong.usage).description('用法错误提示'),
240
247
  start: koishi_1.Schema.string().default(defaultMessages.chengyuJielong.start).description('游戏开始提示\n{0}-总回合数'),
241
248
  stop: koishi_1.Schema.string().default(defaultMessages.chengyuJielong.stop).description('游戏停止提示'),
242
249
  notStarted: koishi_1.Schema.string().default(defaultMessages.chengyuJielong.notStarted).description('游戏未开始提示'),
@@ -253,7 +260,7 @@ exports.Config = koishi_1.Schema.intersect([
253
260
  rankTitle: koishi_1.Schema.string().default(defaultMessages.chengyuJielong.rankTitle).description('本局排行榜标题'),
254
261
  rankEmpty: koishi_1.Schema.string().default(defaultMessages.chengyuJielong.rankEmpty).description('本局排行榜为空提示'),
255
262
  disabled: koishi_1.Schema.string().default(defaultMessages.chengyuJielong.disabled).description('功能禁用提示'),
256
- autoStop: koishi_1.Schema.string().default("太久没人玩啦,比赛自动结束~").description('自动停止提示'),
263
+ autoStop: koishi_1.Schema.string().default(defaultMessages.chengyuJielong.autoStop).description('自动停止提示'),
257
264
  }).description('💬 成语接龙消息配置'),
258
265
  }).description('🐉 成语接龙配置'),
259
266
  }),
@@ -279,6 +286,7 @@ exports.Config = koishi_1.Schema.intersect([
279
286
  autoStopInactiveTime: koishi_1.Schema.number().min(0).default(60).description('游戏无操作自动停止时间(秒)'),
280
287
  rewardScore: koishi_1.Schema.number().min(0).default(1).description('答对奖励分数'),
281
288
  messages: koishi_1.Schema.object({
289
+ usage: koishi_1.Schema.string().default(defaultMessages.calc24.usage).description('用法错误提示'),
282
290
  start: koishi_1.Schema.string().default(defaultMessages.calc24.start).description('游戏开始提示\n{0}-总回合数, {1}-难度'),
283
291
  stop: koishi_1.Schema.string().default(defaultMessages.calc24.stop).description('游戏停止提示'),
284
292
  notStarted: koishi_1.Schema.string().default(defaultMessages.calc24.notStarted).description('游戏未开始提示'),
@@ -291,7 +299,7 @@ exports.Config = koishi_1.Schema.intersect([
291
299
  rankTitle: koishi_1.Schema.string().default(defaultMessages.calc24.rankTitle).description('本局排行榜标题'),
292
300
  rankEmpty: koishi_1.Schema.string().default(defaultMessages.calc24.rankEmpty).description('本局排行榜为空提示'),
293
301
  disabled: koishi_1.Schema.string().default(defaultMessages.calc24.disabled).description('功能禁用提示'),
294
- autoStop: koishi_1.Schema.string().default("太久没人玩啦,比赛自动结束~").description('自动停止提示'),
302
+ autoStop: koishi_1.Schema.string().default(defaultMessages.calc24.autoStop).description('自动停止提示'),
295
303
  }).description('💬 算24点消息配置'),
296
304
  }).description('🧮 算24点配置'),
297
305
  }),
@@ -303,8 +311,8 @@ exports.Config = koishi_1.Schema.intersect([
303
311
  koishi_1.Schema.object({
304
312
  commonMessages: koishi_1.Schema.object({
305
313
  gameRunning: koishi_1.Schema.string().default(defaultMessages.common.gameRunning).description('游戏运行中提示'),
306
- gameStoppedByInactive: koishi_1.Schema.string().default("太久没人玩啦,比赛自动结束~").description('无操作停止提示'),
307
- paramError: koishi_1.Schema.string().default("❌ 参数错误!请检查输入格式").description('参数错误提示'),
314
+ gameStoppedByInactive: koishi_1.Schema.string().default(defaultMessages.common.gameStoppedByInactive).description('无操作停止提示'),
315
+ paramError: koishi_1.Schema.string().default(defaultMessages.common.paramError).description('参数错误提示'),
308
316
  }).description('💬 通用消息配置'),
309
317
  }),
310
318
  ]);
@@ -397,7 +405,7 @@ async function apply(ctx, cfg) {
397
405
  playCount: 0,
398
406
  lastGameTime: 0
399
407
  };
400
- const id = await ctx.database.create('game_mini_player', newPlayer);
408
+ await ctx.database.create('game_mini_player', newPlayer);
401
409
  return {
402
410
  guildId,
403
411
  platform,
@@ -1083,17 +1091,17 @@ async function apply(ctx, cfg) {
1083
1091
  return;
1084
1092
  }
1085
1093
  if (num === st.guessNumber.target) {
1086
- st.guessNumber.players[playerKey].score += cfg.guessNumber.rewardScore;
1087
- st.guessNumber.players[playerKey].correctCount += 1;
1094
+ st.guessNumber.players[playerKey].score += cfg.guessNumber.penaltyScore;
1088
1095
  await savePlayerData(session, st.guessNumber.players[playerKey]);
1089
1096
  let message = d.guessNumber.correct;
1090
1097
  if (cfg.guessNumber.enablePenalty) {
1091
1098
  Object.keys(st.guessNumber.players).forEach(key => {
1092
1099
  if (key !== playerKey) {
1093
- st.guessNumber.players[key].score += cfg.guessNumber.penaltyScore;
1100
+ st.guessNumber.players[key].score += cfg.guessNumber.rewardScore;
1094
1101
  savePlayerData(session, st.guessNumber.players[key]);
1095
1102
  }
1096
1103
  });
1104
+ message += `\n猜中者被扣 ${-cfg.guessNumber.penaltyScore} 分,其他玩家各加 ${cfg.guessNumber.rewardScore} 分`;
1097
1105
  }
1098
1106
  await session.send(message);
1099
1107
  st.guessNumber.currentRound += 1;
@@ -1273,7 +1281,7 @@ async function apply(ctx, cfg) {
1273
1281
  gameStates.set(key, st);
1274
1282
  }
1275
1283
  else {
1276
- await session.send(d.wzHero.startUsage);
1284
+ await session.send(d.wzHero.usage);
1277
1285
  }
1278
1286
  });
1279
1287
  ctx.command('看图猜成语 <action>', '看图猜成语')
@@ -1325,7 +1333,7 @@ async function apply(ctx, cfg) {
1325
1333
  gameStates.set(key, st);
1326
1334
  }
1327
1335
  else {
1328
- await session.send('请直接输入答案或 提示');
1336
+ await session.send(d.chengyuImage.usage);
1329
1337
  }
1330
1338
  });
1331
1339
  ctx.command('成语接龙 <action>', '成语接龙')
@@ -1350,8 +1358,10 @@ async function apply(ctx, cfg) {
1350
1358
  st.chengyuJielong.autoPlayCount = 0;
1351
1359
  st.chengyuJielong.jielongCount = 0;
1352
1360
  await session.send(d.chengyuJielong.start.replace('{0}', st.chengyuJielong.totalRounds.toString()));
1361
+ setTimeout(() => {
1362
+ scheduleAutoPlay(session, key, st);
1363
+ }, 100);
1353
1364
  gameStates.set(key, st);
1354
- scheduleAutoPlay(session, key, st);
1355
1365
  setupAutoStop(session, st.chengyuJielong, 'chengyuJielong', d.chengyuJielong.autoStop, cfg.chengyuJielong.showRank, d.chengyuJielong.rankTitle, d.chengyuJielong.rankEmpty);
1356
1366
  }
1357
1367
  else if (action === '结束') {
@@ -1360,7 +1370,7 @@ async function apply(ctx, cfg) {
1360
1370
  gameStates.set(key, st);
1361
1371
  }
1362
1372
  else {
1363
- await session.send('请直接发送成语参与游戏');
1373
+ await session.send(d.chengyuJielong.usage);
1364
1374
  }
1365
1375
  });
1366
1376
  ctx.command('算24点 <action>', '算24点游戏')
@@ -1399,7 +1409,7 @@ async function apply(ctx, cfg) {
1399
1409
  gameStates.set(key, st);
1400
1410
  }
1401
1411
  else {
1402
- await session.send('请输入:算24点 开始 或 算24点 结束');
1412
+ await session.send(d.calc24.usage);
1403
1413
  }
1404
1414
  });
1405
1415
  if (cfg.rank.enableCommand) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "koishi-plugin-game-mini",
3
- "version": "0.2.7",
3
+ "version": "0.2.8",
4
4
  "description": "Koishi多功能小游戏合集:猜数字、猜王者英雄、看图猜成语、成语接龙、算24点",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
package/readme.md CHANGED
@@ -95,9 +95,9 @@ This is a lightweight, multi-functional mini-game plugin developed for the Koish
95
95
  | `guessNumber.autoPlayDelay` | 机器人自动操作延迟(秒) | 10 |
96
96
  | `guessNumber.autoPlayMaxCount` | 机器人最大自动操作次数 | 5 |
97
97
  | `guessNumber.autoStopInactiveTime` | 游戏无操作自动停止时间(秒) | 60 |
98
- | `guessNumber.enablePenalty` | 启用惩罚机制 | true |
99
- | `guessNumber.rewardScore` | 猜中者奖励分数 | 1 |
100
- | `guessNumber.penaltyScore` | 其他人扣除分数 | -1 |
98
+ | `guessNumber.enablePenalty` | 启用惩罚机制(猜中者扣分,其他人加分) | true |
99
+ | `guessNumber.penaltyScore` | 猜中者扣除分数(负数) | -1 |
100
+ | `guessNumber.rewardScore` | 其他人奖励分数 | 1 |
101
101
  | **⚔️ 王者英雄猜谜配置** | | |
102
102
  | `wzHero.totalRounds` | 总回合数 | 10 |
103
103
  | `wzHero.showRank` | 游戏结束后显示本局排行榜 | true |
@@ -131,7 +131,7 @@ This is a lightweight, multi-functional mini-game plugin developed for the Koish
131
131
  | **🌐 API接口配置** | | |
132
132
  | `apiConfig.timeout` | API请求超时时间(毫秒) | 5000 |
133
133
  | **💬 通用消息配置** | | |
134
- | `commonMessages.gameRunning` | 游戏运行中提示 | 当前已有游戏在运行中... |
134
+ | `commonMessages.gameRunning` | 游戏运行中提示 | 当前已有游戏在运行中,请先结束当前游戏后再开始新游戏! |
135
135
  | `commonMessages.gameStoppedByInactive` | 无操作停止提示 | 太久没人玩啦,比赛自动结束~ |
136
136
  | `commonMessages.paramError` | 参数错误提示 | ❌ 参数错误!请检查输入格式 |
137
137
 
@@ -164,9 +164,9 @@ This is a lightweight, multi-functional mini-game plugin developed for the Koish
164
164
  | `guessNumber.autoPlayDelay` | Bot auto operation delay (seconds) | 10 |
165
165
  | `guessNumber.autoPlayMaxCount` | Bot maximum auto operation count | 5 |
166
166
  | `guessNumber.autoStopInactiveTime` | Auto stop time due to inactivity (seconds) | 60 |
167
- | `guessNumber.enablePenalty` | Enable penalty mechanism | true |
168
- | `guessNumber.rewardScore` | Reward score for correct guess | 1 |
169
- | `guessNumber.penaltyScore` | Penalty score for others | -1 |
167
+ | `guessNumber.enablePenalty` | Enable penalty mechanism (guesser loses points, others gain) | true |
168
+ | `guessNumber.penaltyScore` | Points deducted from guesser (negative number) | -1 |
169
+ | `guessNumber.rewardScore` | Points rewarded to others | 1 |
170
170
  | **⚔️ King of Glory Hero Configuration** | | |
171
171
  | `wzHero.totalRounds` | Total rounds | 10 |
172
172
  | `wzHero.showRank` | Show rank after game ends | true |
@@ -200,8 +200,8 @@ This is a lightweight, multi-functional mini-game plugin developed for the Koish
200
200
  | **🌐 API Configuration** | | |
201
201
  | `apiConfig.timeout` | API request timeout (milliseconds) | 5000 |
202
202
  | **💬 Common Messages Configuration** | | |
203
- | `commonMessages.gameRunning` | Game running prompt | Game is already running... |
204
- | `commonMessages.gameStoppedByInactive` | Inactivity stop prompt | Game auto stopped due to inactivity~ |
203
+ | `commonMessages.gameRunning` | Game running prompt | A game is already running, please end it first before starting a new one! |
204
+ | `commonMessages.gameStoppedByInactive` | Inactivity stop prompt | Too long no activity, game auto ended~ |
205
205
  | `commonMessages.paramError` | Parameter error prompt | ❌ Parameter error! Please check input format |
206
206
 
207
207
  ## 项目贡献者 (Contributors)