python - Discord.py 如何使命令发生一定次数
问题描述
所以我目前正在制作一个名为 tornado 的有趣命令,它可以让用户在一堆语音通道中移动。我想要做的是使命令>tornado @Blah#1234 5并让它们在返回到语音通道 0(初始语音通道)之前通过 6 个语音通道 5 次。到目前为止,我能够命令>tornado @Blah#1234并且它们通过 6 个语音通道移动一次,然后返回到其原始语音通道。任何帮助表示赞赏!
@bot.command(pass_context=True)
async def tornado(ctx, member: discord.Member):
voice1 = bot.get_channel(824745972768702525)
voice2 = bot.get_channel(729916324272144439)
voice3 = bot.get_channel(729927718296223839)
voice4 = bot.get_channel(775807325641375744)
voice5 = bot.get_channel(729958198957834290)
voice6 = bot.get_channel(729958233669632020)
voice0 = member.voice.channel
await member.move_to(voice1) ; sleep(0.1)
await member.move_to(voice2) ; sleep(0.1)
await member.move_to(voice3) ; sleep(0.1)
await member.move_to(voice4) ; sleep(0.1)
await member.move_to(voice5) ; sleep(0.1)
await member.move_to(voice6) ; sleep(0.1)
await member.move_to(voice0)
解决方案
你可以用一个非常简单的for
循环来做到这一点。这是一个例子:
@bot.command(pass_context=True)
async def tornado(ctx, member: discord.Member):
voice1 = bot.get_channel(824745972768702525)
voice2 = bot.get_channel(729916324272144439)
voice3 = bot.get_channel(729927718296223839)
voice4 = bot.get_channel(775807325641375744)
voice5 = bot.get_channel(729958198957834290)
voice6 = bot.get_channel(729958233669632020)
voice0 = member.voice.channel
for i in range(5):
await member.move_to(voice1) ; sleep(0.1)
await member.move_to(voice2) ; sleep(0.1)
await member.move_to(voice3) ; sleep(0.1)
await member.move_to(voice4) ; sleep(0.1)
await member.move_to(voice5) ; sleep(0.1)
await member.move_to(voice6) ; sleep(0.1)
await member.move_to(voice0)
但是有一个更简单的方法:
@bot.command(pass_context=True)
async def tornado(ctx, member: discord.Member):
voices = [
824745972768702525,
729916324272144439,
729927718296223839,
775807325641375744,
729958198957834290,
729958233669632020,
]
voice0 = member.voice.channel
for i in range(5):
for voice in voices:
await member.move_to(bot.get_channel(voice)
sleep(0.1)
await member.move_to(voice0)
我正在做的只是将成员移动通过voices
列表中的所有语音通道(第二个for
循环),5 次(第一个for
循环)。最后,让他回到原来的语音频道。
推荐阅读
- c++ - 我在 C++ 中构建 node.js 绑定应该 .gitignore *.gypi 文件
- angular - 构建具有多种环境和多种风格的 Angular 应用程序
- reactjs - tableau-react:嵌入的 Tableau 工作表不会在 url 更改时更新
- rest - 如何使用 Ansible Tower / AWX REST api 将组关联到主机?
- react-native - 有没有办法在 react-native-gifted-chat 中显示图像以及一些文本和按钮以及响应消息?
- javascript - 如何使用 Node 在 IBM 云函数中保存 API 用户身份验证令牌?
- wordpress - Wordpress,403错误无法通过常规方法解决
- javascript - 在 1 个单元格中合并为值(文本和日期时间格式为 yyyy-mm-dd hh:mm)
- google-apps-script - 使用 Google 脚本创建图表时,如何为 Google 表格图表设置图表 ID?
- angular - 如何仅在单个浏览器选项卡中与 Angular 中的组件共享数据?