Project rename and restructure
This commit is contained in:
34
hopper/models/player.py
Normal file
34
hopper/models/player.py
Normal 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
|
||||
Reference in New Issue
Block a user