on_message() 구현 후 명령이 비활성화됨
discord.py의 on_message() 이벤트를 사용할 때 사용자에게 명령이 실행되지 않는 문제가 발생할 수 있습니다. 일을 멈추세요. 이는 특별히 활성화하지 않는 한 명령 실행을 비활성화하는 on_message()의 우선적인 특성 때문입니다.
문제 해결
이 문제를 해결하려면 다음을 수행하십시오. on_message() 함수 끝에 bot.process_commands(message)에 대한 호출을 추가하는 것이 중요합니다. 이 줄은 Discord가 메시지에 있는 모든 명령을 처리하도록 지시합니다.
수정된 코드
다음은 다음을 통합하는 수정된 코드 버전입니다. bot.process_commands(message):
import discord import asyncio from discord.ext import commands bot = commands.Bot(command_prefix = '-') @bot.event async def on_ready(): print('Logged in as') print(bot.user.name) print(bot.user.id) print('------') @bot.event async def on_message(message): if message.content.startswith('-debug'): await message.channel.send('d') # Process any commands present in the message await bot.process_commands(message) @bot.command(pass_context=True) async def ping(ctx): await ctx.channel.send('Pong!') @bot.command(pass_context=True) async def add(ctx, *, arg): await ctx.send(arg)
설명
기본 on_message() 이벤트에는 내부적으로 bot.process_commands(message)에 대한 호출이 포함됩니다. 이 줄을 사용하면 메시지의 명령을 실행할 수 있습니다. 기본 on_message()를 재정의하면 명령 처리를 효과적으로 차단할 수 있습니다. bot.process_commands(message)를 추가하면 원하는 기능이 수동으로 복원됩니다.
결론
앞서 언급한 솔루션을 구현하면 on_message()의 디버그 출력이 모두 보장됩니다. 사용자 정의 명령이 올바르게 작동합니다.
위 내용은 'on_message()' 구현 후 Discord 명령이 작동하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!