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 CHANGED
@@ -89,6 +89,7 @@ export interface exchange {
89
89
  userId: string;
90
90
  handle: string;
91
91
  item: string;
92
+ type: string;
92
93
  date: Date;
93
94
  }
94
95
  export interface adminbenefit {
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: "id",
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/领取福利 <name>").action(async (argv, name2) => {
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}级扭蛋 或 ${configname.cost}个兑奖券` : `需要 ${configname.cost}个兑奖券`;
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 `物品: ${e.item} | 时间: ${cnTime}`;
1035
+ return `${e.type}: ${e.item} | 时间: ${cnTime}`;
1030
1036
  }).join("\n");
1031
1037
  return `${handle} 的兑换记录:
1032
1038
  ${output}`;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "koishi-plugin-ggcevo-game",
3
3
  "description": "星际争霸2游戏大厅地图咕咕虫-evo小游戏",
4
- "version": "0.3.8",
4
+ "version": "0.3.11",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
7
7
  "files": [