From 89f69079f188c86bac22f0361ac52f97bdb59cda Mon Sep 17 00:00:00 2001 From: guoh064 <50830808+guoh064@users.noreply.github.com> Date: Thu, 23 Apr 2026 14:55:25 +0800 Subject: [PATCH] Add: distangle Gemsfarming.Campaign.Event from Event.Campaign.Event for multi event --- module/campaign/run.py | 2 +- module/config/argument/args.json | 1 - module/config/argument/override.yaml | 2 -- module/config/config_updater.py | 12 +++++++----- module/webui/app.py | 8 ++++++++ 5 files changed, 16 insertions(+), 9 deletions(-) diff --git a/module/campaign/run.py b/module/campaign/run.py index 5308143b5..abaa5b5cb 100644 --- a/module/campaign/run.py +++ b/module/campaign/run.py @@ -170,7 +170,7 @@ class CampaignRun(CampaignEvent): logger.info(f'Stage name {name} is from campaign_main') folder = 'campaign_main' else: - folder = self.config.cross_get('Event.Campaign.Event') + folder = self.config.cross_get('GemsFarming.Campaign.Event') if folder is not None: logger.info(f'Stage name {name} is from event {folder}') else: diff --git a/module/config/argument/args.json b/module/config/argument/args.json index 1ff91340f..2dcca6afb 100644 --- a/module/config/argument/args.json +++ b/module/config/argument/args.json @@ -1645,7 +1645,6 @@ "event_20220915_cn", "event_20260417_cn" ], - "display": "hide", "option_cn": [ "event_20260417_cn" ], diff --git a/module/config/argument/override.yaml b/module/config/argument/override.yaml index 650de7627..d1a33f3ab 100644 --- a/module/config/argument/override.yaml +++ b/module/config/argument/override.yaml @@ -28,8 +28,6 @@ Main3: Event: campaign_main GemsFarming: Campaign: - Event: - value: campaign_main Mode: normal UseClearMode: true UseFleetLock: true diff --git a/module/config/config_updater.py b/module/config/config_updater.py index 5a95e04ec..276bb2be7 100644 --- a/module/config/config_updater.py +++ b/module/config/config_updater.py @@ -647,22 +647,24 @@ class ConfigUpdater: 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: + if opts and 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': + opts = deep_get(self.args, keys=f'{task}.Campaign.Event.option_{server}', default=[]) + if opts and deep_get(new, keys=f'{task}.Campaign.Event', default='campaign_main') not in opts: deep_set(new, keys=f'{task}.Campaign.Event', - value=deep_get(self.args, f'{task}.Campaign.Event.option_{server}')[0]) + value=opts[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': + opts = deep_get(self.args, keys=f'{task}.Campaign.Event.option_{server}', default=[]) + if opts and 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]) + value=opts[0]) # Events does not allow default stage 12-4 def default_stage(t, stage): diff --git a/module/webui/app.py b/module/webui/app.py index e5014aeed..09fd070ac 100644 --- a/module/webui/app.py +++ b/module/webui/app.py @@ -349,6 +349,14 @@ class AlasGUI(Frame): if output_kwargs["widget_type"] == "select" and isinstance(server_options, list) and server_options: options = server_options output_kwargs["options"] = options + if ( + task == "GemsFarming" + and group_name == "Campaign" + and arg_name == "Event" + and output_kwargs["widget_type"] == "select" + and len(options) == 1 + ): + continue if output_kwargs["widget_type"] == "select" and len(options) == 1: only_option = options[0] if only_option in output_kwargs.get("option_bold", []):