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.
- package/lib/index.js +73 -76
- package/package.json +1 -1
- 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]", "查看轮盘列表").
|
|
65
|
+
ctx.command("roulette/轮盘列表 [page:number]", "查看轮盘列表").action(async ({ session }, page = 1) => {
|
|
66
66
|
const pageSize = 10;
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
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
|
-
|
|
79
|
+
});
|
|
80
|
+
message += `
|
|
82
81
|
第${page}页,共${Math.ceil(total / pageSize)}页`;
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
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 }).
|
|
205
|
-
if (!id) return "
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
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
|
-
|
|
215
|
-
if (deleted) {
|
|
216
|
-
return "轮盘删除成功";
|
|
217
|
-
} else {
|
|
218
|
-
return "轮盘不存在";
|
|
219
|
-
}
|
|
208
|
+
return "轮盘不存在";
|
|
220
209
|
}
|
|
221
210
|
});
|
|
222
|
-
ctx.command("roulette
|
|
223
|
-
if (!
|
|
224
|
-
const
|
|
225
|
-
if (
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
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
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
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
|
-
|
|
248
|
-
|
|
245
|
+
} else {
|
|
246
|
+
roulettesInfo += `
|
|
249
247
|
- 轮盘 ID ${rouletteId}: 已删除`;
|
|
250
|
-
}
|
|
251
248
|
}
|
|
252
|
-
|
|
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
package/readme.md
CHANGED
|
@@ -69,12 +69,12 @@ roulette/轮盘列表 2 // 查看第2页
|
|
|
69
69
|
|
|
70
70
|
### 4. 查看轮盘组列表
|
|
71
71
|
|
|
72
|
-
使用 `roulette
|
|
72
|
+
使用 `roulette/轮盘组列表` 指令查看所有轮盘组的列表。
|
|
73
73
|
|
|
74
74
|
**示例:**
|
|
75
75
|
```
|
|
76
|
-
roulette
|
|
77
|
-
roulette
|
|
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
|
|
106
|
+
使用 `roulette/删除轮盘组` 指令删除指定ID的轮盘组。
|
|
107
107
|
|
|
108
108
|
**示例:**
|
|
109
109
|
```
|
|
110
|
-
roulette
|
|
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
|
|
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
|
|
145
|
-
| `roulette/轮盘详情 <
|
|
144
|
+
| `roulette/删除轮盘组 <id:number>` | 删除轮盘组 | 3 |
|
|
145
|
+
| `roulette/轮盘详情 <id:number>` | 查看轮盘详情 | 无 |
|
|
146
|
+
| `roulette/轮盘组详情 <name>` | 查看轮盘组详情 | 无 |
|
|
146
147
|
|
|
147
148
|
## 示例场景
|
|
148
149
|
|