Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
234 views
in Technique[技术] by (71.8m points)

python - How to create channel on_ready discord.py?

I was trying to create come channels when bot starts. I want them to create in function on_ready. But await guild.create_text_channel("Channel") requires guild by itself. Usually when I want to create it by command I make something like this:

@client.command()
async def create(ctx):
    guild = ctx.guild
    await guild.create_text_channel(name="test channel")```

But I need ctx to create guild. So the question is: How do I create a channel without ctx? 
question from:https://stackoverflow.com/questions/65672123/how-to-create-channel-on-ready-discord-py

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You simply need to get a discord.Guild instance, you can get that using Bot.get_guild

async def on_ready():
    await client.wait_until_ready()

    guild = client.get_guild(id_here)
    await guild.create_text_channel(name="whatever")

If you want to create a channel in all the guilds the bot is in you can loop through client.guilds

async def on_ready():
    await client.wait_until_ready()

    for guild in client.guilds:
        await guild.create_text_channel(name="whatever")

Reference:


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...