123 lines
4.2 KiB
TypeScript
123 lines
4.2 KiB
TypeScript
import WuhuBase from "./WuhuBase";
|
|
import Alert from "./utils/Alert";
|
|
import Log from "./Log";
|
|
|
|
export default class WuhuConfig extends WuhuBase {
|
|
className = 'WuhuConfig';
|
|
|
|
/**
|
|
* 获取键或多个键对应的值,返回值或列表
|
|
* @param key
|
|
*/
|
|
public static get(key: string | string[]) {
|
|
let localPool = this.getLocal();
|
|
if (typeof key === 'string') {
|
|
return localPool[key];
|
|
} else {
|
|
let ret: string[] = [];
|
|
key.forEach(k => {
|
|
ret.push(localPool[k])
|
|
});
|
|
return ret;
|
|
}
|
|
}
|
|
|
|
public static set(key: string, val: any, isNotify = false, callback: Function = () => null) {
|
|
let config = WuhuConfig.getLocal();
|
|
let prev = config[key];
|
|
config[key] = val;
|
|
localStorage.setItem('wh_trans_settings', JSON.stringify(config));
|
|
|
|
if (isNotify) new Alert('已保存设置')
|
|
new Promise(() => callback()).then();
|
|
Log.info(`值变更:[${ key }] ${ prev } -> ${ val }`);
|
|
return val;
|
|
}
|
|
|
|
/**
|
|
* 检查类型不符合时设置为默认值
|
|
*/
|
|
public static setDefaults(): void {
|
|
Log.info('设置默认值开始');
|
|
let count = 0;
|
|
[
|
|
// 开启翻译
|
|
{ key: 'transEnable', val: false },
|
|
// 快速犯罪
|
|
{ key: 'quickCrime', val: true },
|
|
// 任务助手
|
|
{ key: 'missionHint', val: true },
|
|
// 小镇攻略
|
|
{ key: 'xmasTownWT', val: true },
|
|
// 小镇提醒
|
|
{ key: 'xmasTownNotify', val: true },
|
|
// 起飞爆e
|
|
{ key: 'energyAlert', val: true },
|
|
// 飞行闹钟
|
|
{ key: 'trvAlarm', val: true },
|
|
// 啤酒提醒
|
|
{ key: '_15Alarm', val: true },
|
|
// 捡垃圾助手
|
|
{ key: 'cityFinder', val: false },
|
|
// 叠E保护
|
|
{ key: 'SEProtect', val: false },
|
|
// PT一键购买
|
|
{ key: 'ptQuickBuy', val: false },
|
|
// 光速拔刀 6-关闭
|
|
{ key: 'quickAttIndex', val: 2 },
|
|
// 光速跑路 0-leave 1-mug 2-hos 3-关闭
|
|
{ key: 'quickFinishAtt', val: 3 },
|
|
// 自动开打和结束
|
|
{ key: 'autoStartFinish', val: false },
|
|
/**
|
|
* @deprecated 废弃
|
|
*/
|
|
{ key: 'attRelocate', val: true },
|
|
// 攻击自刷新 0-无间隔 1-5s 6-关闭
|
|
{ key: 'attReload', val: 6 },
|
|
// 价格监视
|
|
{ key: 'priceWatcher', val: { xan: -1, pt: -1 } },
|
|
// 开发者模式
|
|
{ key: 'isDev', val: false },
|
|
// 啤酒提醒时间
|
|
{ key: '_15AlarmTime', val: 50 },
|
|
// 4条转跳
|
|
{ key: 'barsRedirect', val: true },
|
|
// 浮动存钱框
|
|
{ key: 'floatDepo', val: true },
|
|
// 公司转跳存钱
|
|
{ key: 'companyRedirect', val: true },
|
|
// 收起公司冰蛙效率表
|
|
{ key: 'companyBWCollapse', val: true },
|
|
/**
|
|
* @deprecated
|
|
*/
|
|
{ key: 'removeScripts', val: true },
|
|
// 海外警告
|
|
{ key: 'abroadWarning', val: true },
|
|
// 落地转跳
|
|
{ key: 'landedRedirect', val: '' },
|
|
// 任何位置一键存钱
|
|
{ key: 'companyDepositAnywhere', val: false },
|
|
// 火车提醒时间
|
|
{ key: 'CHTrainsDetect', val: 0 },
|
|
// 火车提醒开关
|
|
{ key: 'CHTrainsDetectSwitch', val: true },
|
|
// 隐藏个人资料头像
|
|
{ key: 'HideProfileImg', val: false },
|
|
// 显示曾用名
|
|
{ key: 'ShowNameHistory', val: true },
|
|
// 盯梢模式强度 0-550 1-950 2-1450 ms
|
|
{ key: 'WatchTargetFreq', val: 1 },
|
|
|
|
// 危险行为⚠️
|
|
{ key: 'dangerZone', val: false },
|
|
].forEach(df => {
|
|
if (typeof WuhuConfig.get(df.key) !== typeof df.val) {
|
|
WuhuConfig.set(df.key, df.val);
|
|
count++;
|
|
}
|
|
});
|
|
Log.info('设置默认值结束,新:' + count);
|
|
}
|
|
} |