首页 > 解决方案 > discord.py 中的子命令?

问题描述

我正在为不和谐服务器编写一个简单的机器人,我正在尝试探索一些不同的想法,其中两个需要某种响应和基于响应的子命令。我希望人们能够在不通过对机器人帖子做出反应的情况下进行投票。我不确定该怎么做。

我举一个例子。

理想情况下,它可以是这样的结构。

[启动轮询命令] [轮询名称]

然后响应,用户可以做这样的事情:

[投票名称] [是/否]

或者对于一个伪代码示例:

!start_poll Lets_do_this

!lets_do_this 是的

然后,如果它满足某个阈值是的,则将执行子命令。

标签: discorddiscord.py

解决方案


我的想法是创建一个字典。每当有人开始投票时,您都会在字典中添加两个键:“[name]_yes”和“[name]_no”。每个键都有一个空列表。然后我会使用诸如“!vote [poll] [yes/no]”之类的命令来简化编码,每当有人投票时,我都会将他们的不和谐 ID 添加到相应的列表中。但是,最好检查他们的名字是否已经在列表中。然后,如果您愿意,您可以计算每个列表的大小,看看有多少人为每个列表投票。字典最终看起来像:

{
    'lets_do_this_yes': ['Bob', 'Suzy'],
    'lets_do_this_no': ['Dan'],
    'lets_do_this_instead_yes': ['Dan','Joe'],
    'lets_do_this_instead_no': ['Suzy']
}

注意:我没有使用过 discord.py,但我有使用 Python 和 Discord.JS 的经验

希望这对你有用。

编辑:上面的结果示例实际上并没有他们的 Discord 名称,而是他们的 Discord ID,因为这是他们唯一的,因为他们的名字可以更改。


推荐阅读