我用discord.py写了一个机器人。问题是它响应我的DM,但不响应我在频道中的消息。有人能帮我吗?
import discord
import requests
import urllib.request
import os
from io import BytesIO
from PIL import Image
from discord.ext import commands
bot = commands.Bot(command_prefix='!')
@bot.event
async def on_ready():
print('We have logged in as {0.user}'.format(bot))
@bot.event
async def on_message(message):
await bot.process_commands(message)
@bot.command()
async def bothello(ctx):
print(ctx.channel)
if isinstance(ctx.channel, discord.DMChannel):
await ctx.send(f'DM')
elif isinstance(ctx.channel, discord.TextChannel):
print(ctx.channel.name)
await ctx.send(f'channel: {ctx.channel.name}')
else:
print("no way")
print('hello')
bot.run('MY_BOT_TOKEN')
我试着修改许可证,但没有用。
1条答案
按热度按时间5ktev3wc1#
我猜您使用的是
discord.py
库,而不是它的fork,因为它在您的问题标签中。所以,首先,看起来不像是在使用
discord.py 2.0
,因为你没有得到一个关于没有传递intents
关键字参数的异常。确保你有一个最新的discord.py
,尝试使用以下命令更新它:python -m pip install -U discord.py
第二,机器人不响应服务器中的命令是因为您没有2.0中新增的message_content特权意图;由于它没有Intent,因此无法访问服务器中发送的消息内容,因此您需要在开发门户和代码中启用它。示例(代码):
您可能希望查看
discord.py
的指南,了解如何在此处的开发门户中启用Intent。