discord - discord.py 中的子命令?
问题描述
我正在为不和谐服务器编写一个简单的机器人,我正在尝试探索一些不同的想法,其中两个需要某种响应和基于响应的子命令。我希望人们能够在不通过对机器人帖子做出反应的情况下进行投票。我不确定该怎么做。
我举一个例子。
理想情况下,它可以是这样的结构。
[启动轮询命令] [轮询名称]
然后响应,用户可以做这样的事情:
[投票名称] [是/否]
或者对于一个伪代码示例:
!start_poll Lets_do_this
!lets_do_this 是的
然后,如果它满足某个阈值是的,则将执行子命令。
解决方案
我的想法是创建一个字典。每当有人开始投票时,您都会在字典中添加两个键:“[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,因为这是他们唯一的,因为他们的名字可以更改。
推荐阅读
- android - 安卓。如何在TextView中的一段文本中设置事件点击
- laravel - 使用不可为空字段的默认值进行更新
- python - 使用 python 构建没有 SKlearn 的多类逻辑回归分类器
- android - 使用 getSupportActionBar() 的简单操作栏 - 添加主页 < 和设置图标
- javascript - Ng Bootstrap 轮播全屏
- javascript - 在我的表上出现数据重复问题
- selenium - Selenium 网格:org.openqa.selenium.WebDriverException:会话 [null] 不可用且不在最后 1000 个终止会话中
- applescript - Restore My"com.apple.iChat"file
- c - 将字符串从 main 复制到结构 c
- javascript - 视频自动播放不适用于 appendChild