首页 > 解决方案 > 在编写不和谐机器人时如何以及是否可以拆分字符串?

问题描述

因此,我是 discord.py 的新手,但我已经学习了 python,所以我可以很容易地跟着教程学习。我正在尝试创建一个非常简单的机器人来尝试掌握语言的窍门,如果我输入 !give(anything) 机器人会回复“(anything) was given”。

有人可以帮我弄这个吗?discord.py 还有什么好的介绍性资源吗?

@client.event
async def on_message(message):
    if message.content.find("!give") != -1:
       await message.channel.send_message("A" + message[5:] + ' was given')

这是我的第一个 ^^ 基于的代码:

@client.event
async def on_message(message):
    if message.content.find("!givehug") != -1:
        await message.channel.send("**A hug was given**")
    elif message.content.find("!givekiss") != -1:
        await message.channel.send("**A kiss was given**")

标签: pythonbotsdiscorddiscord.pydiscord.py-rewrite

解决方案


请记住,使用 find 函数并不总是一个好主意(例如,如果您创建一个帮助命令,其中包含所有命令的列表,您将得到一个误报)。也许您可以检查第一个字符是否是您的前缀,然后替换您找到的命令:

def give(message):
    str = message.content.split(" ")[0].replace("give", "")
    message.channel.send("**A "+str+" was given**")

// ...
// ... your code ...
// ...

prefix = "!"
if (message.content[0] == prefix):
    command = message.content.split(" ")[0]

    if(command == prefix + "give"):
            // code block
            give(message)
           
    elif(command == prefix + "another-command"):
            // code block
            pass

分离代码是一种很好的做法,因此如果您可以使用更多功能。


推荐阅读