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 }, // 危险行为⚠️ { 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); } }