简体   繁体   中英

(discord.py) İ want to make a roll call bot for a discord server

I want to make a discord bot. Here is what i want: When i say '.yoklama 11.10.2020.txt'(or something) bot sends me a list of participants of which voice channel i am in.[not 1 channel(which i am in)] But i dont know how can i do. Then i was some research and i find similar things about my request. But they did not work properly: Here is my found codes:

import discord
from discord.ext.commands import Bot
from discord.ext import commands

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

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

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


client.run('mytoken')

This codes are working(when i run they dont give me error) but when i say.attendence test:txt bot does not say anything and my python shell say to me:

Ignoring exception in command attendance:
Traceback (most recent call last):
  File "C:\Users\Yunus Emre KISA\AppData\Local\Programs\Python\Python38-32\lib\site- 
packages\discord\ext\commands\core.py", line 85, in wrapped
    ret = await coro(args, **kwargs)
  File "C:\bot2\bot2.py", line 10, in attendance
    for member in channel.members:
AttributeError: 'NoneType' object has no attribute 'members'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\Yunus Emre KISA\AppData\Local\Programs\Python\Python38-32\lib\site- 
packages\discord\ext\commands\bot.py", line 903, in invoke
    await ctx.command.invoke(ctx)
  File "C:\Users\Yunus Emre KISA\AppData\Local\Programs\Python\Python38-32\lib\site- 
packages\discord\ext\commands\core.py", line 859, in invoke
    await injected(ctx.args, **ctx.kwargs)
  File "C:\Users\Yunus Emre KISA\AppData\Local\Programs\Python\Python38-32\lib\site- 
packages\discord\ext\commands\core.py", line 94, in wrapped
    raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 
'NoneType' object has no attribute 'members

You see guys i dont understand anything please help me. I found these question but it does not work for me: Discord Python bot creating a file of active member in a vocal channel

@client.command()
async def test(ctx):
    guild = ctx.guild
    channel = discord.utils.get(guild.voice_channels, name='General')

    for member in channel.members:
        print('test')

What I would do instead of having to pass in the file in the command, is just in the function writing:

with open("file.txt", "w") as f:

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM