koishi-plugin-ggcevo-game 2.0.9 → 2.0.10
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 +40 -21
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -13397,32 +13397,51 @@ ID: ${group.id}
|
|
|
13397
13397
|
if (rouletteIds.length === 0) {
|
|
13398
13398
|
return "该轮盘组没有可抽奖的轮盘";
|
|
13399
13399
|
}
|
|
13400
|
-
const
|
|
13401
|
-
|
|
13402
|
-
|
|
13403
|
-
|
|
13404
|
-
|
|
13405
|
-
|
|
13406
|
-
|
|
13407
|
-
|
|
13400
|
+
const roulettes = await Promise.all(
|
|
13401
|
+
rouletteIds.map(async (id) => {
|
|
13402
|
+
const roulette = await ctx.model.get("roulettes", { id });
|
|
13403
|
+
return roulette && roulette.length > 0 ? roulette[0] : null;
|
|
13404
|
+
})
|
|
13405
|
+
);
|
|
13406
|
+
const validRoulettes = roulettes.filter((roulette) => roulette !== null);
|
|
13407
|
+
if (validRoulettes.length === 0) {
|
|
13408
|
+
return "轮盘组中的轮盘已不存在";
|
|
13408
13409
|
}
|
|
13409
|
-
const results =
|
|
13410
|
-
|
|
13411
|
-
|
|
13412
|
-
|
|
13410
|
+
const results = validRoulettes.map((roulette) => {
|
|
13411
|
+
if (roulette.items.length === 0) {
|
|
13412
|
+
return { id: roulette.id, result: "(无选项)" };
|
|
13413
|
+
}
|
|
13414
|
+
const randomIndex = Math.floor(Math.random() * roulette.items.length);
|
|
13415
|
+
return { id: roulette.id, result: roulette.items[randomIndex] };
|
|
13416
|
+
});
|
|
13417
|
+
let finalResults;
|
|
13418
|
+
if (count <= validRoulettes.length) {
|
|
13419
|
+
finalResults = results.slice(0, count);
|
|
13420
|
+
} else {
|
|
13421
|
+
finalResults = [...results];
|
|
13422
|
+
for (let i = validRoulettes.length; i < count; i++) {
|
|
13423
|
+
const randomRouletteIndex = Math.floor(Math.random() * validRoulettes.length);
|
|
13424
|
+
const roulette = validRoulettes[randomRouletteIndex];
|
|
13425
|
+
if (roulette.items.length > 0) {
|
|
13426
|
+
const randomIndex = Math.floor(Math.random() * roulette.items.length);
|
|
13427
|
+
finalResults.push({
|
|
13428
|
+
id: roulette.id,
|
|
13429
|
+
result: roulette.items[randomIndex],
|
|
13430
|
+
isAdditional: true
|
|
13431
|
+
});
|
|
13432
|
+
}
|
|
13433
|
+
}
|
|
13413
13434
|
}
|
|
13414
13435
|
let message = `轮盘组: ${target}
|
|
13415
|
-
(从轮盘 ID: ${randomRouletteId} 中抽取)
|
|
13416
|
-
抽奖结果:
|
|
13417
13436
|
`;
|
|
13418
|
-
|
|
13419
|
-
|
|
13420
|
-
} else {
|
|
13421
|
-
results.forEach((result, index) => {
|
|
13422
|
-
message += `${index + 1}. ${result}
|
|
13437
|
+
message += `抽奖结果(从${finalResults.length}个轮盘中各抽取1个):
|
|
13438
|
+
|
|
13423
13439
|
`;
|
|
13424
|
-
|
|
13425
|
-
|
|
13440
|
+
finalResults.forEach((item, index) => {
|
|
13441
|
+
const prefix = item.isAdditional ? `附加${index - validRoulettes.length + 1}.` : `${index + 1}.`;
|
|
13442
|
+
message += `${prefix} [轮盘ID: ${item.id}] ${item.result}
|
|
13443
|
+
`;
|
|
13444
|
+
});
|
|
13426
13445
|
return message;
|
|
13427
13446
|
}
|
|
13428
13447
|
});
|