Updates the bot's status

        This is used to get the game that the bot is "playing" or to clear it.
        If you want to set a game, pass a name; if you want to clear it, either
        call this method without the optional ``name`` parameter or explicitly
        pass ``None``.

        Args:
            name: the game's name, or None

def set_status(self, name: str = None):
        """Updates the bot's status

        This is used to get the game that the bot is "playing" or to clear it.
        If you want to set a game, pass a name; if you want to clear it, either
        call this method without the optional ``name`` parameter or explicitly
        pass ``None``.

        Args:
            name: the game's name, or None
        """
        game = None
        if name:
            game = {
                'name': name
            }
        payload = {
            'op': WebSocketEvent.STATUS_UPDATE.value,
            'd': {
                'game': game,
                'status': 'online',
                'afk': False,
                'since': 0.0
            }
        }
        data = json.dumps(payload, indent=2)
        self.logger.debug(f'Sending status update payload: {data}')
        self._ws.send(data)