track player is dead
All checks were successful
Build and Push Docker Image / build (push) Successful in 12s

This commit is contained in:
Corban-Lee Jones 2024-12-09 14:53:52 +00:00
parent 2c30e719ce
commit 38dbc1a419
2 changed files with 13 additions and 1 deletions

View File

@ -83,7 +83,7 @@ class PlayersCog(commands.Cog):
embed = await player.get_embed()
embed.title = "Player Has Died"
embed.colour = Colour.brand_green()
embed.colour = Colour.dark_orange()
await channel.send(embed=embed)
@ -109,6 +109,12 @@ class PlayersCog(commands.Cog):
await player.update_steam_summary(re_match.group("steam_id"), self.bot.steam_api_key)
await player.save()
# This connection method is called when the player respawns
if player.is_dead:
await player.is_dead = False # player must be alive if fully connected
await player.save()
return
channel = self.bot.get_channel(self.bot.in_game_channel_id)
channel = channel or await self.bot.fetch_channel(self.bot.in_game_channel_id)
@ -137,6 +143,9 @@ class PlayersCog(commands.Cog):
await player.update_steam_summary(re_match.group("steam_id"), self.bot.steam_api_key)
await player.save()
if player.is_dead:
return
channel = self.bot.get_channel(self.bot.in_game_channel_id)
channel = channel or await self.bot.fetch_channel(self.bot.in_game_channel_id)

View File

@ -51,6 +51,7 @@ class Player(Model):
last_connection = fields.DatetimeField(null=True)
last_disconnection = fields.DatetimeField(null=True)
play_time_seconds = fields.IntField(default=0)
is_dead = fields.BooleanField(default=False)
class Meta:
table = "players"
@ -79,6 +80,8 @@ class Player(Model):
"""
"""
log.debug("Assigning death to player: %s", self.username)
self.is_dead = True
await self.save()
return await PlayerDeath.create(
player=self,
coordinate_x=coord_x,