Discord.py specifické ID uživatele

0

Otázka

Dobrý den, přetečení zásobníku společenství!

Jen jsem se chtěl zeptat, proč když dám konkrétní ID uživatele, zákaz, příkaz vrátí následující(účelem tohoto příkazu je to jen, když někdo s zákazy trvalé ondulaci vstupuje to w/o ping nebo zavedení jakékoliv vstupní a pouze příkaz dostane zakázány, aka mini troll zákaz, příkaz):

enter image description here

Tady je kód příkazu:

>     @client.command() @commands.has_permissions(ban_members = True)
> #async def niceroger(ctx,Member:discord.User=None): async def niceroger(ctx,Member:discord.User=None):
>     user=669680584376713259
>     username = client.get_user(user)
>     #user2=discord.get_member(669680584376713259)
>     reason = "Bye bye"
>     await ctx.guild.ban(username, reason=reason)
>     #await ctx.guild.ban(user, reason=reason)
>     #await ctx.guild.ban(Member, reason = reason)
>     await ctx.channel.send(f"Bye <@669680584376713259>")

S pozdravem, Inženýr

discord discord.py python
2021-11-23 16:56:28
1

Nejlepší odpověď

1

Za prvé, ujistěte se, že vždy zadejte chybovou zprávu jen jako blok kódu namísto obrazu. Zdá se, že váš problém je jen AttributeError a že username nemá id. Myslím, že problém zde je tento řádek:

username = client.get_user(user)

Podle dokumentace, client.get_user(id) vrátí None pokud to nemůže najít uživatele s daným id. Takže ujistěte se, že vaše user proměnná je správné.

2021-11-23 19:51:41

Děkuji za respone, to je chyba, pastebin: pastebin.com/eVHR58dG Bohužel, z nějakého důvodu to stále ukazuje stejnou chybu? Jak mám nastavit proměnnou correctcly?
Engineer

Myslím si, že proměnná je nastaven správně, nicméně id sám o sobě může být špatně. K chybě dochází, protože client.get_user(user) se vrací None a přiřazení k username. A později kód se snaží dostat username.idvšak to neexistuje, protože username je None. Takže ujistěte se, že číslo přiřazené user je správné, aby client.get_user(user) nevrátí None
Roopesh-J

Omlouvám se, že ruším znovu, jen opakování, aby si všechno z mého python základní kurz, teď jsem přidal de > klient.get_user(uživatel) a teď je to jiný příběh. Nevadilo by vám dělat příklad kódu nebo odkazují na jeden, takže můžu vidět, jak to funguje: pastebin.com/FLeVRi2V
Engineer

Žádné starosti. Jste si jisti, že 669680584376713259 je správné id. Protože pokud ano, nevidím důvod, proč problém přetrvává. Vzal jsem svůj kód z té pastebin propojené a aktualizován zde. Není 100% jistý, jestli to funguje, ale dát to šanci. Pokud ne, pak myslím, že id je to špatné.
Roopesh-J

Děkuji vám, že mi udělal pokrok hodně a jsme jen prošel trochu, teď jsem našel problém a to je ten řádek "členských = ctx.zprávu.cech.get_member(user_id)" nikdy se podaří najít NĚJAKÉ neshody ID, ani moje, ani za předpokladu, jeden z ALT acc. Je to bc nejsme nastavení pole "user_id = 669680584376713259" správně?
Engineer

Hm to je divné. Dobře zkuste to user = client.fetch_user(id). To vrátí User místo Member takže ban je takhle await ctx.guild.ban(user, reason=reason). Na user_id je správně nastaven, tak dlouho, jak to je int to je správně nastaven. Hodnota sama o sobě by mohla být nesprávná, ale to vypadá, že už jste to objasnil.
Roopesh-J

Hmm, jsem změnil bot odpověď, než "ban" dostane aplikovat na uvidíme, jestli to reaguje s uživatelem zmínku, ale to něco výstupy, které jsem nikdy neviděl? Pastebin: pastebin.com/fj5VuZcf
Engineer

Omlouvám se, moje chyba. To by mělo být await client.fetch_user(id)to je coroutine tak to musí být očekávané.
Roopesh-J

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................