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