Написал бота Discord с Python. Не работает на Glitch - PullRequest
1 голос
/ 09 июля 2020

Я сделал Discord-бота с помощью discord.py. Он очень хорошо работает в моем терминале PyCharm, когда я загружаю его в глюк, большинство команд все еще работают, но когда я попытался создать текстовый канал в событии «on_message», у меня возникла ошибка, я могу создать канал, но остальной код не работает. Вот ошибка:

Ignoring exception in on_message

Traceback (most recent call last):

  File "/app/.local/lib/python3.7/site-packages/discord/client.py", line 312, in _run_event

    await coro(*args, **kwargs)

  File "HashCubeSupport.py", line 102, in on_message

    await guild.categories[2].create_text_channel(name=name, overwrites=overwrites)

  File "/app/.local/lib/python3.7/site-packages/discord/channel.py", line 842, in create_text_channel

    return await self.guild.create_text_channel(name, overwrites=overwrites, category=self, reason=reason, **options)

  File "/app/.local/lib/python3.7/site-packages/discord/guild.py", line 869, in create_text_channel

    channel = TextChannel(state=self._state, guild=self, data=data)

  File "/app/.local/lib/python3.7/site-packages/discord/channel.py", line 107, in __init__

    self._update(guild, data)

  File "/app/.local/lib/python3.7/site-packages/discord/channel.py", line 131, in _update

    self._fill_overwrites(data)

  File "/app/.local/lib/python3.7/site-packages/discord/abc.py", line 294, in _fill_overwrites

    self._overwrites.append(_Overwrites(id=overridden_id, **overridden))

TypeError: __new__() got an unexpected keyword argument 'allow_new'

А вот часть кода, вызывающая ошибку:


overwrites = {
            guild.default_role: discord.PermissionOverwrite(read_messages=False),
            guild.me: discord.PermissionOverwrite(read_messages=True),
            guild.roles[v]: discord.PermissionOverwrite(read_messages=True),
            message.author: discord.PermissionOverwrite(read_messages=True)
        }
name = f"test-{message.author.name}-{message.author.discriminator}"
await guild.categories[2].create_text_channel(name=name, overwrites=overwrites)
channel = guild.channels[-1].id
channel2 = client.get_channel(id=channel)
embed = discord.Embed()
embed.add_field(name="Test", value="test", inline=False)
await channel2.send(embed=embed)

Если требуется больше кода, я могу показать больше.

Ответы [ 2 ]

0 голосов
/ 15 июля 2020

Я решил проблему. Я просто удаляю старый проект по глюку и создаю новый. Я вставил те же файлы в новый проект. Странно, но это сработало.

0 голосов
/ 14 июля 2020

Просто обновите discord.py

Linux / macOS

python3 -m pip install -U discord.py

Windows

py -3 -m pip install -U discord.py

...