Как мне создать текстовый канал, когда бот заходит на сервер и когда он обнаруживает, что ранее не существовало сервера с именем канала

#discord.py

#discord.py

Вопрос:

Я создаю частного бота dm. Я пытаюсь заставить бота создать текстовый канал, когда бот присоединяется к серверу с именем «private-dm» со свойствами «@everyone: read past messages = False», чтобы он был приватным, и когда бот не видит, он уже видит имена каналов private-dm на случай, если бот отключится. Я не смог найти ни одного события on_bot_join в документах, и я также не смог найти ничего, чтобы создать текстовый канал, когда он не обнаружил ни одного с заданным именем.

Ответ №1:

on_bot_join известен как on_guild_join .

Для второй проблемы вы можете просто перебрать все существующие каналы с помощью Guild.text_channels и проверить, имеет ли какой-либо из них это имя. Если нет, создайте его.

Комментарии:

1. Можете ли вы дать мне код для второй части, которую я не смог понять, а также как мне изменить свойства, чтобы никто другой не мог прочитать прошлые сообщения?

2. Не могли бы вы, по крайней мере, попытаться сначала попробовать это самостоятельно и опубликовать код, который вы пробовали, и сказать, где у вас были проблемы? Что касается этих разрешений (не свойств), в документах даже есть пример для этого: discordpy.readthedocs.io/en/latest /…

3. Извините, я искал «прочитать прошлые сообщения», а не прочитанные сообщения. Другая часть, которую я пробовал, но я не мог понять, в какое событие ее поместить. Я попытался включить его в ready, но проверка не сработала.

4. Документы — это просто пример… Если вам нужно другое разрешение, измените его на желаемое, которое в вашем случае является read_message_history

5. хорошо, я получил эту часть работы. Тогда как мне выполнить 2-ю часть. Я не мог понять, как перебирать ранее существовавшие каналы.