python - Discord bot 不会运行启动序列
问题描述
我正在制作一个不和谐机器人,它不会运行我制作的序列,当它加入服务器时,它应该在该类别中创建一个角色、一个类别和两个频道。
async def on_server_join(ctx):
await ctx.guild.create_category('Friend')
await ctx.guild.create_role(name="friend.admin", mentionable=True)
category = ctx.guild.utils.get(ctx.guild.categories, name='Friend')
await ctx.guild.create_text_channel('Chat-with-@Friend', category=category)
guild = ctx.guild
admin_role = ctx.guild.roles, name="Admin"
overwrites = {
guild.default_role: ctx.guild.PermissionOverwrite(read_messages=False),
guild.me: ctx.guild.PermissionOverwrite(read_messages=True),
admin_role: ctx.guild.PermissionOverwrite(read_messages=True)
}
await guild.create_text_channel('secret', overwrites=overwrites, category=category)```
解决方案
这是因为事件是on_guild_join(guild)
. 试试这个:
@bot.event # or client.event based on your code
async def on_guild_join(guild):
await guild.create_category('Friend')
# rest of your code
因此,ctx
事件不是传入 ,而是传入guild
,您可以创建频道、角色、类别等,guild.create
而不是ctx.guild.create
。
推荐阅读
- tensorflow - AttributeError:该层从未被调用,因此没有定义的输入形状
- sql - 特定年份的最大值与连接
- reactjs - 使用 Typescript 在 Reactjs 中出现“重复字符串索引签名”的错误
- assembly - 错误:int 0 的非法描述符类型 0
- docker - 配置 docker 加载图像的路径
- r - 以不同颜色绘制高于零与低于零的线
- android - 当我将 Firebase 与我的 Android Gradle 连接时,我遇到了这个问题
- r - 从 lmer 模型中绘制随机截距
- tensorflow - 升级到 tensorflow2.0 alpha 有一些 cuda 麻烦
- xamarin.forms - 防止双击android Prism xamarin