From 213630f8a6ce06560da173373cce295dd3b57008 Mon Sep 17 00:00:00 2001 From: Vincent Date: Fri, 14 Jun 2024 16:03:40 +0100 Subject: [PATCH] feat: add more tests --- src/endstone_test/event_listener.py | 19 +++++++++++++++++-- src/endstone_test/plugin.py | 18 ++++++++++++++++++ 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/endstone_test/event_listener.py b/src/endstone_test/event_listener.py index 63e9e46..c2b3ba8 100644 --- a/src/endstone_test/event_listener.py +++ b/src/endstone_test/event_listener.py @@ -1,3 +1,4 @@ +import datetime from functools import partial from uuid import UUID @@ -14,7 +15,6 @@ def __init__(self, plugin: Plugin): def on_player_join(self, event: PlayerJoinEvent) -> None: def send_welcome_message(player_name: str, player_id: UUID) -> None: self.server.broadcast_message(ColorFormat.YELLOW + f"{player_name} joined the game.") - self.server.dispatch_command(self.server.command_sender, f"say {player_name}, uuid: {player_id}") self.server.scheduler.run_task_later( self._plugin, partial(send_welcome_message, event.player.name, event.player.unique_id), delay=20 @@ -22,7 +22,22 @@ def send_welcome_message(player_name: str, player_id: UUID) -> None: assert event.player in self.server.online_players assert self.server.get_player(event.player.name) is event.player - # assert self.server.get_player(event.player.unique_id) is event.player # TODO: this will crash + # assert self.server.get_player(event.player.unique_id) is event.player # TODO(fixme): this will crash + + self._plugin.logger.info("===========================") + self._plugin.logger.info(f"Name: {event.player.name}") + self._plugin.logger.info(f"UUID: {event.player.unique_id}") + self._plugin.logger.info(f"Entity Id: {event.player.runtime_id}") + self._plugin.logger.info(f"Address: {event.player.address}") + self._plugin.logger.info(f"Game mode: {event.player.game_mode}") + self._plugin.logger.info(f"Location: {event.player.location}") + self._plugin.logger.info(f"Velocity: {event.player.velocity}") + self._plugin.logger.info(f"Op status: {event.player.op}") + self._plugin.logger.info(f"Ping: {event.player.ping / datetime.timedelta(milliseconds=1)}") + self._plugin.logger.info("===========================") + + assert event.player.inventory.size == 36 + assert event.player.inventory.max_stack_size == 254 @property def server(self) -> Server: diff --git a/src/endstone_test/plugin.py b/src/endstone_test/plugin.py index 5b14fa2..cdf21ca 100644 --- a/src/endstone_test/plugin.py +++ b/src/endstone_test/plugin.py @@ -32,6 +32,9 @@ def on_enable(self) -> None: self._listener = EventListener(self) self.register_events(self._listener) + assert self.get_command("test") is not None + assert self.get_command("test").plugin is self + self.logger.info("on_enable is called!") assert len(self.server.levels) == 1 @@ -39,5 +42,20 @@ def on_enable(self) -> None: self.server.max_players = 100 assert self.server.max_players == 100 + self.server.broadcast_message("Hello!") + + self.server.scheduler.run_task_timer(self, self.send_debug_message, delay=0, period=10) + def on_disable(self) -> None: self.logger.info("on_disable is called!") + + def send_debug_message(self): + for player in self.server.online_players: + player.send_tip( + f"Level: {player.level.name}, Time: {player.level.time}\n" + f"Location: {player.location}\n" + f"Velocity: {player.velocity}\n" + f"Dimension: {player.location.dimension.name}\n" + f"InWater: {player.is_in_water}, InLava: {player.is_in_lava}\n" + f"OnGround: {player.is_on_ground}, Flying: {player.is_flying}" + )