Ich programmiere einen Discord-Bot, der Admins ermöglicht, die nicknames der anderen Mitglieder auf dem Server zu ändern. Wenn der Bot nicht die Berechtigung hat, den nickname zu ändern (z. B. die der Admins), sendet er dir eine Direktnachricht. Wenn dies nicht möglich ist, wird eine Nachricht in demselben Textkanal gesendet, in dem der Admin den Befehl zum Ändern des Spitznamens geschrieben hat. Es hat einwandfrei funktioniert, aber jetzt möchte ich meinen Code vereinfachen und die Sache in eine Funktion packen, was jedoch nicht funktioniert.
async def dm(user_id, dm_content, server_content, channel):
user = await bot.fetch_user(user_id)
try:
await user.send(dm_content)
except discord.Forbidden:
await msg.channel.send(server_content)
return
async def on_message(msg):
***anderes Zeug***
await dm(msg.author.id, "Ich habe keine Berechtigung, den Nickname zu ändern.", "Ich habe keine Berechtigung, den Nickname zu ändern. (Dir konnte dies nicht als DM zugestellt werden, überprüfe deine Einstellungen.)", msg.channel)
Fehlermeldung: 'msg' is not defined
Wie definiere ich msg bzw. warum muss ich das überhaupt tun, als ich es noch nicht in der Funktion hatte ging es ja auch.
Vielen Dank