【问题标题】:Discord.py bot functionality does not work after adding new codes [duplicate]添加新代码后,Discord.py 机器人功能不起作用[重复]
【发布时间】:2018-10-07 13:53:17
【问题描述】:

https://github.com/legacyks/KsBot

在我将#registration 和#registration info 部分添加到我的代码后,播放我的音乐的部分停止工作。当我删除#registration 和#registration 信息部分时,我的音乐效果很好。我不知道 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 还比较新,请发送帮助:(

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

【问题讨论】:

  • 也许您使用的变量与 music.py 中的变量相同,请尝试检查
  • @DevOps 是的,我已经检查过了,似乎没有任何相同的变量
  • 你在哪里添加注册和注册信息?
  • @DevOps KsBot.py 第 29 行
  • @LegacyKS 问题是您同时使用commands 方式和on_message 创建命令的方式。要解决这个问题,您可以用commands 命令替换您的on_message 命令,或者在on_message 中的命令if 语句之后添加await bot.process_commands(message)(PS 抱歉在评论中回答,我无法说出来在实际答案中,因为您的问题被标记为离题)

标签: python bots global discord discord.py


【解决方案1】:

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

回答:问题是你同时使用commands方式和on_message方式创建命令。要解决此问题,您可以将 on_message 命令替换为 commands 命令,或者在 on_message 中的命令 if 语句后添加 await bot.process_commands(message)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-20
    • 2015-03-19
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多