属性对象错误“对象没有属性'消息'”

时间:2017-12-07 18:15:22

标签: python discord discord.py

嗨,我收到了错误

File "C:\Users\Tom\Documents\bot\cogs\misccoms.py", line 28, in giveRole
    example = discord.utils.get(ctx.message.server.roles,name='Example')
AttributeError: 'Misccoms' object has no attribute 'message'

从这行代码中

 @commands.command(pass_context=True,  no_pm=True)
    async def giveRole(ctx):
        example = discord.utils.get(ctx.message.server.roles,name='Example')
        await self.bot.add_roles(ctx.message.mentions[0], example)

此命令的功能应该在成员上放置角色,在这种情况下角色为Example

以下完整代码是

import discord
from discord.ext import commands
from .utils import checks

class Misccoms:
    """Misccoms"""

    def __init__(self, bot):
        self.bot = bot


#Tool Commands


    @commands.command(pass_context=True,  no_pm=True)
    async def giveRole(ctx):
        example = discord.utils.get(ctx.message.server.roles,name='Example')
        await self.bot.add_roles(ctx.message.mentions[0], example)


def setup(bot):
    bot.add_cog(Misccoms(bot))

我不确定我在哪里出错了。

1 个答案:

答案 0 :(得分:0)

我认为修复是在'ctx'参数之前添加'self'参数。我测试了它,它对我有用。

import discord
from discord.ext import commands

class GiveRole():
    def __init__(self, bot):
        self.bot = bot

    @commands.command(pass_context=True, no_pm=True)
    async def giveRole(self, ctx):
        example = discord.utils.get(ctx.message.server.roles,name='ExampleRole')
        await self.bot.add_roles(ctx.message.mentions[0], example)

def setup(bot):
    bot.add_cog(GiveRole(bot))