【问题标题】:Why does the message str object Has no attribute id appear?为什么会出现消息str object Has no attribute id?
【发布时间】:2018-12-21 22:12:10
【问题描述】:

我是韩国人,如果你能理解我蹩脚的英语,我将不胜感激。

问题:

我正在制作一个不和谐的机器人。 通过bot将用户转移到语音通道时,用户似乎没有在id中输入值。 是针对未应用的功能吗? 非常感谢您用一个易于理解的简单示例进行回复。

lst = []
async def on_message(message):


    if message.content.startswith('>커맨드'):
        embed = discord.Embed(title="커맨드 목록", description='\n\nHeimish클랜 팀봇 입니다. \n\n >추가 ○○ : 멤버를 추가합니다. \n\n >제외 ○○ : 멤버를 제외합니다. \n\n >초기화 : 추가되어있는 모든 멤버를 삭제합니다. \n\n >팀2 : 2명 정원의 팀을 구성합니다. \n\n >팀3 : 3명 정원의 팀을 구성합니다. \n\n >팀4 : 4명 정원의 팀을 구성합니다. \n\n >팀5 : 5명 정원의 팀을 구성합니다.\n\n', color=0x00ff00)
        await client.send_message(message.channel, embed=embed)

    elif message.content.startswith('>추가'):
        x = message.content.split()
        if(len(x) ==2):
            tmp= x[len(x)-1]
            j=0 
            for i in range(0,len(lst)):
                if(tmp == lst[i]) == True:  
                    j=j+1
            if j == 0:
                embed = discord.Embed(title="신청", description="%s님이 추가되었습니다!."% tmp, color=0x00ff00)
                await client.send_message(message.channel, embed=embed)
                lst.append(tmp) 
            else: 
                embed = discord.Embed(title="띠용", description="%s님 중복지원입니다!."% tmp, color=0x00ff00)
                await client.send_message(message.channel, embed=embed)
        else:
            embed = discord.Embed(title="띠용", description="명령어에 맞게 다시 입력하세요!", color=0x00ff00)
            await client.send_message(message.channel, embed=embed)
    elif message.content.startswith('>보이스'):
        if(message.author.display_name != '김진혁'):
            embed = discord.Embed(title="Access failed", description='only access person', color=0x00ff00)
            await client.send_message(message.channel, embed=embed)
        else:
            person = '김진혁'
            channel = discord.utils.find(lambda x: x.name == 'squad-1', message.server.channels)
            #for i in range(0,len(lst)):
            await client.move_member(person , channel)

【问题讨论】:

  • 忽略 on_message Traceback 中的异常(最近一次调用最后一次):文件“C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\site-packages\discord\client .py”,第 307 行,从 getattr(self, event)(*args, **kwargs) 产生的 _run_event 文件“C:/Users/user/Desktop/heimish.py”,第 185 行,on_message await client.move_member ('김진혁' , 频道)
  • 文件“C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\site-packages\discord\client.py”,第 3135 行,在 move_member 中来自 self .http.move_member(member.id, member.server.id, channel.id) AttributeError: 'str' object has no attribute 'id'
  • 这是我的完整错误代码。
  • 把它放在问题中,这样你就可以把它格式化成可读的格式。
  • client.move_member() 的第一个参数应该是Member 对象,而不是字符串。

标签: python discord discord.py


【解决方案1】:

client.move_member() 的第一个参数必须是 Member,但您传递的是一个字符串。使用:

person = message.author

【讨论】:

    猜你喜欢
    • 2023-01-16
    • 2021-06-24
    • 1970-01-01
    • 2020-05-26
    • 1970-01-01
    • 2021-08-24
    • 2020-04-26
    相关资源
    最近更新 更多