Weiß jemand, warum die Nachricht "Player {Player} not found in Whitelist. ⚠️" nicht als ephemeral gesendet wird?
elif action.lower() == 'remove':
success, message = await self.remove_player_from_whitelist_file(player)
if success:
await interaction.followup.send(f'{message} ✅')
else:
await interaction.followup.send(
f"Player {player} not found in whitelist. ⚠️",
ephemeral=True
)
Ich arbeite an einem Discord-Bot mit Python und habe das Problem, dass obwohl ich ephemeral=true verwende, wird die Nachricht nicht ephemeral (also nur für den Nutzer sichtbar, der sie ausgelöst hat), sondern für alle im Kanal angezeigt.
Woran kann das liegen? Muss ich interaction.followup.send() anders verwenden?
Freue mich über Hilfe!
1 Antwort
Nur die erste Antwort zu einer Interaktion kann den ephemeral-Status setzen. Folgenachrichten haben nicht mehr die Möglichkeit, ihn zu ändern (lies dazu auch hier).
Entweder du setzt den ephemeral-Status bei der ersten Antwort (via interaction.response.send_message oder interaction.response.defer) oder du musst den Nutzer direkt kontaktieren (mit create_dm einen DMChannel erstellen und dann die Nachricht über dessen send-Methode verschicken).