Send player info with product purchase data
This commit is contained in:
@ -7,16 +7,20 @@ import websockets
|
||||
from websockets import WebSocketServerProtocol
|
||||
from websockets.exceptions import ConnectionClosedOK
|
||||
|
||||
from hopper.models.player import Player
|
||||
from hopper.models.product import Product
|
||||
from hopper.models.ws_dto import (
|
||||
GameDumpDto,
|
||||
ProductPurchaseDoneDto,
|
||||
ProductPurchaseStartDto,
|
||||
ProductPurchaseTimerDto,
|
||||
WSGameDumpMessage,
|
||||
WSMessage,
|
||||
WSProductPurchaseDone,
|
||||
WSProductPurchaseStart,
|
||||
WSProductPurchaseDoneMessage,
|
||||
WSProductPurchaseStartMessage,
|
||||
WSProductPurchaseTimerTickMessage,
|
||||
)
|
||||
from settings import settings
|
||||
|
||||
|
||||
class WSServer(Thread):
|
||||
@ -85,16 +89,35 @@ class WSServer(Thread):
|
||||
message = self._create_game_dump_message()
|
||||
await self.send_message_to_clients(message)
|
||||
|
||||
async def send_product_purchase_message(self, products: Iterable[Product]) -> None:
|
||||
message = WSProductPurchaseStart(
|
||||
data=ProductPurchaseStartDto(products=products)
|
||||
async def send_product_purchase_start_message(
|
||||
self, player: Player, products: Iterable[Product]
|
||||
) -> None:
|
||||
message = WSProductPurchaseStartMessage(
|
||||
data=ProductPurchaseStartDto(
|
||||
player=player,
|
||||
products=products,
|
||||
timeout=settings.purchase_timeout,
|
||||
)
|
||||
)
|
||||
await self.send_message_to_clients(message)
|
||||
|
||||
async def send_product_purchase_time_left_message(
|
||||
self, player: Player, time_left: int
|
||||
) -> None:
|
||||
message = WSProductPurchaseTimerTickMessage(
|
||||
data=ProductPurchaseTimerDto(
|
||||
player=player,
|
||||
time_left=time_left,
|
||||
)
|
||||
)
|
||||
await self.send_message_to_clients(message)
|
||||
|
||||
async def send_product_purchase_done_message(
|
||||
self, product: Optional[Product] = None
|
||||
self, player: Player, product: Optional[Product] = None
|
||||
) -> None:
|
||||
message = WSProductPurchaseDone(data=ProductPurchaseDoneDto(product=product))
|
||||
message = WSProductPurchaseDoneMessage(
|
||||
data=ProductPurchaseDoneDto(player=player, product=product),
|
||||
)
|
||||
await self.send_message_to_clients(message)
|
||||
|
||||
async def run_async(self) -> None:
|
||||
|
||||
Reference in New Issue
Block a user