Project rename and restructure

This commit is contained in:
Eden Kirin
2023-03-25 13:21:07 +01:00
commit 0041b7d43e
21 changed files with 1328 additions and 0 deletions

34
hopper/models/player.py Normal file
View File

@ -0,0 +1,34 @@
import datetime
import uuid
from dataclasses import dataclass, field
from typing import Optional
@dataclass
class Position:
x: int
y: int
@dataclass
class Player:
name: str
uuid: str = field(default_factory=lambda: str(uuid.uuid4()))
position: Position = field(default_factory=lambda: Position(0, 0))
move_count: int = 0
move_attempt_count: int = 0
last_seen: datetime.datetime = field(
default_factory=lambda: datetime.datetime.now()
)
active: bool = True
def reset_timeout(self) -> None:
self.last_seen = datetime.datetime.now()
class PlayerList(list[Player]):
def find(self, uuid: str) -> Optional[Player]:
for player in self:
if player.uuid == uuid:
return player
return None