From e7ecb8cb77dc03fcdf29c4ed5f22b58c57d08c6d Mon Sep 17 00:00:00 2001 From: 0O0o0oOoO00 <11174151+0o0o0oooo00@users.noreply.github.com> Date: Fri, 23 Jan 2026 17:55:45 +0800 Subject: [PATCH] fix: reset GemsFarming --- module/campaign/campaign_event.py | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/module/campaign/campaign_event.py b/module/campaign/campaign_event.py index bfd31519a..e1a3a15ef 100644 --- a/module/campaign/campaign_event.py +++ b/module/campaign/campaign_event.py @@ -242,15 +242,24 @@ class CampaignEvent(CampaignStatus): class CampaignEvent(CampaignEvent): - def _disable_tasks(self, tasks): - super()._disable_tasks(tasks) + def _reset_gems_farming(self, tasks): + """ + Reset GemsFarming to 2-4 when event is over + + Args: + tasks (list[str]): Task name + """ + hook_enabled = self.config.full_config.Hook_HookGeneral_Enable + campaign_name = "15-2" if hook_enabled else "2-4" for task in tasks: - if task in GEMS_FARMINGS: - full_config = self.config.full_config - if full_config.Hook_HookGeneral_Enable: - full_config.GemsFarming_Campaign_Name = "15-2" - full_config.WarArchives_Campaign_Event = "campaign_main" + if task not in GEMS_FARMINGS: + continue + name = self.config.cross_get(keys=f'{task}.Campaign.Name', default=campaign_name) + if not self.stage_is_main(name): + logger.info(f'Reset GemsFarming to {campaign_name}') + self.config.cross_set(keys=f'{task}.Campaign.Name', value=campaign_name) + self.config.cross_set(keys=f'{task}.Campaign.Event', value='campaign_main') def get_event_pt(self): return super().get_event_pt(update=True)