在python

时间:2018-11-07 20:13:28

标签: python variables discord discord.py

因此,我正在制作一个discord机器人,为此,我正在使用discord.py。我想使用move_member函数将许多人从一个渠道转移到另一个渠道,但是它一次只允许您转移一个成员,因此,在某些人的帮助下,我制作了以下系统将成员拆分为单个成员变量。

@client.event
async def on_message(message):
   server = message.server
   cnt = message.content
   canalote = server.get_channel(message.author.voice.voice_channel.id)
   print(str(canalote) + " this is the channel id")
   members = canalote.voice_members
   canal_def = client.get_channel("destination channel id")

   member_ids = []

   for member in members:
       member_ids.append(member.id)

   for idx, val in enumerate(member_ids, 1):
       globals()["id" + str(idx)] = val

   if message.author == client:
       return()

   elif "move" in cnt:
       for int in range(idx):
            await client.move_member(server.get_member(val), canal_def) 


   else:
       return("nothing for me to do")

我的问题是,我真的不知道如何在通道中为每个用户运行一次move_member命令,同时还更改其移动用户的ID。该机器人会抓取频道中的所有用户ID并将其放入列表中,然后使用字典将其分为名为id1,id2,id3 ...

的变量。

我尝试使用“ random.choice”,但如果我不知道哪些变量存在,哪些不存在,则无法这样做。

我应该怎么做?

任何反馈将不胜感激,因为我是编程的新手。

1 个答案:

答案 0 :(得分:0)

创建members列表的副本,然后遍历该列表,对每个元素调用move_member

@client.event
async def on_message(message):

   members = list(message.author.voice.voice_channel.voice_members) # create a copy of the list
   canal_def = client.get_channel("destination channel id")

   if message.author == client:
       return()
   elif "move" in message.content:
       for member in members:
            await client.move_member(member, canal_def)