【问题标题】:Discord Python bot creating a file of active member in a vocal channel [closed]Discord Python bot 在语音频道中创建活动成员文件 [关闭]
【发布时间】:2020-07-06 00:11:07
【问题描述】:

我尝试获取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)

感谢阅读。

【问题讨论】:

  • 欢迎来到 StackOverflow。仅通过阅读您的问题,我就很难理解您要做什么。 首先也是最好的事情是发布您尝试过的内容,这样更容易理解。 也贴出相关代码。 另外添加诸如 Python 版本、正在使用的操作系统和任何外部库之类的信息会很有用。

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


【解决方案1】:

下面是一个非常基本的示例,它将创建一个文本文件,其中包含在调用命令时处于特定语音通道中的每个人。请注意,您必须使用要检查的语音通道的 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')

【讨论】:

  • 谢谢,它工作正常(其他需要获取频道 ID:设置 > 外观 > 检查开发者模式 --- 然后返回 Discord --- 右键单击​​频道名称 > 复制 ID)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
  • 2021-01-05
  • 2022-01-26
  • 2020-11-04
  • 2018-12-03
  • 2020-11-29
相关资源
最近更新 更多