我正在使用不和谐的机器人。 我正在下命令将消息发送到特定房间,但我无法做到……这是我的代码:
@client.command(name='say', help='Dire un message à votre place')
@commands.has_permissions(send_messages=True, manage_messages=True)
async def say(ctx, message, channelid):
await client.wait_until_ready()
channel = client.get_channel(channelid)
embed = discord.Embed(title="Message", color=discord.Color.dark_red())
embed.add_field(name="Nouveau message de {}".format(ctx.message.author), value="{}".format(message))
embed.set_footer(text="{}".format(ctx.message.author))
await channel.send(embed=embed)
这是我在终端中遇到的错误。
Command raised an exception: AttributeError: 'NoneType' object has no attribute 'send"
预先感谢您的回复。
PS:我的机器人是法语
答案 0 :(得分:0)
这是可以帮助您入门的代码的一部分!我最近做了这个:
@client.event
async def on_member_join(member):
channel = discord.utils.get(member.guild.channels, name="?│arrivals")
await channel.send(f"Welcome to Sleep's Gaming Cult {member.mention}! You are the ### member")
您可以将name
更改为id
,然后输入频道ID而不是“?│到达”!我尚未对此进行测试,但这是我的最佳猜测,它将起作用!当然,这是有人加入时的示例,但是您可以将其用于任何命令!
答案 1 :(得分:0)
您可以执行以下操作,以一条字符串而不是一个单词的形式发送消息:
@client.command(name='say', help='Dire un message à votre place')
@commands.has_permissions(send_messages=True, manage_messages=True)
async def say(ctx, channel:discord.TextChannel, message):
#Embed making
embed = discord.Embed(title="Message", color=discord.Color.dark_red())
embed.add_field(name="Nouveau message de {}".format(ctx.message.author), value="{}".format(message))
embed.set_footer(text="{}".format(ctx.message.author))
await channel.send(embed=e)
冒号和不和谐。频道表示您需要在不和谐屏幕上输入#channel
格式
另外,要获得多封信,请执行以下操作:
async def say(ctx, channel:discord.TextChannel, *msg):
message = " ".join(msg)
#Embed making
embed = discord.Embed(title="Message", color=discord.Color.dark_red())
embed.add_field(name="Nouveau message de {}".format(ctx.message.author), value="{}".format(message))
embed.set_footer(text="{}".format(ctx.message.author))
await channel.send(embed=e)
星号使它成为一个元组,所以如果这样做
c?say #text-channel-send Hello and Bye
您好,再见是元组的一部分,就像这样:('Hello','and','bye')
,所以当您这样做
" ".join(msg)
它将元组的元素连接起来,为您提供一个由空格分隔的字符串。它也适用于列表。 希望对您有帮助