koishi-plugin-roulettes 1.0.0 → 1.0.2

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 (3) hide show
  1. package/lib/index.js +73 -76
  2. package/package.json +1 -1
  3. package/readme.md +11 -10
package/lib/index.js CHANGED
@@ -62,45 +62,43 @@ function apply(ctx, _config) {
62
62
  return "创建轮盘失败:" + error.message;
63
63
  }
64
64
  });
65
- ctx.command("roulette/轮盘列表 [page:number]", "查看轮盘列表").option("group", "-g 查看轮盘组列表").action(async ({ session, options }, page = 1) => {
65
+ ctx.command("roulette/轮盘列表 [page:number]", "查看轮盘列表").action(async ({ session }, page = 1) => {
66
66
  const pageSize = 10;
67
- if (options.group) {
68
- const groups = await ctx.model.get("roulette_groups", {});
69
- const total = groups.length;
70
- const start = (page - 1) * pageSize;
71
- const end = start + pageSize;
72
- const pagedGroups = groups.slice(start, end);
73
- if (pagedGroups.length === 0) {
74
- return "暂无轮盘组";
75
- }
76
- let message = "轮盘组列表:\n";
77
- pagedGroups.forEach((group) => {
78
- message += `ID: ${group.id} | 名称: ${group.name} | 包含轮盘数: ${group.items.length}
67
+ const roulettes = await ctx.model.get("roulettes", {});
68
+ const total = roulettes.length;
69
+ const start = (page - 1) * pageSize;
70
+ const end = start + pageSize;
71
+ const pagedRoulettes = roulettes.slice(start, end);
72
+ if (pagedRoulettes.length === 0) {
73
+ return "暂无轮盘";
74
+ }
75
+ let message = "轮盘列表:\n";
76
+ pagedRoulettes.forEach((roulette) => {
77
+ message += `ID: ${roulette.id} | 选项数: ${roulette.items.length}
79
78
  `;
80
- });
81
- message += `
79
+ });
80
+ message += `
82
81
  第${page}页,共${Math.ceil(total / pageSize)}页`;
83
- return message;
84
- } else {
85
- const roulettes = await ctx.model.get("roulettes", {});
86
- const total = roulettes.length;
87
- const start = (page - 1) * pageSize;
88
- const end = start + pageSize;
89
- const pagedRoulettes = roulettes.slice(start, end);
90
- if (pagedRoulettes.length === 0) {
91
- return "暂无轮盘";
92
- }
93
- let message = "轮盘列表:\n";
94
- pagedRoulettes.forEach((roulette) => {
95
- message += `ID: ${roulette.id} | 选项数: ${roulette.items.length}
96
- `;
97
- message += `选项: ${roulette.items.join("、")}
98
-
99
- `;
100
- });
101
- message += `第${page}页,共${Math.ceil(total / pageSize)}页`;
102
- return message;
82
+ return message;
83
+ });
84
+ ctx.command("roulette/轮盘组列表 [page:number]", "查看轮盘组列表").action(async ({ session }, page = 1) => {
85
+ const pageSize = 10;
86
+ const groups = await ctx.model.get("roulette_groups", {});
87
+ const total = groups.length;
88
+ const start = (page - 1) * pageSize;
89
+ const end = start + pageSize;
90
+ const pagedGroups = groups.slice(start, end);
91
+ if (pagedGroups.length === 0) {
92
+ return "暂无轮盘组";
103
93
  }
94
+ let message = "轮盘组列表:\n";
95
+ pagedGroups.forEach((group) => {
96
+ message += `ID: ${group.id} | 名称: ${group.name} | 包含轮盘数: ${group.items.length}
97
+ `;
98
+ });
99
+ message += `
100
+ 第${page}页,共${Math.ceil(total / pageSize)}页`;
101
+ return message;
104
102
  });
105
103
  ctx.command("roulette/创建轮盘组 <name> <rouletteIds:text>", "创建轮盘组(轮盘ID用逗号分隔)", { authority: 3 }).action(async ({ session }, name2, rouletteIds) => {
106
104
  if (!name2) return "请输入轮盘组名称";
@@ -201,59 +199,58 @@ ID: ${group.id}
201
199
  return message;
202
200
  }
203
201
  });
204
- ctx.command("roulette/删除轮盘 <id:number>", "删除轮盘", { authority: 3 }).option("group", "-g 删除轮盘组").action(async ({ session, options }, id) => {
205
- if (!id) return "请输入要删除的ID";
206
- if (options.group) {
207
- const deleted = await ctx.model.remove("roulette_groups", { id });
208
- if (deleted) {
209
- return "轮盘组删除成功";
210
- } else {
211
- return "轮盘组不存在";
212
- }
202
+ ctx.command("roulette/删除轮盘 <id:number>", "删除轮盘", { authority: 3 }).action(async ({ session }, id) => {
203
+ if (!id) return "请输入要删除的轮盘ID";
204
+ const deleted = await ctx.model.remove("roulettes", { id });
205
+ if (deleted) {
206
+ return "轮盘删除成功";
213
207
  } else {
214
- const deleted = await ctx.model.remove("roulettes", { id });
215
- if (deleted) {
216
- return "轮盘删除成功";
217
- } else {
218
- return "轮盘不存在";
219
- }
208
+ return "轮盘不存在";
220
209
  }
221
210
  });
222
- ctx.command("roulette/轮盘详情 <target>", "查看轮盘或轮盘组详情").action(async ({ session }, target) => {
223
- if (!target) return "请输入轮盘ID(数字)或轮盘组名称(中文)";
224
- const isNumeric = /^\d+$/.test(target);
225
- if (isNumeric) {
226
- const roulette = await ctx.model.get("roulettes", { id: parseInt(target) });
227
- if (!roulette || roulette.length === 0) {
228
- return `轮盘 ID ${target} 不存在`;
229
- }
230
- const data = roulette[0];
231
- return `轮盘 ID: ${data.id}
211
+ ctx.command("roulette/删除轮盘组 <id:number>", "删除轮盘组", { authority: 3 }).action(async ({ session }, id) => {
212
+ if (!id) return "请输入要删除的轮盘组ID";
213
+ const deleted = await ctx.model.remove("roulette_groups", { id });
214
+ if (deleted) {
215
+ return "轮盘组删除成功";
216
+ } else {
217
+ return "轮盘组不存在";
218
+ }
219
+ });
220
+ ctx.command("roulette/轮盘详情 <id:number>", "查看轮盘详情").action(async ({ session }, id) => {
221
+ if (!id) return "请输入轮盘ID";
222
+ const roulette = await ctx.model.get("roulettes", { id });
223
+ if (!roulette || roulette.length === 0) {
224
+ return `轮盘 ID ${id} 不存在`;
225
+ }
226
+ const data = roulette[0];
227
+ return `轮盘 ID: ${data.id}
232
228
  选项数: ${data.items.length}
233
229
  选项列表:
234
230
  ${data.items.map((item, index) => `${index + 1}. ${item}`).join("\n")}`;
235
- } else {
236
- const group = await ctx.model.get("roulette_groups", { name: target });
237
- if (!group || group.length === 0) {
238
- return `轮盘组 "${target}" 不存在`;
239
- }
240
- const data = group[0];
241
- let roulettesInfo = "";
242
- for (const rouletteId of data.items) {
243
- const roulette = await ctx.model.get("roulettes", { id: rouletteId });
244
- if (roulette && roulette.length > 0) {
245
- roulettesInfo += `
231
+ });
232
+ ctx.command("roulette/轮盘组详情 <name>", "查看轮盘组详情").action(async ({ session }, name2) => {
233
+ if (!name2) return "请输入轮盘组名称";
234
+ const group = await ctx.model.get("roulette_groups", { name: name2 });
235
+ if (!group || group.length === 0) {
236
+ return `轮盘组 "${name2}" 不存在`;
237
+ }
238
+ const data = group[0];
239
+ let roulettesInfo = "";
240
+ for (const rouletteId of data.items) {
241
+ const roulette = await ctx.model.get("roulettes", { id: rouletteId });
242
+ if (roulette && roulette.length > 0) {
243
+ roulettesInfo += `
246
244
  - 轮盘 ID ${rouletteId}: ${roulette[0].items.length} 个选项`;
247
- } else {
248
- roulettesInfo += `
245
+ } else {
246
+ roulettesInfo += `
249
247
  - 轮盘 ID ${rouletteId}: 已删除`;
250
- }
251
248
  }
252
- return `轮盘组: ${data.name}
249
+ }
250
+ return `轮盘组: ${data.name}
253
251
  ID: ${data.id}
254
252
  包含轮盘数: ${data.items.length}
255
253
  轮盘列表:${roulettesInfo}`;
256
- }
257
254
  });
258
255
  }
259
256
  __name(apply, "apply");
package/package.json CHANGED
@@ -10,7 +10,7 @@
10
10
  "url": "https://github.com/forgetmelodyXL/roulettes/issues"
11
11
  },
12
12
  "homepage": "https://github.com/forgetmelodyXL/roulettes#readme",
13
- "version": "1.0.0",
13
+ "version": "1.0.2",
14
14
  "main": "lib/index.js",
15
15
  "typings": "lib/index.d.ts",
16
16
  "files": [
package/readme.md CHANGED
@@ -69,12 +69,12 @@ roulette/轮盘列表 2 // 查看第2页
69
69
 
70
70
  ### 4. 查看轮盘组列表
71
71
 
72
- 使用 `roulette/轮盘列表 -g` 指令查看所有轮盘组的列表。
72
+ 使用 `roulette/轮盘组列表` 指令查看所有轮盘组的列表。
73
73
 
74
74
  **示例:**
75
75
  ```
76
- roulette/轮盘列表 -g
77
- roulette/轮盘列表 -g 2 // 查看第2页
76
+ roulette/轮盘组列表
77
+ roulette/轮盘组列表 2 // 查看第2页
78
78
  ```
79
79
 
80
80
  ### 5. 进行抽奖
@@ -103,11 +103,11 @@ roulette/删除轮盘 1
103
103
 
104
104
  ### 7. 删除轮盘组
105
105
 
106
- 使用 `roulette/删除轮盘 -g` 指令删除指定ID的轮盘组。
106
+ 使用 `roulette/删除轮盘组` 指令删除指定ID的轮盘组。
107
107
 
108
108
  **示例:**
109
109
  ```
110
- roulette/删除轮盘 -g 1
110
+ roulette/删除轮盘组 1
111
111
  ```
112
112
 
113
113
  **权限要求:** 权限等级 3
@@ -123,11 +123,11 @@ roulette/轮盘详情 1
123
123
 
124
124
  ### 9. 查看轮盘组详情
125
125
 
126
- 使用 `roulette/轮盘详情` 指令查看指定轮盘组名称的详细信息。
126
+ 使用 `roulette/轮盘组详情` 指令查看指定轮盘组名称的详细信息。
127
127
 
128
128
  **示例:**
129
129
  ```
130
- roulette/轮盘详情 幸运抽奖
130
+ roulette/轮盘组详情 幸运抽奖
131
131
  ```
132
132
 
133
133
  ## 指令列表
@@ -137,12 +137,13 @@ roulette/轮盘详情 幸运抽奖
137
137
  | `roulette/创建轮盘 <items:text>` | 创建轮盘(用逗号分隔选项) | 3 |
138
138
  | `roulette/创建轮盘组 <name> <rouletteIds:text>` | 创建轮盘组(轮盘ID用逗号分隔) | 3 |
139
139
  | `roulette/轮盘列表 [page:number]` | 查看轮盘列表 | 无 |
140
- | `roulette/轮盘列表 -g [page:number]` | 查看轮盘组列表 | 无 |
140
+ | `roulette/轮盘组列表 [page:number]` | 查看轮盘组列表 | 无 |
141
141
  | `roulette/轮盘抽奖 <target>` | 抽奖(输入轮盘ID或轮盘组名称) | 无 |
142
142
  | `roulette/轮盘抽奖 <target> -c <count:number>` | 抽奖(指定次数,1-10次) | 无 |
143
143
  | `roulette/删除轮盘 <id:number>` | 删除轮盘 | 3 |
144
- | `roulette/删除轮盘 -g <id:number>` | 删除轮盘组 | 3 |
145
- | `roulette/轮盘详情 <target>` | 查看轮盘或轮盘组详情 | 无 |
144
+ | `roulette/删除轮盘组 <id:number>` | 删除轮盘组 | 3 |
145
+ | `roulette/轮盘详情 <id:number>` | 查看轮盘详情 | 无 |
146
+ | `roulette/轮盘组详情 <name>` | 查看轮盘组详情 | 无 |
146
147
 
147
148
  ## 示例场景
148
149