NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

achievement_link_handler.py (1235B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\achievement_system\client\ui\link\achievement_link_handler.py
      2 import evelink.client
      3 import uuid
      4 from achievement_system.client.api.error import DefinitionNotFoundError
      5 from achievement_system.client.model.definition.achievement.identifier import AchievementDefinitionIdentifier
      6 from achievement_system.client.ui.link.scheme import LinkScheme
      7 from achievement_system.client.ui.window.window import AchievementsWindow
      8 
      9 def register_link_handlers(registry):
     10     registry.register(scheme=LinkScheme.ACHIEVEMENT, handler=handle_link, hint='UI/Achievements/Link/AchievementLinkHint', color_info=evelink.default_with_subtle_color_info, bold=False)
     11 
     12 
     13 def handle_link(url):
     14     achievement_uuid = _parse_url(url)
     15     try:
     16         achievement_id = AchievementDefinitionIdentifier(achievement_uuid)
     17         AchievementsWindow.open_achievement(achievement_id)
     18     except DefinitionNotFoundError:
     19         AchievementsWindow.message_player_achievement_not_found()
     20 
     21 
     22 def _parse_url(url):
     23     _, achievement_uuid = url.split(':')
     24     try:
     25         achievement_uuid = uuid.UUID(achievement_uuid)
     26     except ValueError:
     27         return None
     28 
     29     return achievement_uuid