Discord.py Embed in bestimme Channel senden?

1 Antwort

Du musst über die Channel-ID den Channel bekommen und statt an den Context eben an den Channel senden

wenn dein Bot selbst intern z.B. über die Variable client zur Verfügung steht:

client.get_channel(CHANNEL_ID).send(embed=embed)

statt eben ctx.send(embed=embed)

Woher ich das weiß:eigene Erfahrung – Nutzer seit 2015, Admin eigener Server, Dev eines Bots

verreisterNutzer  04.03.2021, 13:27

meinst du so: "await ctx.send(embed=embed, 816318257710759977 )" ?

0
xxxcyberxxx  04.03.2021, 13:31
@verreisterNutzer

nein, das meine ich so nicht. Du sendest immer noch an ctx, was der momentane Kontext der erhaltenen Nachricht ist. Das ist dann der Channel, über welchen die Nachricht kam. Ich hab mal meine Antwort ergänzt

0
verreisterNutzer  04.03.2021, 14:08
@xxxcyberxxx

Hier ist jetzt mein Code aber wenn ich !sendmsg eingebe sendet der Bot keine Nachricht.

idchannel = input("Enter your Channel ID: ")
idchannel = "CHANNEL_ID"


@commands.has_role(816429501893443634)
async def sendmsg(ctx):
    embed = discord.Embed(title="text", description=f"**txt**", footer=f"txt", colour=0xFF0000)
    embed.set_author(name="txt")
    embed.add_field(name="text", value="text", inline=False)
    await bot.get_channel(CHANNEL_ID).send(embed=embed)
0
xxxcyberxxx  04.03.2021, 14:55
@verreisterNutzer
könntest du mir über Discord helfen?

könnte ich, will ich aber nicht

Lass dir doch mal in der Konsole CHANNEL_ID ausgeben - und auch den Typen von Channel_ID.
Der Typ müsste ein int sein und der Inhalt eben die Channel-ID, die du von Discord selbst bekommst

1