diff --git a/cogs/players.py b/cogs/players.py index 8bd1550..3291d7e 100644 --- a/cogs/players.py +++ b/cogs/players.py @@ -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) diff --git a/utils/models.py b/utils/models.py index 70a5541..1704fcb 100644 --- a/utils/models.py +++ b/utils/models.py @@ -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,