mirror of
https://github.com/0O0o0oOoO00/Alas.git
synced 2026-05-14 14:39:25 +08:00
fix: override original method to bypass opsi backdoor
This commit is contained in:
@@ -815,6 +815,61 @@ class ConfigUpdater:
|
||||
return data
|
||||
|
||||
|
||||
class ConfigUpdater(ConfigUpdater):
|
||||
def config_update(self, old, is_template=False):
|
||||
"""
|
||||
Args:
|
||||
old (dict):
|
||||
is_template (bool):
|
||||
|
||||
Returns:
|
||||
dict:
|
||||
"""
|
||||
new = {}
|
||||
|
||||
for keys, data in deep_iter(self.args, depth=3):
|
||||
value = deep_get(old, keys=keys, default=data['value'])
|
||||
typ = data['type']
|
||||
display = data.get('display')
|
||||
if is_template or value is None or value == '' \
|
||||
or typ in ['lock', 'state'] or (display == 'hide' and typ != 'stored'):
|
||||
value = data['value']
|
||||
value = parse_value(value, data=data)
|
||||
deep_set(new, keys=keys, value=value)
|
||||
|
||||
# AzurStatsID
|
||||
if is_template:
|
||||
deep_set(new, 'Alas.DropRecord.AzurStatsID', None)
|
||||
else:
|
||||
deep_default(new, 'Alas.DropRecord.AzurStatsID', random_id())
|
||||
|
||||
# In the original method,
|
||||
# when OpsiHazard1Leveling is enabled,
|
||||
# the OpsiMeowfficerFarming will be set to enabled
|
||||
|
||||
# Update to latest event
|
||||
server = to_server(deep_get(new, 'Alas.Emulator.PackageName', 'cn'))
|
||||
if not is_template:
|
||||
for task in EVENTS + RAIDS + COALITIONS:
|
||||
opts = deep_get(self.args, keys=f'{task}.Campaign.Event.option_{server}', default=[])
|
||||
if not deep_get(new, keys=f'{task}.Campaign.Event', default='campaign_main') in opts:
|
||||
deep_set(new,
|
||||
keys=f'{task}.Campaign.Event',
|
||||
value=opts[0])
|
||||
|
||||
for task in ['GemsFarming']:
|
||||
if deep_get(new, keys=f'{task}.Campaign.Event', default='campaign_main') != 'campaign_main':
|
||||
deep_set(new,
|
||||
keys=f'{task}.Campaign.Event',
|
||||
value=deep_get(self.args, f'{task}.Campaign.Event.option_{server}')[0])
|
||||
# War archive does not allow campaign_main
|
||||
for task in WAR_ARCHIVES:
|
||||
if deep_get(new, keys=f'{task}.Campaign.Event', default='campaign_main') == 'campaign_main':
|
||||
deep_set(new,
|
||||
keys=f'{task}.Campaign.Event',
|
||||
value=deep_get(self.args, f'{task}.Campaign.Event.option_{server}')[0])
|
||||
|
||||
|
||||
FULL_CONFIG_IMPORT = '''
|
||||
# This file was automatically generated by module/config/config_updater.py.
|
||||
# Don't modify it manually.
|
||||
|
||||
Reference in New Issue
Block a user