discord.py Nur bestimmte Personen Befehl ausführen lassen?
Hallo,
habe mir gerade einen Discord Bot erstellt. Plötzlich mein erstes Problem mit diesem Code:
@client.event
@asyncio.coroutine
async def on_message(message):
# we do not want the bot to reply to itself
if message.author == client.user:
return
if message.content.startswith('!Befehl'):
if not message.author.id == "ID":
await client.delete_message(message)
msg = 'Hey, du darfst den Befehl nicht ausführen {0.author.mention}'.format(message)
await client.send_message(message.channel, msg)
if message.author.id == "ID":
if message.content.startswith('!Befehl'):
reply = message.content
await client.delete_message(message)
reply = reply.replace('Befehl ', '')
msg = '%s'.format(message) % reply
await client.send_message(message.channel, msg)
Das Ergebnis ist, sobald jemand außer ich etwas schreibt, wird seine Nachricht sofort gelöscht. Dachte das könnte ich wie oben gezeigt abfangen mit
if message.content.startswith
Ich habe wohl irgendeinen Denkfehler, kann mir jemand helfen?
2 Antworten
Das Ergebnis ist, sobald jemand außer ich etwas schreibt, wird seine Nachricht sofort gelöscht.
Genau das macht dein Quellcode... Was genau willst du denn eigentlich als Ergebnis haben?
"if not message.content.startswith"
versuch mal das
Der Code hat plötzlich funktioniert als ich den Token neu generiert habe. Es war so als hätte er sich erst dann aktualisiert.
Soweit ich das sehe, soll die Nachricht nur dann gelöscht werden, wenn ein nicht autorisierter Nutzer sie mit "!Befehl" beginnt.
@commands.has_role(hier die id von der rolle die den command senden kann)
async def sendmsg(ctx):
embed = discord.Embed(title="Ticket-System", description=f"**React to this message with 📬 to create a ticket!**", footer=f"Due to Timezones, Support may not be able to help you 24/7, pls understand", colour=0xFF0000)
embed.set_author(name="JakixHacks")
embed.add_field(name="Important", value="Due to Timezones, Support may not be able to help you 24/7, please understand.", inline=False)
await ctx.send(embed=embed)
das sollte funktionieren