Discord.py 添加新代码后机器人功能不起作用

Discord.py bot functionality does not work after adding new codes

https://github.com/legacyks/KsBot

在我将#registration 和#registration info 部分添加到我的代码后,播放音乐的部分停止工作。当我删除#registration 和#registration info 部分时,我的音乐效果非常好。我不知道 music.py 的作用,我是从 youtube

上的视频中了解到的

相关代码块:

#Bot Initiations
KsBot = Bot(command_prefix ='//')
startup_extensions = ["Music"]

#Display Bot Info and Discord Version
@KsBot.event
async def on_ready():
    print('Discord Version : ' + discord.__version__)
    print('Bot User Name : ' + KsBot.user.name)
    print('Bot ID : ' + KsBot.user.id)
    print('----------------------')
    print("Number of registered user in this server: " + str(numberOfMembers))

#Registration Info
registeredMembersFile = open("RegisteredMembers.txt")
registeredMembers = registeredMembersFile.read()
registeredMembers = ast.literal_eval(registeredMembers)
numberOfMembers = len(registeredMembers)
registeredMembersFile.close()

#Registration
@KsBot.event
async def on_message(message):
    if message.content.startswith("//register"):
        sender = message.author.id
        print("Registering ID " + sender + " ...")
        if sender in registeredMembers:
            await KsBot.send_message(message.author,"Registration Fail:Already a memmber")
            print("Registration Failed: Already a member")
        elif sender not in registeredMembers:
            print("User " + sender + " is not registered")
            registeredMembers[sender] = 1000
            registeredMembersFile = open("RegisteredMembers.txt",'w')
            registeredMembersFile.write(pprint.pformat(registeredMembers))
            registeredMembersFile.close()
            await KsBot.send_message(message.author,"Registration OK!")
            print("Registeration Successful")

#YetiGuy Music Bot
class Main_Commands():
        def __init__(self,bot):
            self.bot = bot

if __name__ == "__main__":
    for extension in startup_extensions:
        try:
            KsBot.load_extension(extension)
        except Exception as e:
            exc = '{}: {}'.format(type(e).__name__,e)
            print("Failed to load extension {}\n{}".format(extension,exc))

对python和discord.py还比较陌生,请帮忙:(

注意:不要担心令牌和客户端机密,我已经更改了

以防万一有人有类似的问题,我将在这里重写答案

回答:问题是您同时使用了commands 方式和on_message 方式来创建命令。要解决此问题,您可以将 on_message 命令替换为 commands 命令,或者在 on_message

中的 if 语句后添加 await bot.process_commands(message)