Discord Python机器人在人声通道中创建活动成员的文件

时间:2020-03-25 12:36:12

标签: python-3.x bots discord.py discord.py-rewrite

我尝试获得一个Python bot,该文件创建一个填充有声乐渠道中活跃人员姓名的文件(监禁期间的课堂参与清单)。 我正在Datacamp网站上学习Python两个月(我建议这样做-老师可以免费使用...)。 我尝试了很多来自多个源的代码行,甚至尝试编写我的代码,但我无法理解我得到的所有错误... 我也尝试过discord.py文档,但对我来说就像中文/ Python:-)... 这是为介绍而来的(基本上是说不要期望我做任何事情,或者不要期望我了解任何事情……除了我有一个正在运行的机器人,他可以做所有奇特的事情,例如回答“你好”, “ ping” /“ pong”,准备好...)。

此线程看起来完全符合我的需要,但由于重写而无法使其正常工作。 (discord.py) Getting a list of all of the members in a specific voice channel

我正在PC上使用Pycharm。

使用Python 3.8 Discord.py 1.3.2

起点是(仅给出用户数):

@client.event
async def on_message(message):
    if message.content.startswith('!member'):
        for member in message.channel
                print(member)

感谢阅读。

1 个答案:

答案 0 :(得分:0)

下面是一个非常基本的示例,该示例将创建一个文本文件,其中包含在调用命令时位于特定语音通道中的所有人。请注意,您必须使用要检查的语音通道的ID更新client.get_channel

您可以通过在漫游器有权访问的文本通道中输入!attendance test.txt来使用它。这将创建一个名为test.txt的文件,其中将包含语音通道中当前每个人的姓名。

from discord.ext import commands

client = commands.Bot(command_prefix='!')


@client.command()
async def attendance(ctx, filename):
    channel = client.get_channel(123456789) # Replace with voice channel ID

    with open(filename, 'w') as file:
        for member in channel.members:
            file.write(member.name + '\n')


client.run('token')