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

assetholdingMessenger.py (1356B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\assetholding\client\messengers\assetholdingMessenger.py
      2 import uuid
      3 import logging
      4 import assetholding.client.messengers.assetholdingMessengerSignal as messenger_signals
      5 from eveProto.generated.eve_public.assetholding.entitlement.api.notices_pb2 import RedeemedNotice
      6 logger = logging.getLogger('asset_holding')
      7 
      8 class AssetHoldingMessenger(object):
      9     _instance = None
     10     public_gateway = None
     11 
     12     @classmethod
     13     def get_instance(cls, public_gateway):
     14         if not cls._instance:
     15             cls._instance = AssetHoldingMessenger(public_gateway)
     16         return cls._instance
     17 
     18     def __init__(self, public_gateway):
     19         self.public_gateway = public_gateway
     20         self._subscribe_to_notices()
     21 
     22     def _subscribe_to_notices(self):
     23         self.public_gateway.subscribe_to_notice(RedeemedNotice, lambda payload, _: self._on_entitlement_redeemed(entitlement_id=payload.entitlement, change_quantity=payload.quantity))
     24 
     25     def _on_entitlement_redeemed(self, entitlement_id, change_quantity):
     26         logger.info('Entitlement Redeemed Notice: {} with quantity {}'.format(entitlement_id, change_quantity))
     27         external_id = uuid.UUID(bytes=entitlement_id.group_by.uuid)
     28         messenger_signals.on_entitlement_redeemed_internal(external_id, change_quantity)