from .objects import BaseObject , Stuff
from dataclasses import dataclass , field
from typing import Any
[docs]
class Event(BaseObject):
"""
The class is a base event for websocket.
"""
[docs]
@dataclass
class IdentifyEvent(Event):
"""
IdentifyEvent. call when the websocket is ready.
"""
uuid: str
[docs]
@dataclass
class ExchangejoinEvent(Event):
"""
Event on exchange join.
"""
gameId: str
exchangeKey: str
[docs]
@dataclass
class ExchangeOnlineEvent(Event):
"""
Event on exchange key online.
"""
username: str
v: str
[docs]
@dataclass
class ExchangeOfflineEvent(Event):
"""
Event on exchange key offline.
"""
username: str
[docs]
@dataclass
class ExchangeGameAliveEvent(Event):
"""
Event on exchange key Game Alive.
"""
alive: int
[docs]
@dataclass
class ExchangeGameEnd(Event):
"""
Event on exchange key Game End.
"""
username: str
kills: int
damageDealt: int
damageTaken: int
duration: str
position: str
isWin: bool
stuff: Stuff
[docs]
@dataclass
class BroadCasteEvent(Event):
"""
Event on broadcaste.
"""
msg: str
[docs]
@dataclass
class HelloEvent(Event):
"""
Event on hello.
"""
heartbeat_interval: int
[docs]
@dataclass
class HeartBeatEvent(Event):
"""
Event on heartbeat.
"""
ok: bool
count: int
players: list
[docs]
@dataclass
class ConfirmGameStart(Event):
"""
Event on ConfirmGameStart.
"""
ok: bool
usernameChanged: bool
[docs]
@dataclass
class GameStart(Event):
"""
Event on GameStart.
"""
ok: bool
system: bool
players: list
[docs]
@dataclass
class GameEnd(Event):
"""
Event on GameEnd.
"""
left: str
[docs]
@dataclass
class ConfirmGameEnd(Event):
"""
Event on GameEnd.
"""
ok: bool
[docs]
@dataclass
class KillEvent(Event):
"""
Event on KillEvent.
"""
killer: str
killed: str
timestamp: int
[docs]
@dataclass
class VersionUpdate(Event):
"""
Event on VersionUpdate.
"""
v: str
[docs]
@dataclass
class ChatMessage(Event):
"""
Event on ChatMessage.
"""
user: str
text: str
timestamp: int
system: bool
[docs]
@dataclass
class ConfirmChatMessage(Event):
"""
Event on ChatMessageConfirm.
"""
ok: bool
[docs]
@dataclass
class VoiceData(Event):
"""
Event on VoiceData.
"""
d: list
u: str
[docs]
@dataclass
class VoiceChatUpdate(Event):
"""
Event on VoiceChatUpdate.
"""
user: str
isVoiceChat: bool
[docs]
@dataclass
class ConfirmVoiceChatUpdate(Event):
"""
Event on ConfirmVoiceChatUpdate.
"""
ok: bool
[docs]
@dataclass
class ErrorEvent(Event):
"""
Event on ErrorEvent.
"""
op: int
event: str
error: str