mccoderpy / discord.py-message-components

A "fork" of discord.py library made by Rapptz with implementation of the Discord Message-Components & many other features by mccoderpy
MIT License
52 stars 12 forks source link

[Bug]: Fails to Create Forum Channel #74

Open malikmajai opened 7 months ago

malikmajai commented 7 months ago

Description

I am not able to create a forum channel. Here is my code:

GUILD_ID = 0
CATEGORY_ID = 0
guild: discord.Guild = bot.get_guild(GUILD_ID)
category: discord.CategoryChannel = bot.get_channel(CATEGORY_ID)
await guild.create_forum_channel(name='Test', category=category)

Branch used

developer

The Python version you are using.

Python 3.10

What version (and release) of the library are you using

2.0a643+g33f5246

System info

Windows 11

Full Traceback (Error)

Traceback (most recent call last):
  File "C:\Users\hp\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\client.py", line 454, in _run_event
    await coro(*args, **kwargs)
  File "d:\Bots\illegalshirts\main.py", line 27, in on_ready
    await guild.create_forum_channel(name='Test', category=category)
  File "C:\Users\hp\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\guild.py", line 1632, in create_forum_channel
    data = await self._create_channel(
  File "C:\Users\hp\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\guild.py", line 1359, in _create_channel 
    raise InvalidArgument(
discord.errors.InvalidArgument: None is not a valid default_auto_archive_duration

Contact info

No response

mccoderpy commented 7 months ago

Just to ask, why are you using bot.get_channel if you got the guild? Just use guild.get_channel (it's much faster)🙈

malikmajai commented 7 months ago

Oh

malikmajai commented 7 months ago

Didn't knew guild.get_channel is faster than bot.get_channel

mccoderpy commented 7 months ago

Didn't knew guild.get_channel is faster than bot.get_channel

Of course it is bot.get_channel -> https://github.com/mccoderpy/discord.py-message-components/blob/33f5246005e056a1e44310ce69ec564a03e9368d/discord/state.py#L1501-L1515

The-LukeZ commented 6 months ago

Btw. you just need to provide an default_auto_archive_duration (which should be 7 or 3 days). Then it works.

malikmajai commented 6 months ago
guild: discord.Guild = bot.get_guild(GUILD_ID)
category: discord.CategoryChannel = bot.get_channel(CATEGORY_ID)
await guild.create_forum_channel(name='Test', category=category)

By default it is None, it should work with default value also

image
mccoderpy commented 6 months ago
guild: discord.Guild = bot.get_guild(GUILD_ID)
category: discord.CategoryChannel = bot.get_channel(CATEGORY_ID)
await guild.create_forum_channel(name='Test', category=category)

By default it is None, it should work with default value also

image

Yea the check is wrong. It should just drop the field if it is None, as every field except name is nullable for the guild channel endpoint.

malikmajai commented 4 months ago

Hi bro, do we have a new server for this library?

mccoderpy commented 4 months ago

Hi bro, do we have a new server for this library?

In theory yes...