提问者:小点点

我的discordpy get()方法有什么问题?


所以我想写一个有趣的俄罗斯主题的小不和机器人。我想让它播放苏联国歌,无论要求什么歌曲,在之后编写的频道中”

这是我得到的控制台提要,当我键入“vadim播放某些内容”时

女贞只是聊天忽略on_menter异常本文回溯(最近调用最后):文件"C:\用户\maria\AppData\本地\程序\Python\Python39\lib\site-包\disord\client.py",第343行,在_run_eventawait coro(*args,**kwargs)文件"C:\用户\maria\Desktop\Coding\Projekte\Python\SovjetBot\Code\bot.py",第33行,在on_message声机制=channel. connect()属性错误:'NoneType'对象没有属性'连接'

这是我的代码:

import discord
from discord.utils import get
import time


class MyClient(discord.Client):

    #Triggered on login
    async def on_ready(self):
        print("Privet")
    #Triggered on messages
    async def on_message(self, message):
        if message.author == client.user:
            return

        if message.content.lower().startswith("vadim") and message.content.lower().endswith("blyat"):
            messagearray = message.content.split(" ")
            messagearray.pop()
            messagearray.remove("vadim")

            if messagearray[0].lower() == "play" and ((len(messagearray)) != 1 or messagearray.contains('&channel')):

                where = ""
                for i in range(messagearray.index("&channel") + 1, len(messagearray)):
                    where = where + ' ' + messagearray[i]
                    where = where[0:]
                    time.sleep(0.25)

                print(where)

                channel = get(message.guild.channels, name=where)
                time.sleep(0.25)
                voicechannel = channel.connect()
                time.sleep(0.25)
                voicechannel.play(discord.FFmpegPCMAudio('National Anthem of USSR.mp3'))








client = MyClient()
client.run(The bots client id)

共1个答案

匿名用户

改变

channel = get(message.guild.channels, name=where)

channel = await get(message.guild.channels, name=where)

有错误表示您在voic的渠道=channel. connect()行遇到了问题,因为渠道NoneType。您在上面一行用渠道=get(message.gueld.channel,name=where)定义了渠道。但是,根据留档,您使用的get()函数是一个协程,因此您需要await它。

创建channel后,您应该检查它不是,然后再尝试将其与voic在一起使用=channel. connect()