discord.py 定义 "ctx" 不带参数
discord.py defining "ctx" without parameters
我正在尝试制作一个检查频道的机器人,如果有人向该频道发送消息,他们的消息将被删除并打开另一个频道。代码是这样的:
async def on_message(message):
if message.channel.id == 727570110432280678:
await message.channel.purge(limit=1)
guild = ctx.message.guild
overwrites = {
guild.default_role: discord.PermissionOverwrite(read_messages=False),
guild.me: discord.PermissionOverwrite(read_messages=True)
ctx.guild.roles[2]: discord.PermissionOverwrite(read_messages=True),
ctx.message.author: discord.PermissionOverwrite(read_messages=True)
}
await ctx.guild.categories[2].create_text_channel(name='test', overwrites=overwrites)
但我必须定义“ctx”,但我不知道如何定义。当我输入
async def on_message(ctx, message):
我缺少 1 个必需的位置参数错误,所以我必须在代码中定义它。
将 guild = ctx.message.guild
替换为 guild = message.guild
。您可以从 message
对象中获取 guild
。
ctx 对象通常不是必需的。事件为您提供了您需要的所有对象。
您从事件中获得的对象通常包含其他数据,例如公会对象等(只需阅读文档)。
在这种情况下,您有一个 message object from the on_message() event。
建议在 documentation 中查找,看看您可以用它做什么。
当您阅读有关 message object you will see that it has a guild object.
的文档时
现在您可以这样做了:
guild = message.guild
检索您想要的公会对象。
我正在尝试制作一个检查频道的机器人,如果有人向该频道发送消息,他们的消息将被删除并打开另一个频道。代码是这样的:
async def on_message(message):
if message.channel.id == 727570110432280678:
await message.channel.purge(limit=1)
guild = ctx.message.guild
overwrites = {
guild.default_role: discord.PermissionOverwrite(read_messages=False),
guild.me: discord.PermissionOverwrite(read_messages=True)
ctx.guild.roles[2]: discord.PermissionOverwrite(read_messages=True),
ctx.message.author: discord.PermissionOverwrite(read_messages=True)
}
await ctx.guild.categories[2].create_text_channel(name='test', overwrites=overwrites)
但我必须定义“ctx”,但我不知道如何定义。当我输入
async def on_message(ctx, message):
我缺少 1 个必需的位置参数错误,所以我必须在代码中定义它。
将 guild = ctx.message.guild
替换为 guild = message.guild
。您可以从 message
对象中获取 guild
。
ctx 对象通常不是必需的。事件为您提供了您需要的所有对象。 您从事件中获得的对象通常包含其他数据,例如公会对象等(只需阅读文档)。
在这种情况下,您有一个 message object from the on_message() event。 建议在 documentation 中查找,看看您可以用它做什么。 当您阅读有关 message object you will see that it has a guild object.
的文档时现在您可以这样做了:
guild = message.guild
检索您想要的公会对象。