koishi-plugin-ggcevo-game 0.3.8 → 0.3.11
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 +1 -0
- package/lib/index.js +45 -39
- package/package.json +1 -1
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -46,9 +46,7 @@ function apply(ctx, config) {
|
|
|
46
46
|
description: "text",
|
|
47
47
|
effect: "json"
|
|
48
48
|
}, {
|
|
49
|
-
primary: "
|
|
50
|
-
autoInc: true,
|
|
51
|
-
unique: ["name"]
|
|
49
|
+
primary: "name"
|
|
52
50
|
});
|
|
53
51
|
ctx.model.extend("ggcevo_backpack", {
|
|
54
52
|
handle: "string",
|
|
@@ -146,6 +144,7 @@ function apply(ctx, config) {
|
|
|
146
144
|
// 句柄
|
|
147
145
|
item: "string",
|
|
148
146
|
// 兑换物品
|
|
147
|
+
type: "string",
|
|
149
148
|
date: "timestamp"
|
|
150
149
|
}, {
|
|
151
150
|
// 额外配置
|
|
@@ -166,13 +165,13 @@ function apply(ctx, config) {
|
|
|
166
165
|
});
|
|
167
166
|
async function initDefaultItems() {
|
|
168
167
|
const defaultItems = [
|
|
169
|
-
{ name: "咕咕币", type: "consumable", description: "用于进行抽奖" },
|
|
170
|
-
{ name: "兑换券", type: "material", description: "
|
|
171
|
-
{ name: "扭蛋币", type: "consumable", description: "用于进行宠物扭蛋" },
|
|
172
|
-
{ name: "t3级宠物扭蛋", type: "material", description: "用于兑换t3系列宠物" },
|
|
173
|
-
{ name: "t2级宠物扭蛋", type: "material", description: "用于兑换t2系列宠物" },
|
|
174
|
-
{ name: "t1级宠物扭蛋", type: "material", description: "用于兑换t1系列宠物" },
|
|
175
|
-
{ name: "t0级宠物扭蛋", type: "material", description: "用于兑换t0系列宠物" }
|
|
168
|
+
{ id: 1, name: "咕咕币", type: "consumable", description: "用于进行抽奖" },
|
|
169
|
+
{ id: 2, name: "兑换券", type: "material", description: "用于兑换赞助物品" },
|
|
170
|
+
{ id: 3, name: "扭蛋币", type: "consumable", description: "用于进行宠物扭蛋" },
|
|
171
|
+
{ id: 4, name: "t3级宠物扭蛋", type: "material", description: "用于兑换t3系列宠物" },
|
|
172
|
+
{ id: 5, name: "t2级宠物扭蛋", type: "material", description: "用于兑换t2系列宠物" },
|
|
173
|
+
{ id: 6, name: "t1级宠物扭蛋", type: "material", description: "用于兑换t1系列宠物" },
|
|
174
|
+
{ id: 7, name: "t0级宠物扭蛋", type: "material", description: "用于兑换t0系列宠物" }
|
|
176
175
|
];
|
|
177
176
|
await ctx.database.upsert("ggcevo_items", defaultItems, ["name"]);
|
|
178
177
|
}
|
|
@@ -516,10 +515,12 @@ ${itemDetails.join("\n")}`;
|
|
|
516
515
|
}]);
|
|
517
516
|
return `[管理专属] 成功领取本月津贴!获得 50 枚咕咕币`;
|
|
518
517
|
});
|
|
519
|
-
ctx.command("ggcevo/领取福利
|
|
518
|
+
ctx.command("ggcevo/领取福利").alias("领取奖励").action(async (argv) => {
|
|
520
519
|
const session = argv.session;
|
|
520
|
+
await session.send("请在30秒内输入活动名称:\n(输入 咕咕币活动 以查看活动列表)");
|
|
521
|
+
const name2 = await session.prompt(3e4);
|
|
521
522
|
if (!name2) {
|
|
522
|
-
return "
|
|
523
|
+
return "输入超时,请重新输入指令。";
|
|
523
524
|
}
|
|
524
525
|
const [profile] = await ctx.database.get("sc2arcade_player", { userId: session.userId });
|
|
525
526
|
if (!profile) return "您的 QQ 未绑定句柄。";
|
|
@@ -592,7 +593,7 @@ ${itemDetails.join("\n")}`;
|
|
|
592
593
|
ID:${activity.id}
|
|
593
594
|
状态:${status}`;
|
|
594
595
|
});
|
|
595
|
-
ctx.command("ggcevo/咕咕币活动", "查看进行中的活动").action(async () => {
|
|
596
|
+
ctx.command("ggcevo/咕咕币活动", "查看进行中的活动").alias("活动列表").action(async () => {
|
|
596
597
|
const activities = await ctx.database.get("ggcevo_activity", {
|
|
597
598
|
status: "进行中"
|
|
598
599
|
// 完全依赖数据库状态
|
|
@@ -759,7 +760,7 @@ ID:${activity.id}
|
|
|
759
760
|
return "服务器繁忙,请稍后尝试。";
|
|
760
761
|
}
|
|
761
762
|
});
|
|
762
|
-
ctx.command("ggcevo/胜点榜 [page]").usage("输入 rank [页码] 查看对应页的排行榜,每页10条").action(async (_, page) => {
|
|
763
|
+
ctx.command("ggcevo/胜点榜 [page]").alias("排行榜").usage("输入 rank [页码] 查看对应页的排行榜,每页10条").action(async (_, page) => {
|
|
763
764
|
const pageNum = parseInt(page) || 1;
|
|
764
765
|
if (pageNum < 1) return "请输入有效的页码。";
|
|
765
766
|
const offset = (pageNum - 1) * 10;
|
|
@@ -913,27 +914,27 @@ ID:${activity.id}
|
|
|
913
914
|
].join("\n");
|
|
914
915
|
});
|
|
915
916
|
const itemConfig = {
|
|
916
|
-
"拾荒者": { quality: "t3", cost: 3 },
|
|
917
|
-
"劳工": { quality: "t3", cost: 3 },
|
|
918
|
-
"老兵": { quality: "t2", cost: 4 },
|
|
919
|
-
"合成人": { quality: "t2", cost: 4 },
|
|
920
|
-
"阿斯塔特": { quality: "t1", cost: 5 },
|
|
921
|
-
"皇家指挥官": { quality: "t1", cost: 5 },
|
|
922
|
-
"个性开场白": { quality: "t1", cost: 5, quantity: 5 },
|
|
923
|
-
"史蒂夫": { quality: "t0", cost: 6, quantity: 1 },
|
|
924
|
-
"ep4": { quality: "t0", cost: 6, quantity: 3 },
|
|
925
|
-
"小狗": { quality: "t3", cost: 3, quantity: 5 },
|
|
926
|
-
"小猫": { quality: "t3", cost: 3, quantity: 5 },
|
|
927
|
-
"小黄鸭": { quality: "t3", cost: 3, quantity: 5 },
|
|
928
|
-
"萌萌熊": { quality: "t2", cost: 4, quantity: 3 },
|
|
929
|
-
"荆棘蜥蜴": { quality: "t2", cost: 4, quantity: 3 },
|
|
930
|
-
"爆笑小狗": { quality: "t1", cost: 5, quantity: 2 },
|
|
931
|
-
"熔岩蟹": { quality: "t1", cost: 5, quantity: 2 },
|
|
932
|
-
"远古蝗虫": { quality: "t1", cost: 5, quantity: 2 },
|
|
933
|
-
"绿毛虫": { quality: "t0", cost: 6, quantity: 1 },
|
|
934
|
-
"妙蛙种子": { quality: "t0", cost: 6, quantity: 1 },
|
|
935
|
-
"皮卡丘": { quality: "t0", cost: 6, quantity: 1 },
|
|
936
|
-
"哆啦A梦": { quality: "t0", cost: 6, quantity: 1 }
|
|
917
|
+
"拾荒者": { quality: "t3", type: "皮肤", cost: 3 },
|
|
918
|
+
"劳工": { quality: "t3", type: "皮肤", cost: 3 },
|
|
919
|
+
"老兵": { quality: "t2", type: "皮肤", cost: 4 },
|
|
920
|
+
"合成人": { quality: "t2", type: "皮肤", cost: 4 },
|
|
921
|
+
"阿斯塔特": { quality: "t1", type: "皮肤", cost: 5 },
|
|
922
|
+
"皇家指挥官": { quality: "t1", type: "皮肤", cost: 5 },
|
|
923
|
+
"个性开场白": { quality: "t1", type: "“入场特效", cost: 5, quantity: 5 },
|
|
924
|
+
"史蒂夫": { quality: "t0", type: "皮肤", cost: 6, quantity: 1 },
|
|
925
|
+
"ep4": { quality: "t0", type: "物品", cost: 6, quantity: 3 },
|
|
926
|
+
"小狗": { quality: "t3", type: "宠物", cost: 3, quantity: 5 },
|
|
927
|
+
"小猫": { quality: "t3", type: "宠物", cost: 3, quantity: 5 },
|
|
928
|
+
"小黄鸭": { quality: "t3", type: "宠物", cost: 3, quantity: 5 },
|
|
929
|
+
"萌萌熊": { quality: "t2", type: "宠物", cost: 4, quantity: 3 },
|
|
930
|
+
"荆棘蜥蜴": { quality: "t2", type: "宠物", cost: 4, quantity: 3 },
|
|
931
|
+
"爆笑小狗": { quality: "t1", type: "宠物", cost: 5, quantity: 2 },
|
|
932
|
+
"熔岩蟹": { quality: "t1", type: "宠物", cost: 5, quantity: 2 },
|
|
933
|
+
"远古蝗虫": { quality: "t1", type: "宠物", cost: 5, quantity: 2 },
|
|
934
|
+
"绿毛虫": { quality: "t0", type: "宠物", cost: 6, quantity: 1 },
|
|
935
|
+
"妙蛙种子": { quality: "t0", type: "宠物", cost: 6, quantity: 1 },
|
|
936
|
+
"皮卡丘": { quality: "t0", type: "宠物", cost: 6, quantity: 1 },
|
|
937
|
+
"哆啦A梦": { quality: "t0", type: "宠物", cost: 6, quantity: 1 }
|
|
937
938
|
};
|
|
938
939
|
ctx.command("ggcevo/兑换", "兑换物品").action(async ({ session }) => {
|
|
939
940
|
try {
|
|
@@ -965,10 +966,13 @@ ${items.join("、")}
|
|
|
965
966
|
if (userRecords.length > 0) return "您已经兑换过该物品";
|
|
966
967
|
if (configname.quantity !== void 0) {
|
|
967
968
|
const globalRecords = await ctx.database.get("ggcevo_exchange", { item: name2 });
|
|
968
|
-
if (globalRecords.length >= configname.quantity) return "
|
|
969
|
+
if (globalRecords.length >= configname.quantity) return "该物品已被兑换尽了";
|
|
969
970
|
}
|
|
970
|
-
const petItems = /* @__PURE__ */ new Set(["小狗", "小猫", "小黄鸭", "萌萌熊", "荆棘蜥蜴", "爆笑小狗", "熔岩蟹", "远古蝗虫", "绿毛虫", "妙蛙种子", "皮卡丘", "哆啦A梦"]);
|
|
971
971
|
const qualityMap = { "t3": 4, "t2": 5, "t1": 6, "t0": 7 };
|
|
972
|
+
const petItems = new Set(
|
|
973
|
+
// 动态生成宠物集合
|
|
974
|
+
Object.entries(itemConfig).filter(([_, config2]) => config2.type === "宠物").map(([name3]) => name3)
|
|
975
|
+
);
|
|
972
976
|
let cost = configname.cost;
|
|
973
977
|
let itemId = 2;
|
|
974
978
|
let couponName = "兑奖券";
|
|
@@ -985,7 +989,7 @@ ${items.join("、")}
|
|
|
985
989
|
}
|
|
986
990
|
const [coupon] = await ctx.database.get("ggcevo_backpack", { handle, itemId });
|
|
987
991
|
if (!coupon || coupon.quantity < cost) {
|
|
988
|
-
const requireMsg = petItems.has(name2) ? `需要 1 个${configname.quality}
|
|
992
|
+
const requireMsg = petItems.has(name2) ? `需要 1 个${configname.quality}级宠物扭蛋 或 ${configname.cost}个兑奖券` : `需要 ${configname.cost}个兑奖券`;
|
|
989
993
|
return `${requireMsg}
|
|
990
994
|
当前持有:${coupon?.quantity || 0}个${couponName}`;
|
|
991
995
|
}
|
|
@@ -999,6 +1003,8 @@ ${items.join("、")}
|
|
|
999
1003
|
userId: session.userId,
|
|
1000
1004
|
handle,
|
|
1001
1005
|
item: name2,
|
|
1006
|
+
type: configname.type,
|
|
1007
|
+
// 从配置中获取类型
|
|
1002
1008
|
date: /* @__PURE__ */ new Date()
|
|
1003
1009
|
});
|
|
1004
1010
|
});
|
|
@@ -1026,7 +1032,7 @@ ${items.join("、")}
|
|
|
1026
1032
|
second: "2-digit",
|
|
1027
1033
|
hour12: false
|
|
1028
1034
|
});
|
|
1029
|
-
return
|
|
1035
|
+
return `${e.type}: ${e.item} | 时间: ${cnTime}`;
|
|
1030
1036
|
}).join("\n");
|
|
1031
1037
|
return `${handle} 的兑换记录:
|
|
1032
1038
|
${output}`;
|