【发布时间】:2019-06-25 12:37:23
【问题描述】:
如果他们具有特定角色,我正在尝试向不和谐频道中的每个人发送私人消息。
我设法找到了这个:
from discord.ext import commands
import discord
TOKEN = 'xxx'
bot = commands.Bot(command_prefix='!')
@bot.command(pass_context=True)
async def message_role(ctx, role: discord.Role, *, message):
for member in ctx.message.server.members:
if role in member.roles:
await bot.send_message(member, message)
bot.run(TOKEN)
我使用 Client.x,但我不明白 Bot.x 是什么。是,当我运行它时,我收到以下错误消息:
PS D:\discord bots> py .\DMeveryone.py
Ignoring exception in command message_role:
Traceback (most recent call last):
File "D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\lib\site-packages\discord\ext\commands\bot.py", line 898, in invoke
await ctx.command.invoke(ctx)
File "D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\lib\site-packages\discord\ext\commands\core.py", line 608, in invoke
await self.prepare(ctx)
File "D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\lib\site-packages\discord\ext\commands\core.py", line 573, in prepare
await self._parse_arguments(ctx)
File "D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\lib\site-packages\discord\ext\commands\core.py", line 491, in _parse_arguments
transformed = await self.transform(ctx, param)
File "D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\lib\site-packages\discord\ext\commands\core.py", line 353, in transform
return await self.do_conversion(ctx, converter, argument, param)
File "D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\lib\site-packages\discord\ext\commands\core.py", line 308, in do_conversion
return await self._actual_conversion(ctx, converter, argument, param)
File "D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\lib\site-packages\discord\ext\commands\core.py", line 254, in _actual_conversion
ret = await instance.convert(ctx, argument)
File "D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\lib\site-packages\discord\ext\commands\converter.py", line 320, in convert
raise NoPrivateMessage()
discord.ext.commands.errors.NoPrivateMessage
这是消息:!message_role member 大家好!
如果有人能向我解释这个问题会很棒,非常感谢。
【问题讨论】:
-
据我所见,您收到的
exception discord.ext.commands.NoPrivateMessage(message=None, *args)本质上是在告诉您->当操作在私人消息上下文中不起作用时引发异常 -
所以这行不通?
-
如果您从机器人所在服务器中的文本通道调用命令而不是从私人消息中调用命令,则它可以工作
-
@Tristo 我已经试过了。我也得到一个错误:discord.ext.commands.errors.CommandInvokeError:命令引发异常:AttributeError:'Message'对象没有属性'server'
-
@lucky_dandu 这是未在此处发布的代码错误,但这意味着您在某处执行
message.server,而您需要执行message.channel.server。
标签: python discord discord.py