Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz
  • 0

Discord.py 2 problemy


NemiYT

Pytanie

Opublikowano

1:Witam jak zrobić by komendy np. ?test dzialaly rowniez jak wpisze ?TeSt Kod

2: Jak zrobić zmienianie statusu bota robiłem tak z if message.content... ale jak z async def  Kod2? bo wywala mi błąd: 

Spoiler
Ignoring exception in command setstatus
 
Traceback (most recent call last):
 
File "C:\Users\Admin\AppData\Local\Programs\Python\Python36-32\lib\site-packages\discord\ext\commands\core.py", line 50, in wrapped
 
ret = yield from coro(*args, **kwargs)
 
File "c:\Users\Admin\Desktop\Damian\Bot\bot2.py", line 26, in setstatus
 
status = message.content[6:]
 
NameError: name 'message' is not defined
 
 
The above exception was the direct cause of the following exception:
 
 
Traceback (most recent call last):
Traceback (most recent call last):
 
File "C:\Users\Admin\AppData\Local\Programs\Python\Python36-32\lib\site-packages\discord\ext\commands\bot.py", line 846, in process_commands
 
yield from command.invoke(ctx)
 
File "C:\Users\Admin\AppData\Local\Programs\Python\Python36-32\lib\site-packages\discord\ext\commands\core.py", line 374, in invoke
 
yield from injected(*ctx.args, **ctx.kwargs)
 
File "C:\Users\Admin\AppData\Local\Programs\Python\Python36-32\lib\site-packages\discord\ext\commands\core.py", line 54, in wrapped
 
raise CommandInvokeError(e) from e
 
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: NameError: name 'message' is not defined

 

Jeste pomocny ( ͡° ͜ʖ ͡° )

ale nie zawsze ( ͡° ͜ʖ ͡° )

4 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

Opublikowano

Nie powinno się robić w taki sposób funkcji, Discord py jest bardziej przystosowany do robienia kodu w taki sposób:

@client.event
async def on_message(message):
    if message.content.startswith('!test'):
      # zrób coś

W ten sposób można przed if'em przekształcić duże litery message.content w małe za pomocą funkcji .lower()

Na drugie pytanie sam sobie odpowiedziałeś

1149730ee7ddaf7UVMV7ZB.gif

Opublikowano

Nikt Ci nie zabroni sprawdzić czy zawartość wiadomości jest równa danej wartości. Użyj mózgu najpierw później szukaj w internecie.

1149730ee7ddaf7UVMV7ZB.gif

Opublikowano
2 minuty temu, Drenek napisał:

Nikt Ci nie zabroni sprawdzić czy zawartość wiadomości jest równa danej wartości. Użyj mózgu najpierw później szukaj w internecie.

Nie każdy posiada "mózgu" jaki ty myślisz że ma pytam się jak to zrobić a nie potrzebuje zbędnych odpowiedzi

Jeste pomocny ( ͡° ͜ʖ ͡° )

ale nie zawsze ( ͡° ͜ʖ ͡° )

Opublikowano
Dnia 9.02.2018 o 23:23, Drenek napisał:

Nie powinno się robić w taki sposób funkcji, Discord py jest bardziej przystosowany do robienia kodu w taki sposób:


@client.event
async def on_message(message):
    if message.content.startswith('!test'):
      # zrób coś

W ten sposób można przed if'em przekształcić duże litery message.content w małe za pomocą funkcji .lower()

Na drugie pytanie sam sobie odpowiedziałeś

"startswith" i oto chodzi bo jak wpisze np. !test_erro albo !tester to i tak to zadziała

Jeste pomocny ( ͡° ͜ʖ ͡° )

ale nie zawsze ( ͡° ͜ʖ ͡° )

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...