Files
bettergi-scripts-list/repo/js/AutoLeyLineOutcrop/utils/loadSettings.js
ddaodan 559e58701c feat: 重构代码结构 (#947)
- 重构代码结构,将各功能模块拆分为独立文件
- 修复自定义标记的问题
2025-05-28 22:05:11 +08:00

74 lines
2.7 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 加载、验证、输出用户设置
* @returns {Object} 处理过的设置对象
*/
this.loadSettings =
function () {
try {
// 直接使用全局settings对象而不是重新创建
// 这样能保留原始设置内容
// 验证必要的设置
if (!settings.start) {
throw new Error("请仔细阅读脚本介绍和手册,并在调度器内进行配置,如果你是直接运行的脚本,请将脚本加入调度器内运行!");
}
if (!settings.leyLineOutcropType) {
throw new Error("请选择你要刷取的地脉花类型(经验书/摩拉)");
}
if (!settings.country) {
throw new Error("请在游戏中确认地脉花的第一个点的位置然后在js设置中选择地脉花所在的国家。");
}
if (settings.friendshipTeam && !settings.team) {
throw new Error("未配置战斗队伍!当配置了好感队时必须配置战斗队伍!");
}
// 为了向后兼容,确保某些设置有默认值
settings.timeout = settings.timeout * 1000 || 120000;
// 处理刷取次数
if (!settings.count || !/^-?\d+\.?\d*$/.test(settings.count)) {
log.warn(`刷取次数 ${settings.count} 不是数字使用默认次数6次`);
settings.timesValue = 6;
} else {
// 转换为数字
const num = parseFloat(settings.count);
// 范围检查
if (num < 1) {
settings.timesValue = 1;
log.info(`⚠️ 次数 ${num} 小于1已调整为1`);
} else {
// 处理小数
if (!Number.isInteger(num)) {
settings.timesValue = Math.floor(num);
log.info(`⚠️ 次数 ${num} 不是整数,已向下取整为 ${settings.timesValue}`);
} else {
settings.timesValue = num;
}
}
}
// 记录使用的设置
log.info(`地脉花类型:${settings.leyLineOutcropType}`);
log.info(`国家:${settings.country}`);
if (settings.friendshipTeam) {
log.info(`好感队:${settings.friendshipTeam}`);
}
log.info(`刷取次数:${settings.timesValue}`);
// 设置通知状态
isNotification = settings.isNotification;
if (isNotification) {
notification.send(`全自动地脉花开始运行,以下是本次运行的配置:\n\n地脉花类型:${settings.leyLineOutcropType}\n国家:${settings.country}\n刷取次数:${settings.timesValue}`);
}
} catch (error) {
log.error(`加载设置失败: ${error.message}`);
throw error;
}
}