koishi-plugin-ggcevo-game 1.6.36 → 1.6.38
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/boss/attackhandling.d.ts +1 -0
- package/lib/index.js +148 -102
- package/lib/items.d.ts +6 -0
- package/package.json +1 -1
|
@@ -59,4 +59,5 @@ export declare function createNestlingBosses(ctx: any, nestlingNames: string | s
|
|
|
59
59
|
export declare function verifyFinalBlow(ctx: any, session: any, bossName: string, targetBoss: any): Promise<{
|
|
60
60
|
success: boolean;
|
|
61
61
|
updatedBoss?: any;
|
|
62
|
+
verificationPassed?: boolean;
|
|
62
63
|
}>;
|
package/lib/index.js
CHANGED
|
@@ -717,27 +717,27 @@ var initDefaultItems = {
|
|
|
717
717
|
"🎖S2赛季前二十勋章": { id: 115, type: "勋章", description: "" }
|
|
718
718
|
};
|
|
719
719
|
var itemConfig = {
|
|
720
|
-
"拾荒者": { quality: "t3", type: "皮肤", cost: 3, isLimited: false },
|
|
721
|
-
"劳工": { quality: "t3", type: "皮肤", cost: 3, isLimited: false },
|
|
722
|
-
"老兵": { quality: "t2", type: "皮肤", cost: 4, isLimited: false },
|
|
723
|
-
"合成人": { quality: "t2", type: "皮肤", cost: 4, isLimited: false },
|
|
724
|
-
"阿斯塔特": { quality: "t1", type: "皮肤", cost: 5, isLimited: false },
|
|
725
|
-
"皇家指挥官": { quality: "t1", type: "皮肤", cost: 5, isLimited: false },
|
|
726
|
-
"个性开场白": { quality: "t1", type: "入场特效", cost: 5, quantity:
|
|
720
|
+
"拾荒者": { quality: "t3", type: "皮肤", cost: 3, quantity: 8, isLimited: false },
|
|
721
|
+
"劳工": { quality: "t3", type: "皮肤", cost: 3, quantity: 8, isLimited: false },
|
|
722
|
+
"老兵": { quality: "t2", type: "皮肤", cost: 4, quantity: 5, isLimited: false },
|
|
723
|
+
"合成人": { quality: "t2", type: "皮肤", cost: 4, quantity: 5, isLimited: false },
|
|
724
|
+
"阿斯塔特": { quality: "t1", type: "皮肤", cost: 5, quantity: 4, isLimited: false },
|
|
725
|
+
"皇家指挥官": { quality: "t1", type: "皮肤", cost: 5, quantity: 4, isLimited: false },
|
|
726
|
+
"个性开场白": { quality: "t1", type: "入场特效", cost: 5, quantity: 4, isLimited: false },
|
|
727
727
|
"史蒂夫": { quality: "t0", type: "皮肤", cost: 6, quantity: 1, isLimited: true },
|
|
728
728
|
"ep4": { quality: "t0", type: "物品", cost: 6, quantity: 3, isLimited: false },
|
|
729
|
-
"小狗": { quality: "t3", type: "宠物", cost: 3, quantity:
|
|
730
|
-
"小猫": { quality: "t3", type: "宠物", cost: 3, quantity:
|
|
731
|
-
"小黄鸭": { quality: "t3", type: "宠物", cost: 3, quantity:
|
|
732
|
-
"萌萌熊": { quality: "t2", type: "宠物", cost: 4, quantity:
|
|
733
|
-
"荆棘蜥蜴": { quality: "t2", type: "宠物", cost: 4, quantity:
|
|
734
|
-
"萌宠小狗": { quality: "t1", type: "宠物", cost: 5, quantity:
|
|
735
|
-
"熔岩虫": { quality: "t1", type: "宠物", cost: 5, quantity:
|
|
736
|
-
"尸甲虫": { quality: "t1", type: "宠物", cost: 5, quantity:
|
|
737
|
-
"绿毛虫": { quality: "t0", type: "宠物", cost: 6, quantity:
|
|
738
|
-
"妙蛙种子": { quality: "t0", type: "宠物", cost: 6, quantity:
|
|
739
|
-
"皮卡丘": { quality: "t0", type: "宠物", cost: 6, quantity:
|
|
740
|
-
"哆啦A梦": { quality: "t0", type: "宠物", cost: 6, quantity:
|
|
729
|
+
"小狗": { quality: "t3", type: "宠物", cost: 3, quantity: 6, isLimited: false },
|
|
730
|
+
"小猫": { quality: "t3", type: "宠物", cost: 3, quantity: 6, isLimited: false },
|
|
731
|
+
"小黄鸭": { quality: "t3", type: "宠物", cost: 3, quantity: 6, isLimited: false },
|
|
732
|
+
"萌萌熊": { quality: "t2", type: "宠物", cost: 4, quantity: 5, isLimited: false },
|
|
733
|
+
"荆棘蜥蜴": { quality: "t2", type: "宠物", cost: 4, quantity: 5, isLimited: false },
|
|
734
|
+
"萌宠小狗": { quality: "t1", type: "宠物", cost: 5, quantity: 3, isLimited: false },
|
|
735
|
+
"熔岩虫": { quality: "t1", type: "宠物", cost: 5, quantity: 3, isLimited: false },
|
|
736
|
+
"尸甲虫": { quality: "t1", type: "宠物", cost: 5, quantity: 3, isLimited: false },
|
|
737
|
+
"绿毛虫": { quality: "t0", type: "宠物", cost: 6, quantity: 2, isLimited: false },
|
|
738
|
+
"妙蛙种子": { quality: "t0", type: "宠物", cost: 6, quantity: 2, isLimited: false },
|
|
739
|
+
"皮卡丘": { quality: "t0", type: "宠物", cost: 6, quantity: 2, isLimited: false },
|
|
740
|
+
"哆啦A梦": { quality: "t0", type: "宠物", cost: 6, quantity: 2, isLimited: false }
|
|
741
741
|
};
|
|
742
742
|
|
|
743
743
|
// src/careersystem/careers.ts
|
|
@@ -760,7 +760,7 @@ var spaceStationCrewConfig = [
|
|
|
760
760
|
professionName: "警卫长",
|
|
761
761
|
effect: "攻击伤害+5%,当有异形被击败时获得金币(击败者获得双倍金币)",
|
|
762
762
|
requirements: "当期伤害榜累计攻击4次及以上",
|
|
763
|
-
Jobtransfer:
|
|
763
|
+
Jobtransfer: false,
|
|
764
764
|
costcoins: 3e3
|
|
765
765
|
},
|
|
766
766
|
{
|
|
@@ -5471,6 +5471,15 @@ var ggcevoUpdates = [
|
|
|
5471
5471
|
- 增加了签到验证机制(需近3日内玩过地图)
|
|
5472
5472
|
- 增加了宵禁机制(夜间18:00-24:00将无法在群聊中使用咕咕之战功能,可私聊使用)
|
|
5473
5473
|
`.trim()
|
|
5474
|
+
},
|
|
5475
|
+
{
|
|
5476
|
+
version: "1.6.37",
|
|
5477
|
+
time: "2025-07-17",
|
|
5478
|
+
content: `
|
|
5479
|
+
- 修改了签到验证机制(近3日内游玩地图的才能获得咕咕币)
|
|
5480
|
+
- 新增了斩杀机制,当触发斩杀机制后,攻击周期变为6小时(0点、6点、12点或18点)
|
|
5481
|
+
- 暂时关闭人类转职“警卫长”
|
|
5482
|
+
`.trim()
|
|
5474
5483
|
}
|
|
5475
5484
|
];
|
|
5476
5485
|
function compareVersions(a, b) {
|
|
@@ -7212,19 +7221,18 @@ async function verifyFinalBlow(ctx, session, bossName, targetBoss) {
|
|
|
7212
7221
|
const hasResurrectionSkill = forbiddenSkills.some(
|
|
7213
7222
|
(skill) => targetBoss.skills.includes(skill)
|
|
7214
7223
|
);
|
|
7215
|
-
|
|
7216
|
-
|
|
7217
|
-
|
|
7218
|
-
|
|
7219
|
-
|
|
7220
|
-
|
|
7221
|
-
return { success: true, updatedBoss: targetBoss };
|
|
7224
|
+
if (!(isDominationBoss && isLowHealth && !hasResurrectionSkill)) {
|
|
7225
|
+
return {
|
|
7226
|
+
success: true,
|
|
7227
|
+
updatedBoss: targetBoss,
|
|
7228
|
+
verificationPassed: false
|
|
7229
|
+
};
|
|
7222
7230
|
}
|
|
7223
7231
|
const verificationCode = Array(6).fill(0).map(
|
|
7224
7232
|
() => Math.floor(Math.random() * 10)
|
|
7225
7233
|
).join("");
|
|
7226
7234
|
await session.send(
|
|
7227
|
-
`<quote id="${session.messageId}"/>⚠️ ${bossName}
|
|
7235
|
+
`<quote id="${session.messageId}"/>⚠️ ${bossName}进入斩杀阶段!每6小时周期(0点、6点、12点或18点)即可攻击一次,但需完成安全验证
|
|
7228
7236
|
请在30秒内输入验证码:【${verificationCode}】`
|
|
7229
7237
|
);
|
|
7230
7238
|
const userInput = (await session.prompt(3e4))?.trim();
|
|
@@ -7244,7 +7252,11 @@ async function verifyFinalBlow(ctx, session, bossName, targetBoss) {
|
|
|
7244
7252
|
await session.send(`✅ 验证通过!但${bossName}已被其他玩家消灭。`);
|
|
7245
7253
|
return { success: false };
|
|
7246
7254
|
}
|
|
7247
|
-
return {
|
|
7255
|
+
return {
|
|
7256
|
+
success: true,
|
|
7257
|
+
updatedBoss,
|
|
7258
|
+
verificationPassed: true
|
|
7259
|
+
};
|
|
7248
7260
|
}
|
|
7249
7261
|
__name(verifyFinalBlow, "verifyFinalBlow");
|
|
7250
7262
|
|
|
@@ -7992,6 +8004,7 @@ ${itemDetails.join("\n")}`;
|
|
|
7992
8004
|
return `您今天已经签到过了!本月累计签到${record.monthlyDays}天。`;
|
|
7993
8005
|
}
|
|
7994
8006
|
}
|
|
8007
|
+
let hasRecentPlay = false;
|
|
7995
8008
|
const threeDaysAgo = new Date(now.getTime() - 3 * 24 * 60 * 60 * 1e3);
|
|
7996
8009
|
try {
|
|
7997
8010
|
const requestOptions = config.proxyAgent ? { proxyAgent: config.proxyAgent } : void 0;
|
|
@@ -7999,16 +8012,13 @@ ${itemDetails.join("\n")}`;
|
|
|
7999
8012
|
`https://api.sc2arcade.com/profiles/${regionId}/${realmId}/${profileId}/matches?orderDirection=desc`,
|
|
8000
8013
|
requestOptions
|
|
8001
8014
|
);
|
|
8002
|
-
|
|
8015
|
+
hasRecentPlay = matchData.results.some((match) => {
|
|
8003
8016
|
const matchDate = new Date(match.date);
|
|
8004
8017
|
return matchDate >= threeDaysAgo;
|
|
8005
8018
|
});
|
|
8006
|
-
if (!hasRecentPlay) {
|
|
8007
|
-
return "🚫 需要最近3天内游玩过至少1次游戏才能签到。";
|
|
8008
|
-
}
|
|
8009
8019
|
} catch (apiError) {
|
|
8010
8020
|
console.error("游戏记录API请求失败:", apiError);
|
|
8011
|
-
|
|
8021
|
+
hasRecentPlay = false;
|
|
8012
8022
|
}
|
|
8013
8023
|
let monthlyDays = 1;
|
|
8014
8024
|
if (record) {
|
|
@@ -8022,12 +8032,16 @@ ${itemDetails.join("\n")}`;
|
|
|
8022
8032
|
const messages = [];
|
|
8023
8033
|
let totalBonus = 0;
|
|
8024
8034
|
let baseTickets = 0;
|
|
8025
|
-
if (
|
|
8026
|
-
|
|
8027
|
-
|
|
8028
|
-
|
|
8029
|
-
|
|
8030
|
-
|
|
8035
|
+
if (hasRecentPlay) {
|
|
8036
|
+
if (monthlyDays < 7) baseTickets = 3;
|
|
8037
|
+
else if (monthlyDays === 7) baseTickets = 4;
|
|
8038
|
+
else if (monthlyDays === 14) baseTickets = 5;
|
|
8039
|
+
else if (monthlyDays === 21) baseTickets = 6;
|
|
8040
|
+
else if (monthlyDays === 28) baseTickets = 7;
|
|
8041
|
+
else baseTickets = 3;
|
|
8042
|
+
} else {
|
|
8043
|
+
messages.push("⚠️ 未检测到最近3天游戏记录:不获得咕咕币");
|
|
8044
|
+
}
|
|
8031
8045
|
const basePoints = getRandomInt(50, 100);
|
|
8032
8046
|
const [careerData] = await ctx.database.get("ggcevo_careers", { handle });
|
|
8033
8047
|
let tech5Bonus = 0;
|
|
@@ -8036,7 +8050,6 @@ ${itemDetails.join("\n")}`;
|
|
|
8036
8050
|
handle,
|
|
8037
8051
|
techId: 5,
|
|
8038
8052
|
level: 5
|
|
8039
|
-
// 只获取5级科技
|
|
8040
8053
|
});
|
|
8041
8054
|
if (tech5Data) {
|
|
8042
8055
|
tech5Bonus = 1;
|
|
@@ -8086,11 +8099,13 @@ ${itemDetails.join("\n")}`;
|
|
|
8086
8099
|
monthlyDays,
|
|
8087
8100
|
totalRewards: (record?.totalRewards || 0) + finalPoints
|
|
8088
8101
|
}]);
|
|
8089
|
-
|
|
8090
|
-
|
|
8091
|
-
|
|
8092
|
-
|
|
8093
|
-
|
|
8102
|
+
if (finalTickets > 0) {
|
|
8103
|
+
await ctx.database.upsert("ggcevo_backpack", [{
|
|
8104
|
+
handle,
|
|
8105
|
+
itemId: 1,
|
|
8106
|
+
quantity: (backpack?.quantity || 0) + finalTickets
|
|
8107
|
+
}]);
|
|
8108
|
+
}
|
|
8094
8109
|
if (redCrystal > 0) {
|
|
8095
8110
|
await ctx.database.upsert("ggcevo_careers", [{
|
|
8096
8111
|
handle,
|
|
@@ -8108,9 +8123,13 @@ ${itemDetails.join("\n")}`;
|
|
|
8108
8123
|
if (totalBonus > 0 || multiplier > 1) {
|
|
8109
8124
|
coinMessage += ` (基础值:${basePoints}金币)`;
|
|
8110
8125
|
}
|
|
8111
|
-
let ticketMessage =
|
|
8112
|
-
if (
|
|
8113
|
-
ticketMessage
|
|
8126
|
+
let ticketMessage = "";
|
|
8127
|
+
if (finalTickets > 0) {
|
|
8128
|
+
ticketMessage = `🪙 咕咕币 x ${finalTickets}`;
|
|
8129
|
+
if (multiplier > 1) {
|
|
8130
|
+
ticketMessage += ` (基础值:${baseTickets}枚)`;
|
|
8131
|
+
}
|
|
8132
|
+
ticketMessage += "\n";
|
|
8114
8133
|
}
|
|
8115
8134
|
return `签到成功!本月累计签到${monthlyDays}天,获得:
|
|
8116
8135
|
${coinMessage}
|
|
@@ -8672,6 +8691,22 @@ ${ticketMessage}${effectMessage}`;
|
|
|
8672
8691
|
const configname2 = config2;
|
|
8673
8692
|
const quality = configname2.quality;
|
|
8674
8693
|
if (!qualityGroups[quality]) qualityGroups[quality] = [];
|
|
8694
|
+
let shouldSkip = false;
|
|
8695
|
+
if (configname2.quantity !== void 0) {
|
|
8696
|
+
const queryConditions = {
|
|
8697
|
+
item: itemName,
|
|
8698
|
+
GlobalLimit: true
|
|
8699
|
+
};
|
|
8700
|
+
if (itemName !== "史蒂夫") {
|
|
8701
|
+
queryConditions.season = currentSeason;
|
|
8702
|
+
}
|
|
8703
|
+
const records = await ctx.database.get("ggcevo_exchange", queryConditions);
|
|
8704
|
+
const remaining = Math.max(configname2.quantity - records.length, 0);
|
|
8705
|
+
if (configname2.isLimited && remaining <= 0) {
|
|
8706
|
+
shouldSkip = true;
|
|
8707
|
+
}
|
|
8708
|
+
}
|
|
8709
|
+
if (shouldSkip) continue;
|
|
8675
8710
|
let quantityText = "";
|
|
8676
8711
|
if (configname2.quantity !== void 0) {
|
|
8677
8712
|
const queryConditions = {
|
|
@@ -8703,7 +8738,7 @@ ${ticketMessage}${effectMessage}`;
|
|
|
8703
8738
|
|
|
8704
8739
|
`;
|
|
8705
8740
|
message += "请在30秒内输入可兑换物品名称(显示格式:物品名 [剩余/总量]):\n";
|
|
8706
|
-
message += "
|
|
8741
|
+
message += "注意:限量物品将在赛季更新时补货,限定物品除外。\n";
|
|
8707
8742
|
for (const quality of order) {
|
|
8708
8743
|
const items = qualityGroups[quality] || [];
|
|
8709
8744
|
if (!items.length) continue;
|
|
@@ -8770,7 +8805,8 @@ ${items.join("、")}
|
|
|
8770
8805
|
season: currentSeason
|
|
8771
8806
|
});
|
|
8772
8807
|
});
|
|
8773
|
-
return `🎉 恭喜!您使用${cost}个${couponName}兑换了【${name2}
|
|
8808
|
+
return `🎉 恭喜!您使用${cost}个${couponName}兑换了【${name2}】
|
|
8809
|
+
⚠️ 兑换完成后请寻找活动管理登记,否则将无法在游戏中使用!`;
|
|
8774
8810
|
} catch (error) {
|
|
8775
8811
|
console.error("兑换失败:", error);
|
|
8776
8812
|
return "兑换失败,请稍后再试";
|
|
@@ -8973,11 +9009,11 @@ ${items.join("、")}
|
|
|
8973
9009
|
return output.join("\n");
|
|
8974
9010
|
});
|
|
8975
9011
|
const processedLobbies = /* @__PURE__ */ new Set();
|
|
8976
|
-
ctx.command("ggcevo/pk [user]", "发起玩家对战").alias("挑战").action(async (argv, user) => {
|
|
9012
|
+
ctx.guild().command("ggcevo/pk [user]", "发起玩家对战").alias("挑战").action(async (argv, user) => {
|
|
8977
9013
|
try {
|
|
8978
9014
|
const session = argv.session;
|
|
8979
9015
|
const Curfew = fixedCurfewCheck(session, config);
|
|
8980
|
-
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00)
|
|
9016
|
+
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00) 禁止在群聊中使用咕咕之战指令。\n请添加C.O.R.E为好友使用私聊指令,好友验证信息为【咕咕之战】。";
|
|
8981
9017
|
const [profile] = await ctx.database.get("sc2arcade_player", { userId: session.userId });
|
|
8982
9018
|
if (!profile) return "🔒 需要先绑定游戏句柄。";
|
|
8983
9019
|
const handle = `${profile.regionId}-S2-${profile.realmId}-${profile.profileId}`;
|
|
@@ -9360,7 +9396,7 @@ ${protectionList}
|
|
|
9360
9396
|
});
|
|
9361
9397
|
ctx.command("ggcevo/武器库 [category]").usage('输入"武器库"查看类型,或"武器库 类型"查看详细武器信息').action(async ({ session }, category) => {
|
|
9362
9398
|
const Curfew = fixedCurfewCheck(session, config);
|
|
9363
|
-
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00)
|
|
9399
|
+
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00) 禁止在群聊中使用咕咕之战指令。\n请添加C.O.R.E为好友使用私聊指令,好友验证信息为【咕咕之战】。";
|
|
9364
9400
|
const [profile] = await ctx.database.get("sc2arcade_player", { userId: session.userId });
|
|
9365
9401
|
if (!profile) return "⚠️ 需要先绑定游戏句柄";
|
|
9366
9402
|
const handle = `${profile.regionId}-S2-${profile.realmId}-${profile.profileId}`;
|
|
@@ -9505,7 +9541,7 @@ ${displayDiscounts.join("\n")}` : "",
|
|
|
9505
9541
|
});
|
|
9506
9542
|
ctx.command("ggcevo/爆破库 [type]").usage("输入“爆破库”查看分类,或“爆破库 类型”查看详细物品").action(async ({ session }, type) => {
|
|
9507
9543
|
const Curfew = fixedCurfewCheck(session, config);
|
|
9508
|
-
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00)
|
|
9544
|
+
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00) 禁止在群聊中使用咕咕之战指令。\n请添加C.O.R.E为好友使用私聊指令,好友验证信息为【咕咕之战】。";
|
|
9509
9545
|
const [profile] = await ctx.database.get("sc2arcade_player", { userId: session.userId });
|
|
9510
9546
|
if (!profile) return "⚠️ 需要先绑定游戏句柄";
|
|
9511
9547
|
const filteredItems = Object.values(SyndicatedItems).filter(
|
|
@@ -9554,7 +9590,7 @@ ${validTypes.join("、")}`;
|
|
|
9554
9590
|
});
|
|
9555
9591
|
ctx.command("ggcevo/购买 <item>").action(async ({ session }, item) => {
|
|
9556
9592
|
const Curfew = fixedCurfewCheck(session, config);
|
|
9557
|
-
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00)
|
|
9593
|
+
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00) 禁止在群聊中使用咕咕之战指令。\n请添加C.O.R.E为好友使用私聊指令,好友验证信息为【咕咕之战】。";
|
|
9558
9594
|
const [profile] = await ctx.database.get("sc2arcade_player", { userId: session.userId });
|
|
9559
9595
|
if (!profile) return "🔒 需要先绑定游戏句柄。";
|
|
9560
9596
|
const handle = `${profile.regionId}-S2-${profile.realmId}-${profile.profileId}`;
|
|
@@ -9742,7 +9778,7 @@ ${discountDetails.join("\n")}`;
|
|
|
9742
9778
|
});
|
|
9743
9779
|
ctx.command("ggcevo/武器仓库").action(async ({ session }) => {
|
|
9744
9780
|
const Curfew = fixedCurfewCheck(session, config);
|
|
9745
|
-
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00)
|
|
9781
|
+
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00) 禁止在群聊中使用咕咕之战指令。\n请添加C.O.R.E为好友使用私聊指令,好友验证信息为【咕咕之战】。";
|
|
9746
9782
|
const [profile] = await ctx.database.get("sc2arcade_player", { userId: session.userId });
|
|
9747
9783
|
if (!profile) return "🔒 需要先绑定游戏句柄。";
|
|
9748
9784
|
const handle = `${profile.regionId}-S2-${profile.realmId}-${profile.profileId}`;
|
|
@@ -9780,7 +9816,7 @@ ${discountDetails.join("\n")}`;
|
|
|
9780
9816
|
});
|
|
9781
9817
|
ctx.command("ggcevo/装备武器 <weapon>").alias("装备").action(async ({ session }, weapon) => {
|
|
9782
9818
|
const Curfew = fixedCurfewCheck(session, config);
|
|
9783
|
-
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00)
|
|
9819
|
+
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00) 禁止在群聊中使用咕咕之战指令。\n请添加C.O.R.E为好友使用私聊指令,好友验证信息为【咕咕之战】。";
|
|
9784
9820
|
const [profile] = await ctx.database.get("sc2arcade_player", { userId: session.userId });
|
|
9785
9821
|
if (!profile) return "🔒 需要先绑定游戏句柄。";
|
|
9786
9822
|
const handle = `${profile.regionId}-S2-${profile.realmId}-${profile.profileId}`;
|
|
@@ -9816,7 +9852,7 @@ ${discountDetails.join("\n")}`;
|
|
|
9816
9852
|
});
|
|
9817
9853
|
ctx.command("ggcevo/升级科技 <target>", "升级空间站科技").action(async ({ session }, target) => {
|
|
9818
9854
|
const Curfew = fixedCurfewCheck(session, config);
|
|
9819
|
-
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00)
|
|
9855
|
+
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00) 禁止在群聊中使用咕咕之战指令。\n请添加C.O.R.E为好友使用私聊指令,好友验证信息为【咕咕之战】。";
|
|
9820
9856
|
const [profile] = await ctx.database.get("sc2arcade_player", { userId: session.userId });
|
|
9821
9857
|
if (!profile) return "🔒 需要先绑定游戏句柄。";
|
|
9822
9858
|
const handle = `${profile.regionId}-S2-${profile.realmId}-${profile.profileId}`;
|
|
@@ -9835,7 +9871,7 @@ ${discountDetails.join("\n")}`;
|
|
|
9835
9871
|
});
|
|
9836
9872
|
ctx.command("ggcevo/升级武器 <target>", "升级武器").alias("升级").action(async ({ session }, target) => {
|
|
9837
9873
|
const Curfew = fixedCurfewCheck(session, config);
|
|
9838
|
-
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00)
|
|
9874
|
+
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00) 禁止在群聊中使用咕咕之战指令。\n请添加C.O.R.E为好友使用私聊指令,好友验证信息为【咕咕之战】。";
|
|
9839
9875
|
const [profile] = await ctx.database.get("sc2arcade_player", { userId: session.userId });
|
|
9840
9876
|
if (!profile) return "🔒 需要先绑定游戏句柄。";
|
|
9841
9877
|
const handle = `${profile.regionId}-S2-${profile.realmId}-${profile.profileId}`;
|
|
@@ -9853,7 +9889,7 @@ ${discountDetails.join("\n")}`;
|
|
|
9853
9889
|
});
|
|
9854
9890
|
ctx.command("ggcevo/改装武器 <weapon> [mod]", "安装武器模块").alias("改装").action(async ({ session }, weapon, mod) => {
|
|
9855
9891
|
const Curfew = fixedCurfewCheck(session, config);
|
|
9856
|
-
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00)
|
|
9892
|
+
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00) 禁止在群聊中使用咕咕之战指令。\n请添加C.O.R.E为好友使用私聊指令,好友验证信息为【咕咕之战】。";
|
|
9857
9893
|
const [profile] = await ctx.database.get("sc2arcade_player", { userId: session.userId });
|
|
9858
9894
|
if (!profile) return "🔒 需要先绑定游戏句柄。";
|
|
9859
9895
|
const handle = `${profile.regionId}-S2-${profile.realmId}-${profile.profileId}`;
|
|
@@ -10011,7 +10047,7 @@ ${discountDetails.join("\n")}`;
|
|
|
10011
10047
|
});
|
|
10012
10048
|
ctx.command("ggcevo/拆卸 <weapon> <mod>", "卸载武器模块,专属模块返还50%金币,通用模块返还80%金币").action(async ({ session }, weapon, mod) => {
|
|
10013
10049
|
const Curfew = fixedCurfewCheck(session, config);
|
|
10014
|
-
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00)
|
|
10050
|
+
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00) 禁止在群聊中使用咕咕之战指令。\n请添加C.O.R.E为好友使用私聊指令,好友验证信息为【咕咕之战】。";
|
|
10015
10051
|
const [profile] = await ctx.database.get("sc2arcade_player", { userId: session.userId });
|
|
10016
10052
|
if (!profile) return "🔒 需要先绑定游戏句柄。";
|
|
10017
10053
|
const handle = `${profile.regionId}-S2-${profile.realmId}-${profile.profileId}`;
|
|
@@ -10069,7 +10105,7 @@ ${discountDetails.join("\n")}`;
|
|
|
10069
10105
|
let bossEventBroadcast = null;
|
|
10070
10106
|
let cleanerRewardBroadcast = null;
|
|
10071
10107
|
const Curfew = fixedCurfewCheck(session, config);
|
|
10072
|
-
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00)
|
|
10108
|
+
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00) 禁止在群聊中使用咕咕之战指令。\n请添加C.O.R.E为好友使用私聊指令,好友验证信息为【咕咕之战】。";
|
|
10073
10109
|
const [profile] = await ctx.database.get("sc2arcade_player", { userId: session.userId });
|
|
10074
10110
|
if (!profile) return "🔒 需要先绑定游戏句柄。";
|
|
10075
10111
|
const handle = `${profile.regionId}-S2-${profile.realmId}-${profile.profileId}`;
|
|
@@ -10086,19 +10122,6 @@ ${discountDetails.join("\n")}`;
|
|
|
10086
10122
|
return `当前没有找到名为 ${bossName} 的可攻击目标。
|
|
10087
10123
|
请攻击当前存活的异形:${activeNames || "无"}。`;
|
|
10088
10124
|
}
|
|
10089
|
-
const unlimitedBossAttack = config.unlimitedBossAttack;
|
|
10090
|
-
if (!unlimitedBossAttack) {
|
|
10091
|
-
const lastAttack = await ctx.database.get("ggcevo_boss_damage", { handle });
|
|
10092
|
-
if (lastAttack.length > 0) {
|
|
10093
|
-
const lastDate = convertUTCtoChinaTime(new Date(lastAttack[0].lastattackDate));
|
|
10094
|
-
const today = convertUTCtoChinaTime(/* @__PURE__ */ new Date());
|
|
10095
|
-
if (isSameHalfDay(lastDate, today)) {
|
|
10096
|
-
return "您在当前时段内已经攻击过了,请在12点或0点后再来挑战!";
|
|
10097
|
-
}
|
|
10098
|
-
}
|
|
10099
|
-
}
|
|
10100
|
-
const [equippedWeapon] = await ctx.database.get("ggcevo_weapons", { handle, equipped: true });
|
|
10101
|
-
if (!equippedWeapon) return '请先输入"装备 武器名称"后再攻击。';
|
|
10102
10125
|
const verification = await verifyFinalBlow(
|
|
10103
10126
|
ctx,
|
|
10104
10127
|
session,
|
|
@@ -10110,6 +10133,29 @@ ${discountDetails.join("\n")}`;
|
|
|
10110
10133
|
return "攻击已取消";
|
|
10111
10134
|
}
|
|
10112
10135
|
const verifiedBoss = verification.updatedBoss || targetBoss;
|
|
10136
|
+
const unlimitedBossAttack = config.unlimitedBossAttack;
|
|
10137
|
+
if (!unlimitedBossAttack) {
|
|
10138
|
+
const lastAttacks = await ctx.database.get("ggcevo_boss_damage", { handle });
|
|
10139
|
+
if (lastAttacks.length > 0) {
|
|
10140
|
+
const lastAttack = lastAttacks[0];
|
|
10141
|
+
const lastDate = convertUTCtoChinaTime(new Date(lastAttack.lastattackDate));
|
|
10142
|
+
const today = convertUTCtoChinaTime(/* @__PURE__ */ new Date());
|
|
10143
|
+
if (verification.verificationPassed) {
|
|
10144
|
+
const lastQuarter = Math.floor(lastDate.getHours() / 6);
|
|
10145
|
+
const currentQuarter = Math.floor(today.getHours() / 6);
|
|
10146
|
+
const sameDay = lastDate.getDate() === today.getDate() && lastDate.getMonth() === today.getMonth() && lastDate.getFullYear() === today.getFullYear();
|
|
10147
|
+
if (sameDay && lastQuarter === currentQuarter) {
|
|
10148
|
+
return "您在当前时间段内已参与过斩杀攻击,请等待下一个6小时周期(0点、6点、12点或18点)再挑战!";
|
|
10149
|
+
}
|
|
10150
|
+
} else {
|
|
10151
|
+
if (isSameHalfDay(lastDate, today)) {
|
|
10152
|
+
return "您在当前时段内已经攻击过了,请在12点或0点后再来挑战!";
|
|
10153
|
+
}
|
|
10154
|
+
}
|
|
10155
|
+
}
|
|
10156
|
+
}
|
|
10157
|
+
const [equippedWeapon] = await ctx.database.get("ggcevo_weapons", { handle, equipped: true });
|
|
10158
|
+
if (!equippedWeapon) return '请先输入"装备 武器名称"后再攻击。';
|
|
10113
10159
|
const weaponConfigEntry = Object.entries(weaponConfig).find(([_, c]) => c.id === equippedWeapon.weaponId);
|
|
10114
10160
|
const [weaponName, weaponData] = weaponConfigEntry;
|
|
10115
10161
|
if (!weaponData.isantiair && (verifiedBoss.groupId === 5 || verifiedBoss.groupId === 10)) {
|
|
@@ -10264,7 +10310,7 @@ ${discountDetails.join("\n")}`;
|
|
|
10264
10310
|
const session = argv.session;
|
|
10265
10311
|
const { options } = argv;
|
|
10266
10312
|
const Curfew = fixedCurfewCheck(session, config);
|
|
10267
|
-
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00)
|
|
10313
|
+
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00) 禁止在群聊中使用咕咕之战指令。\n请添加C.O.R.E为好友使用私聊指令,好友验证信息为【咕咕之战】。";
|
|
10268
10314
|
if (!name2) {
|
|
10269
10315
|
name2 = "测试假人";
|
|
10270
10316
|
}
|
|
@@ -10401,7 +10447,7 @@ ${testResult.passiveMessages.map((m) => `▸ ${m}`).join("\n")}`
|
|
|
10401
10447
|
});
|
|
10402
10448
|
ctx.command("ggcevo/异形信息", "查看当前主宰信息").alias("yx信息").action(async ({ session }) => {
|
|
10403
10449
|
const Curfew = fixedCurfewCheck(session, config);
|
|
10404
|
-
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00)
|
|
10450
|
+
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00) 禁止在群聊中使用咕咕之战指令。\n请添加C.O.R.E为好友使用私聊指令,好友验证信息为【咕咕之战】。";
|
|
10405
10451
|
const activeBosses = await ctx.database.get("ggcevo_boss", { isActive: true });
|
|
10406
10452
|
if (!activeBosses.length) return "当前没有存活的异形,请等待12点或0点刷新。";
|
|
10407
10453
|
const mainBoss = activeBosses.find((b) => b.type === "主宰");
|
|
@@ -10594,7 +10640,7 @@ ${testResult.passiveMessages.map((m) => `▸ ${m}`).join("\n")}`
|
|
|
10594
10640
|
ctx.command("ggcevo/祈愿").action(async (argv) => {
|
|
10595
10641
|
const session = argv.session;
|
|
10596
10642
|
const Curfew = fixedCurfewCheck(session, config);
|
|
10597
|
-
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00)
|
|
10643
|
+
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00) 禁止在群聊中使用咕咕之战指令。\n请添加C.O.R.E为好友使用私聊指令,好友验证信息为【咕咕之战】。";
|
|
10598
10644
|
const [profile] = await ctx.database.get("sc2arcade_player", { userId: session.userId });
|
|
10599
10645
|
if (!profile) return "🔒 需要先绑定游戏句柄。";
|
|
10600
10646
|
const { regionId, realmId, profileId } = profile;
|
|
@@ -10673,7 +10719,7 @@ ${testResult.passiveMessages.map((m) => `▸ ${m}`).join("\n")}`
|
|
|
10673
10719
|
});
|
|
10674
10720
|
ctx.command("ggcevo/加入 <faction>", "加入阵营").alias("加入阵营").action(async ({ session }, faction) => {
|
|
10675
10721
|
const Curfew = fixedCurfewCheck(session, config);
|
|
10676
|
-
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00)
|
|
10722
|
+
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00) 禁止在群聊中使用咕咕之战指令。\n请添加C.O.R.E为好友使用私聊指令,好友验证信息为【咕咕之战】。";
|
|
10677
10723
|
const [profile] = await ctx.database.get("sc2arcade_player", { userId: session.userId });
|
|
10678
10724
|
if (!profile) return "🔒 需要先绑定游戏句柄。";
|
|
10679
10725
|
const { regionId, realmId, profileId } = profile;
|
|
@@ -10739,7 +10785,7 @@ ${testResult.passiveMessages.map((m) => `▸ ${m}`).join("\n")}`
|
|
|
10739
10785
|
});
|
|
10740
10786
|
ctx.command("ggcevo/退出", "退出当前阵营").alias("退出阵营").action(async ({ session }) => {
|
|
10741
10787
|
const Curfew = fixedCurfewCheck(session, config);
|
|
10742
|
-
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00)
|
|
10788
|
+
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00) 禁止在群聊中使用咕咕之战指令。\n请添加C.O.R.E为好友使用私聊指令,好友验证信息为【咕咕之战】。";
|
|
10743
10789
|
const [profile] = await ctx.database.get("sc2arcade_player", { userId: session.userId });
|
|
10744
10790
|
if (!profile) return "🔒 需要先绑定游戏句柄。";
|
|
10745
10791
|
const { regionId, realmId, profileId } = profile;
|
|
@@ -10791,7 +10837,7 @@ ${testResult.passiveMessages.map((m) => `▸ ${m}`).join("\n")}`
|
|
|
10791
10837
|
});
|
|
10792
10838
|
ctx.command("ggcevo/转职 [profession]", "转职系统").action(async ({ session }, profession) => {
|
|
10793
10839
|
const Curfew = fixedCurfewCheck(session, config);
|
|
10794
|
-
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00)
|
|
10840
|
+
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00) 禁止在群聊中使用咕咕之战指令。\n请添加C.O.R.E为好友使用私聊指令,好友验证信息为【咕咕之战】。";
|
|
10795
10841
|
const [profile] = await ctx.database.get("sc2arcade_player", { userId: session.userId });
|
|
10796
10842
|
if (!profile) return "🔒 需要先绑定游戏句柄。";
|
|
10797
10843
|
const handle = `${profile.regionId}-S2-${profile.realmId}-${profile.profileId}`;
|
|
@@ -10875,7 +10921,7 @@ ${testResult.passiveMessages.map((m) => `▸ ${m}`).join("\n")}`
|
|
|
10875
10921
|
ctx.command("ggcevo/职业信息", "查看当前阵营与职业状态").action(async ({ session }) => {
|
|
10876
10922
|
try {
|
|
10877
10923
|
const Curfew = fixedCurfewCheck(session, config);
|
|
10878
|
-
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00)
|
|
10924
|
+
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00) 禁止在群聊中使用咕咕之战指令。\n请添加C.O.R.E为好友使用私聊指令,好友验证信息为【咕咕之战】。";
|
|
10879
10925
|
const [profile] = await ctx.database.get("sc2arcade_player", {
|
|
10880
10926
|
userId: session.userId
|
|
10881
10927
|
});
|
|
@@ -10945,7 +10991,7 @@ ${testResult.passiveMessages.map((m) => `▸ ${m}`).join("\n")}`
|
|
|
10945
10991
|
});
|
|
10946
10992
|
ctx.command("ggcevo/黑市 [category]", "辛迪加海盗专属黑市").usage('输入"黑市"查看分类,或"黑市 分类名称"查看详细').action(async ({ session }, category) => {
|
|
10947
10993
|
const Curfew = fixedCurfewCheck(session, config);
|
|
10948
|
-
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00)
|
|
10994
|
+
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00) 禁止在群聊中使用咕咕之战指令。\n请添加C.O.R.E为好友使用私聊指令,好友验证信息为【咕咕之战】。";
|
|
10949
10995
|
const [profile] = await ctx.database.get("sc2arcade_player", { userId: session.userId });
|
|
10950
10996
|
if (!profile) return "🔒 需要先绑定游戏句柄。";
|
|
10951
10997
|
const handle = `${profile.regionId}-S2-${profile.realmId}-${profile.profileId}`;
|
|
@@ -11077,7 +11123,7 @@ ${discountDetails.join("\n")}` : "",
|
|
|
11077
11123
|
});
|
|
11078
11124
|
ctx.command("ggcevo/订购 <item>").action(async ({ session }, item) => {
|
|
11079
11125
|
const Curfew = fixedCurfewCheck(session, config);
|
|
11080
|
-
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00)
|
|
11126
|
+
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00) 禁止在群聊中使用咕咕之战指令。\n请添加C.O.R.E为好友使用私聊指令,好友验证信息为【咕咕之战】。";
|
|
11081
11127
|
const [profile] = await ctx.database.get("sc2arcade_player", { userId: session.userId });
|
|
11082
11128
|
if (!profile) return "🔒 需要先绑定游戏句柄。";
|
|
11083
11129
|
const handle = `${profile.regionId}-S2-${profile.realmId}-${profile.profileId}`;
|
|
@@ -11203,7 +11249,7 @@ ${discountReason}` : "",
|
|
|
11203
11249
|
ctx.command("ggcevo/仓库").action(async (argv) => {
|
|
11204
11250
|
const session = argv.session;
|
|
11205
11251
|
const Curfew = fixedCurfewCheck(session, config);
|
|
11206
|
-
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00)
|
|
11252
|
+
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00) 禁止在群聊中使用咕咕之战指令。\n请添加C.O.R.E为好友使用私聊指令,好友验证信息为【咕咕之战】。";
|
|
11207
11253
|
const [profile] = await ctx.database.get("sc2arcade_player", { userId: session.userId });
|
|
11208
11254
|
if (!profile) return "🔒 需要先绑定游戏句柄。";
|
|
11209
11255
|
const handle = `${profile.regionId}-S2-${profile.realmId}-${profile.profileId}`;
|
|
@@ -11260,7 +11306,7 @@ ${discountReason}` : "",
|
|
|
11260
11306
|
let bossEventBroadcast = null;
|
|
11261
11307
|
let cleanerRewardBroadcast = null;
|
|
11262
11308
|
const Curfew = fixedCurfewCheck(session, config);
|
|
11263
|
-
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00)
|
|
11309
|
+
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00) 禁止在群聊中使用咕咕之战指令。\n请添加C.O.R.E为好友使用私聊指令,好友验证信息为【咕咕之战】。";
|
|
11264
11310
|
const [profile] = await ctx.database.get("sc2arcade_player", { userId: session.userId });
|
|
11265
11311
|
if (!profile) return "🔒 需要先绑定游戏句柄。";
|
|
11266
11312
|
const handle = `${profile.regionId}-S2-${profile.realmId}-${profile.profileId}`;
|
|
@@ -11316,7 +11362,7 @@ ${discountReason}` : "",
|
|
|
11316
11362
|
});
|
|
11317
11363
|
ctx.command("ggcevo/科技 [techName]", "查看空间站科技信息").usage("输入“科技”查看列表,或“科技 科技名称”查看详细信息").action(async ({ session }, techName) => {
|
|
11318
11364
|
const Curfew = fixedCurfewCheck(session, config);
|
|
11319
|
-
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00)
|
|
11365
|
+
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00) 禁止在群聊中使用咕咕之战指令。\n请添加C.O.R.E为好友使用私聊指令,好友验证信息为【咕咕之战】。";
|
|
11320
11366
|
const [profile] = await ctx.database.get("sc2arcade_player", { userId: session.userId });
|
|
11321
11367
|
if (!profile) return "🔒 需要先绑定游戏句柄。";
|
|
11322
11368
|
const handle = `${profile.regionId}-S2-${profile.realmId}-${profile.profileId}`;
|
|
@@ -11379,7 +11425,7 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
11379
11425
|
});
|
|
11380
11426
|
ctx.command("ggcevo/挖矿").action(async ({ session }) => {
|
|
11381
11427
|
const Curfew = fixedCurfewCheck(session, config);
|
|
11382
|
-
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00)
|
|
11428
|
+
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00) 禁止在群聊中使用咕咕之战指令。\n请添加C.O.R.E为好友使用私聊指令,好友验证信息为【咕咕之战】。";
|
|
11383
11429
|
const [profile] = await ctx.database.get("sc2arcade_player", { userId: session.userId });
|
|
11384
11430
|
if (!profile) return "🔒 需要先绑定游戏句柄。";
|
|
11385
11431
|
const handle = `${profile.regionId}-S2-${profile.realmId}-${profile.profileId}`;
|
|
@@ -11524,7 +11570,7 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
11524
11570
|
});
|
|
11525
11571
|
ctx.command("ggcevo/任务 [name]").usage('输入"任务"查看所有任务列表,或"任务 任务名称"查看详细任务信息').action(async ({ session }, name2) => {
|
|
11526
11572
|
const Curfew = fixedCurfewCheck(session, config);
|
|
11527
|
-
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00)
|
|
11573
|
+
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00) 禁止在群聊中使用咕咕之战指令。\n请添加C.O.R.E为好友使用私聊指令,好友验证信息为【咕咕之战】。";
|
|
11528
11574
|
const [profile] = await ctx.database.get("sc2arcade_player", { userId: session.userId });
|
|
11529
11575
|
if (!profile) return "⚠️ 需要先绑定游戏句柄";
|
|
11530
11576
|
const handle = `${profile.regionId}-S2-${profile.realmId}-${profile.profileId}`;
|
|
@@ -11580,7 +11626,7 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
11580
11626
|
ctx.command("ggcevo/完成任务 <name:text>", "完成指定任务领取奖励").usage('输入"完成任务 任务名称"来完成任务并领取奖励').action(async ({ session }, name2) => {
|
|
11581
11627
|
try {
|
|
11582
11628
|
const Curfew = fixedCurfewCheck(session, config);
|
|
11583
|
-
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00)
|
|
11629
|
+
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00) 禁止在群聊中使用咕咕之战指令。\n请添加C.O.R.E为好友使用私聊指令,好友验证信息为【咕咕之战】。";
|
|
11584
11630
|
const [profile] = await ctx.database.get("sc2arcade_player", { userId: session.userId });
|
|
11585
11631
|
if (!profile) return "⚠️ 需要先绑定游戏句柄";
|
|
11586
11632
|
const handle = `${profile.regionId}-S2-${profile.realmId}-${profile.profileId}`;
|
|
@@ -11657,7 +11703,7 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
11657
11703
|
ctx.command("ggcevo/购买保护卡", "花费600金币购买一周PK保护卡").alias("购买pk保护卡").action(async ({ session }) => {
|
|
11658
11704
|
try {
|
|
11659
11705
|
const Curfew = fixedCurfewCheck(session, config);
|
|
11660
|
-
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00)
|
|
11706
|
+
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00) 禁止在群聊中使用咕咕之战指令。\n请添加C.O.R.E为好友使用私聊指令,好友验证信息为【咕咕之战】。";
|
|
11661
11707
|
const userId = session.userId;
|
|
11662
11708
|
const [profile] = await ctx.database.get("sc2arcade_player", { userId });
|
|
11663
11709
|
if (!profile) return "🔒 请先绑定游戏句柄。";
|
|
@@ -11720,7 +11766,7 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
11720
11766
|
ctx.command("ggcevo/开启军械库防爆门").alias("打开军械库防爆门").action(async (argv) => {
|
|
11721
11767
|
const session = argv.session;
|
|
11722
11768
|
const Curfew = fixedCurfewCheck(session, config);
|
|
11723
|
-
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00)
|
|
11769
|
+
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00) 禁止在群聊中使用咕咕之战指令。\n请添加C.O.R.E为好友使用私聊指令,好友验证信息为【咕咕之战】。";
|
|
11724
11770
|
const [profile] = await ctx.database.get("sc2arcade_player", { userId: session.userId });
|
|
11725
11771
|
if (!profile) return "🔒 请先绑定游戏句柄。";
|
|
11726
11772
|
const { regionId, realmId, profileId } = profile;
|
|
@@ -11772,7 +11818,7 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
11772
11818
|
});
|
|
11773
11819
|
ctx.command("ggcevo/技能 [异形名称]").usage('查询异形技能,输入"技能"查看所有异形,输入"技能 异形名称"查询详细技能').action(async ({ session }, unitName) => {
|
|
11774
11820
|
const Curfew = fixedCurfewCheck(session, config);
|
|
11775
|
-
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00)
|
|
11821
|
+
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00) 禁止在群聊中使用咕咕之战指令。\n请添加C.O.R.E为好友使用私聊指令,好友验证信息为【咕咕之战】。";
|
|
11776
11822
|
const allUnits = /* @__PURE__ */ new Set();
|
|
11777
11823
|
bossPool.forEach((boss) => {
|
|
11778
11824
|
allUnits.add(boss.main.name);
|
|
@@ -11864,7 +11910,7 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
11864
11910
|
ctx.command("ggcevo/咕咕更新").action(async ({ session }) => {
|
|
11865
11911
|
try {
|
|
11866
11912
|
const Curfew = fixedCurfewCheck(session, config);
|
|
11867
|
-
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00)
|
|
11913
|
+
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00) 禁止在群聊中使用咕咕之战指令。\n请添加C.O.R.E为好友使用私聊指令,好友验证信息为【咕咕之战】。";
|
|
11868
11914
|
const latestUpdates = [...ggcevoUpdates].sort((a, b) => compareVersions(a.version, b.version)).slice(0, 3);
|
|
11869
11915
|
if (latestUpdates.length === 0) {
|
|
11870
11916
|
return "🛑 暂无更新记录";
|
|
@@ -11890,7 +11936,7 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
11890
11936
|
});
|
|
11891
11937
|
ctx.command("ggcevo/探索 [galaxyName]").action(async ({ session }, galaxyName) => {
|
|
11892
11938
|
const Curfew = fixedCurfewCheck(session, config);
|
|
11893
|
-
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00)
|
|
11939
|
+
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00) 禁止在群聊中使用咕咕之战指令。\n请添加C.O.R.E为好友使用私聊指令,好友验证信息为【咕咕之战】。";
|
|
11894
11940
|
const possibleItems = [
|
|
11895
11941
|
{ id: 2, name: "闪光弹", type: "手榴弹", chance: 0.1 },
|
|
11896
11942
|
{ id: 4, name: "脉冲手雷", type: "手榴弹", chance: 0.1 },
|
|
@@ -12256,7 +12302,7 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
12256
12302
|
}
|
|
12257
12303
|
ctx.command("ggcevo/飞船信息").action(async ({ session }) => {
|
|
12258
12304
|
const Curfew = fixedCurfewCheck(session, config);
|
|
12259
|
-
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00)
|
|
12305
|
+
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00) 禁止在群聊中使用咕咕之战指令。\n请添加C.O.R.E为好友使用私聊指令,好友验证信息为【咕咕之战】。";
|
|
12260
12306
|
const [profile] = await ctx.database.get("sc2arcade_player", { userId: session.userId });
|
|
12261
12307
|
if (!profile) return "🔒 需要先绑定游戏句柄。";
|
|
12262
12308
|
const handle = `${profile.regionId}-S2-${profile.realmId}-${profile.profileId}`;
|
|
@@ -12284,7 +12330,7 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
12284
12330
|
});
|
|
12285
12331
|
ctx.command("ggcevo/购买飞船 [shipName]").alias("飞船").action(async ({ session }, shipName) => {
|
|
12286
12332
|
const Curfew = fixedCurfewCheck(session, config);
|
|
12287
|
-
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00)
|
|
12333
|
+
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00) 禁止在群聊中使用咕咕之战指令。\n请添加C.O.R.E为好友使用私聊指令,好友验证信息为【咕咕之战】。";
|
|
12288
12334
|
const [profile] = await ctx.database.get("sc2arcade_player", { userId: session.userId });
|
|
12289
12335
|
if (!profile) return "🔒 需要先绑定游戏句柄。";
|
|
12290
12336
|
const handle = `${profile.regionId}-S2-${profile.realmId}-${profile.profileId}`;
|
|
@@ -12357,7 +12403,7 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
12357
12403
|
});
|
|
12358
12404
|
ctx.command("ggcevo/升级物品 [itemName]", "升级辛迪加海盗物品").usage('输入"升级物品"查看可升级列表,或"升级物品 物品名称"进行升级').action(async ({ session }, itemName) => {
|
|
12359
12405
|
const Curfew = fixedCurfewCheck(session, config);
|
|
12360
|
-
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00)
|
|
12406
|
+
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00) 禁止在群聊中使用咕咕之战指令。\n请添加C.O.R.E为好友使用私聊指令,好友验证信息为【咕咕之战】。";
|
|
12361
12407
|
const [profile] = await ctx.database.get("sc2arcade_player", { userId: session.userId });
|
|
12362
12408
|
if (!profile) return "🔒 需要先绑定游戏句柄。";
|
|
12363
12409
|
const handle = `${profile.regionId}-S2-${profile.realmId}-${profile.profileId}`;
|
|
@@ -12495,7 +12541,7 @@ ${Spacestationtechnology.map((t) => t.techname).join("、")}`;
|
|
|
12495
12541
|
});
|
|
12496
12542
|
ctx.command("ggcevo/竞猜 [itemId] [amount] [guess]", "参与竞猜游戏").usage('输入"竞猜"查看可竞猜项目,"竞猜 项目ID 金额 内容"进行竞猜').example("竞猜 1 500 寒冰王蛇").action(async ({ session }, itemId, amount, guess) => {
|
|
12497
12543
|
const Curfew = fixedCurfewCheck(session, config);
|
|
12498
|
-
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00)
|
|
12544
|
+
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00) 禁止在群聊中使用咕咕之战指令。\n请添加C.O.R.E为好友使用私聊指令,好友验证信息为【咕咕之战】。";
|
|
12499
12545
|
const [profile] = await ctx.database.get("sc2arcade_player", { userId: session.userId });
|
|
12500
12546
|
if (!profile) return "🔒 需要先绑定游戏句柄";
|
|
12501
12547
|
const { regionId, realmId, profileId } = profile;
|
|
@@ -12593,7 +12639,7 @@ ${validBossNames.join("、")}`;
|
|
|
12593
12639
|
});
|
|
12594
12640
|
ctx.command("ggcevo/兑换资源 [name] [amount]").usage('输入"兑换资源"查看可兑换资源列表\n输入"兑换资源 物品名称 [数量]"进行兑换').action(async ({ session }, name2, amount) => {
|
|
12595
12641
|
const Curfew = fixedCurfewCheck(session, config);
|
|
12596
|
-
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00)
|
|
12642
|
+
if (!Curfew) return "⛔ 宵禁时段 (18:00-24:00) 禁止在群聊中使用咕咕之战指令。\n请添加C.O.R.E为好友使用私聊指令,好友验证信息为【咕咕之战】。";
|
|
12597
12643
|
const [profile] = await ctx.database.get("sc2arcade_player", { userId: session.userId });
|
|
12598
12644
|
if (!profile) return "🔒 需要先绑定游戏句柄";
|
|
12599
12645
|
const handle = `${profile.regionId}-S2-${profile.realmId}-${profile.profileId}`;
|
|
@@ -12611,7 +12657,7 @@ ${validBossNames.join("、")}`;
|
|
|
12611
12657
|
});
|
|
12612
12658
|
return [
|
|
12613
12659
|
"💰 资源兑换商店 💰",
|
|
12614
|
-
'使用 "兑换资源 物品名称
|
|
12660
|
+
'使用 "兑换资源 物品名称 兑换次数" 进行兑换',
|
|
12615
12661
|
`您当前持有: ${coupon?.quantity || 0}张资源兑换券`,
|
|
12616
12662
|
"====================",
|
|
12617
12663
|
...Object.entries(resourceItems).map(([itemName, config2]) => `▸ ${itemName}:1张券兑换${config2.valuePerCoupon}${itemName === "金币" ? "金币" : "红晶"}`),
|
package/lib/items.d.ts
CHANGED
|
@@ -212,36 +212,42 @@ export declare const itemConfig: {
|
|
|
212
212
|
quality: string;
|
|
213
213
|
type: string;
|
|
214
214
|
cost: number;
|
|
215
|
+
quantity: number;
|
|
215
216
|
isLimited: boolean;
|
|
216
217
|
};
|
|
217
218
|
劳工: {
|
|
218
219
|
quality: string;
|
|
219
220
|
type: string;
|
|
220
221
|
cost: number;
|
|
222
|
+
quantity: number;
|
|
221
223
|
isLimited: boolean;
|
|
222
224
|
};
|
|
223
225
|
老兵: {
|
|
224
226
|
quality: string;
|
|
225
227
|
type: string;
|
|
226
228
|
cost: number;
|
|
229
|
+
quantity: number;
|
|
227
230
|
isLimited: boolean;
|
|
228
231
|
};
|
|
229
232
|
合成人: {
|
|
230
233
|
quality: string;
|
|
231
234
|
type: string;
|
|
232
235
|
cost: number;
|
|
236
|
+
quantity: number;
|
|
233
237
|
isLimited: boolean;
|
|
234
238
|
};
|
|
235
239
|
阿斯塔特: {
|
|
236
240
|
quality: string;
|
|
237
241
|
type: string;
|
|
238
242
|
cost: number;
|
|
243
|
+
quantity: number;
|
|
239
244
|
isLimited: boolean;
|
|
240
245
|
};
|
|
241
246
|
皇家指挥官: {
|
|
242
247
|
quality: string;
|
|
243
248
|
type: string;
|
|
244
249
|
cost: number;
|
|
250
|
+
quantity: number;
|
|
245
251
|
isLimited: boolean;
|
|
246
252
|
};
|
|
247
253
|
个性开场白: {
|