Как написать приватные комнаты на кнопках Discord py?
Сделать вот такую меню с эмбедом
Чтобы создать комнату надо присоединится к каналу 

После нажатия на кнопку делать запрос например редактирования названия комнаты
Сделать авто удаление ответа пользователя после того как бот его обработал
- Вопрос задан 11 мар.
- 307 просмотров
2 комментария
Средний 2 комментария

Модератор @TosterModerator
Не надо ставить как можно больше тэгов. Лучше оставить один, но конкретный, с которым проблема.
См.п.3.1 Регламента.

Модератор @TosterModerator
На вопрос «как сделать» отвечает документация и поиск в интернет.
Тут отвечают на вопросы «почему я сделал, как в документации, а оно не работает. Поискал в интернет, вот запросы, в ответах не нашел. Что я делаю не так?»
Покажите, как вы пробовали решить проблему, приведите код попытки (пусть неудачной), опишите, как запускали, что ожидали и что получилось.
За готовыми решениями — на фриланс. В текущем виде это не вопрос, а задание. Нарушен п.5.12 Регламента.
Решения вопроса 0
Ответы на вопрос 1

Тесты, тесты?
Для создания приватных комнат на кнопках Discord.py, вам нужно использовать модуль discord.ui
import discord from discord.ext import commands from discord.ui import View, button class PrivateRoomView(View): def __init__(self): super().__init__() self.add_item(button(label="Создать комнату", custom_id="create_room")) self.add_item(button(label="Присоединиться к комнате", custom_id="join_room")) @button(custom_id="create_room") async def create_room(self, button: discord.ui.Button, interaction: discord.Interaction): # Здесь вы можете добавить логику для создания комнаты await interaction.response.send_message("Комната создана!") @button(custom_id="join_room") async def join_room(self, button: discord.ui.Button, interaction: discord.Interaction): # Здесь вы можете добавить логику для присоединения к комнате await interaction.response.send_message("Вы присоединились к комнате!")
Вы можете использовать этот класс PrivateRoomView в своем боте Discord.py, чтобы создать меню с кнопками для создания и присоединения к приватным комнатам.
Чтобы добавить логику для редактирования названия комнаты, вы можете добавить еще одну кнопку в PrivateRoomView и обработчик для нее, который будет выполнять запрос на редактирование названия комнаты.
Создание приватных комнат discord, почти как на 89sqd

.
Далее создаём папку с проектом и открываем её в среде разработки, например VScode.
Далее в консоли переходим в директорию этой папки, и прописываем эту команду.
(там всё можно пропустить)
В папке должен появится данный файлик, содержащий базовые настройки проекта.
Далее мы должны установить необходимые библиотеки, прописав данную команду в консоль.
npm i discord.js
У вас должна появится вот такая папочка.
Теперь дело за малым, создаём файлик index.js, в него пихаем этот код:
JavaScript:
const discord = require("discord.js"),createPrivateRoom = require("./events/createPrivateRoom.js"); var client = new discord.Client(); client.on("ready",()=>< console.log(`Бот запущен.`); >) client.on("voiceStateUpdate",(oldMember,newMember)=>< createPrivateRoom(oldMember,newMember) >) client.login("Суды токен бота");
Отлично, создаём в директории с этим файлом папку events, в которой создаём файл createPrivateRoom.js
Пожалуйста, авторизуйтесь для просмотра ссылки.
В данный файл мы закидываем этот код:
JavaScript:
var servers = <>; module.exports = function(oM,nM)< if(nM.voiceChannel)< //если комнаты для создания приваток не существует if(!nM.voiceChannel.guild.channels.find(channel=>channel.name == "создать приват"))< nM.voiceChannel.guild.createChannel("создать приват",]>,).then(()=>< nM.voiceChannel.guild.channels.find(channel=>channel.name == "создать приват").setUserLimit(1,"Канал для создания приватных комнат") >) > //создаём приватку если пользователь зайдёт в канал if(nM.voiceChannel.name == "создать приват")< nM.voiceChannel.guild.createChannel("Приват",]>).then((room)=>< nM.setVoiceChannel(room.id); nM.voiceChannel.guild.channels.find(channel=>channel.id==room.id).overwritePermissions(nM, < KICK_MEMBERS:true, MANAGE_CHANNELS:true >); if(!servers[nM.guild.id])servers[nM.guild.id] = <>; if(!servers[nM.guild.id].voiceMember)servers[nM.guild.id].voiceMember = <>; if(!servers[nM.guild.id].voiceMember[nM.id])servers[nM.guild.id].voiceMember[nM.id] = <>; if(!servers[nM.guild.id].voiceMember[nM.id].room)servers[nM.guild.id].voiceMember[nM.id].room = room.id; servers[nM.guild.id].voiceMember[nM.id].room = room.id; if(!servers[nM.guild.id].voiceMember[nM.id].interval)servers[nM.guild.id].voiceMember[nM.id].interval = <>; servers[nM.guild.id].voiceMember[nM.id].interval = setInterval(()=>< if(nM.voiceChannel)< if(servers[nM.guild.id].voiceMember[nM.id].room != nM.voiceChannel.id)< nM.voiceChannel.guild.channels.find(channel=>channel.id == servers[nM.guild.id].voiceMember[nM.id].room).delete(); clearInterval(servers[nM.guild.id].voiceMember[nM.id].interval); > >else if(!nM.voiceChannel)< //oM.voiceChannel.guild.channels.find(channel=>channel.id == servers[nM.guild.id].voiceMember[nM.id].room).delete(); clearInterval(servers[nM.guild.id].voiceMember[nM.id].interval); > >,3000) >) > > //При выходе из канала, удаление приват комнаты if(!nM.voiceChannel)< if(!servers[nM.guild.id])servers[nM.guild.id] = <>; if(!servers[nM.guild.id].voiceMember)servers[nM.guild.id].voiceMember = <>; if(!servers[nM.guild.id].voiceMember[nM.id])servers[nM.guild.id].voiceMember[nM.id] = <>; if(!servers[nM.guild.id].voiceMember[nM.id].room)servers[nM.guild.id].voiceMember[nM.id].room = 0; if(!oM.voiceChannel) return; if(servers[nM.guild.id].voiceMember[nM.id].room == oM.voiceChannel.id)< oM.voiceChannel.guild.channels.find(channel=>channel.id == servers[nM.guild.id].voiceMember[nM.id].room).delete(); > > >
Теперь у вас есть приватные румы.
Есть некоторые проблемы связанные с этим кодом, во-первых, можно сделать лучше, во-вторых из-за частых созданий приваток, бот перестаёт создавать новые комнаты какое-то время, из-за ограничений дискорда. Можно сделать комнаты, которые скрыты пока пользователь не зайдёт, но возможно это я сделаю позже.
Всо!
Эксперт
Статус Оффлайн Регистрация 31 Авг 2018 Сообщения 1,786 Реакции [?] 1,061 Поинты [?] 12K
Опа, а что это тут у нас?
Гайд почти на 100% состоит из исходника и немного объяснений(т.к. в основном никому не интересно читать и понимать).
Чтобы это всё работало вам нужен Node.js
Пожалуйста, авторизуйтесь для просмотра ссылки.
.
Далее создаём папку с проектом и открываем её в среде разработки, например VScode.
Далее в консоли переходим в директорию этой папки, и прописываем эту команду.
Посмотреть вложение 30076(там всё можно пропустить)
В папке должен появится данный файлик, содержащий базовые настройки проекта.
Посмотреть вложение 30077
Далее мы должны установить необходимые библиотеки, прописав данную команду в консоль.
npm i discord.js
У вас должна появится вот такая папочка.
Посмотреть вложение 30078
Теперь дело за малым, создаём файлик index.js, в него пихаем этот код:
JavaScript:
const discord = require("discord.js"),createPrivateRoom = require("./events/createPrivateRoom.js"); var client = new discord.Client(); client.on("ready",()=>< console.log(`Бот запущен.`); >) client.on("voiceStateUpdate",(oldMember,newMember)=>< createPrivateRoom(oldMember,newMember) >) client.login("Суды токен бота");
Отлично, создаём в директории с этим файлом папку events, в которой создаём файл createPrivateRoom.js
Пожалуйста, авторизуйтесь для просмотра ссылки.
В данный файл мы закидываем этот код:
JavaScript:
var servers = <>; module.exports = function(oM,nM)< if(nM.voiceChannel)< //если комнаты для создания приваток не существует if(!nM.voiceChannel.guild.channels.find(channel=>channel.name == "создать приват"))< nM.voiceChannel.guild.createChannel("создать приват",]>,).then(()=>< nM.voiceChannel.guild.channels.find(channel=>channel.name == "создать приват").setUserLimit(1,"Канал для создания приватных комнат") >) > //создаём приватку если пользователь зайдёт в канал if(nM.voiceChannel.name == "создать приват")< nM.voiceChannel.guild.createChannel("Приват",]>).then((room)=>< nM.setVoiceChannel(room.id); nM.voiceChannel.guild.channels.find(channel=>channel.id==room.id).overwritePermissions(nM, < KICK_MEMBERS:true, MANAGE_CHANNELS:true >); if(!servers[nM.guild.id])servers[nM.guild.id] = <>; if(!servers[nM.guild.id].voiceMember)servers[nM.guild.id].voiceMember = <>; if(!servers[nM.guild.id].voiceMember[nM.id])servers[nM.guild.id].voiceMember[nM.id] = <>; if(!servers[nM.guild.id].voiceMember[nM.id].room)servers[nM.guild.id].voiceMember[nM.id].room = room.id; servers[nM.guild.id].voiceMember[nM.id].room = room.id; if(!servers[nM.guild.id].voiceMember[nM.id].interval)servers[nM.guild.id].voiceMember[nM.id].interval = <>; servers[nM.guild.id].voiceMember[nM.id].interval = setInterval(()=>< if(nM.voiceChannel)< if(servers[nM.guild.id].voiceMember[nM.id].room != nM.voiceChannel.id)< nM.voiceChannel.guild.channels.find(channel=>channel.id == servers[nM.guild.id].voiceMember[nM.id].room).delete(); clearInterval(servers[nM.guild.id].voiceMember[nM.id].interval); > >else if(!nM.voiceChannel)< //oM.voiceChannel.guild.channels.find(channel=>channel.id == servers[nM.guild.id].voiceMember[nM.id].room).delete(); clearInterval(servers[nM.guild.id].voiceMember[nM.id].interval); > >,3000) >) > > //При выходе из канала, удаление приват комнаты if(!nM.voiceChannel)< if(!servers[nM.guild.id])servers[nM.guild.id] = <>; if(!servers[nM.guild.id].voiceMember)servers[nM.guild.id].voiceMember = <>; if(!servers[nM.guild.id].voiceMember[nM.id])servers[nM.guild.id].voiceMember[nM.id] = <>; if(!servers[nM.guild.id].voiceMember[nM.id].room)servers[nM.guild.id].voiceMember[nM.id].room = 0; if(!oM.voiceChannel) return; if(servers[nM.guild.id].voiceMember[nM.id].room == oM.voiceChannel.id)< oM.voiceChannel.guild.channels.find(channel=>channel.id == servers[nM.guild.id].voiceMember[nM.id].room).delete(); > > >
Теперь у вас есть приватные румы.
Есть некоторые проблемы связанные с этим кодом, во-первых, можно сделать лучше, во-вторых из-за частых созданий приваток, бот перестаёт создавать новые комнаты какое-то время, из-за ограничений дискорда. Можно сделать комнаты, которые скрыты пока пользователь не зайдёт, но возможно это я сделаю позже.
Всо!
Чтобы обойти ограничения дискорда можно скрывать/показывать комнаты
Создание, вход и выход из комнаты в Discord
Дискорд – мессенджер, который помогает искать собеседников по группам, которые разбросаны по интересам. Приложение разработано, и вошло в эксплуатацию пользователей в 2015 году, но регулярно развивается, и в настоящее время сервис использует более 11 миллионов клиентов. Как правило, мессенджер привлекает геймеров, которые создают каналы в зависимости от интересов, и могут связываться при помощи аудиозвонков или видеоконференций. Функционал программы содержит большое число опций и инструментов, которые помогают оптимизировать работу.

В мессенджере Дискорд каналы разделены на две основополагающие категории, среди которых можно выделить голосовые и текстовые варианты. В голосовых каналах пользователи могут производить общение при помощи микрофона, а в текстовых вариантах клиенты могут набирать сообщения, и получать от посторонних пользователей. При этом, пользователи придумали названия подобным каналам, и зовут комнатами. При помощи подобного варианта разделения пользователи могут делиться в зависимости от требований и условий. При работе в мессенджере Дискорд следует знать, как создавать, и настраивать комнаты.
Как создать комнату в Дискорде?
Пользователи могут создавать комнаты в приложении Дискорд, чтобы использовать в зависимости от предпочтений и условий. Для того, чтобы создать комнату в мессенджере, следует проделать стандартную операцию:
- Вначале следует войти в мессенджер Дискорд. В программе следует выбрать необходимый вариант канала, и напротив комнаты следует выбрать команду со значком, который представлен в виде плюсика.
- Затем следует указать оригинальное название, по которому было бы просто искать комнату в мессенджере.
- Затем следует нажать на кнопку синего цвета, чтобы подтвердить процедуру создания канала.
- После окончания операции по созданию канала, пользователи могут добавлять необходимых участников.
- Настройки и параметры.
- Пользователи могут устанавливать настройки на каналы в зависимости от условий, и назначении.

В мессенджере Дискорд пользователи не могут устанавливать пароль на канал, поскольку подобная опция не заложена на платформе. Пользователи могут указать необходимые настройки приватности, чтобы обезопасить комнату. После того, как настройки приватности будут установлены, в комнату не смогут войти посторонние пользователи. Для того, чтобы установить настройки приватности к каналу, следует:
- Войти в программу, и выбрать необходимый канал.
- Возле значка канала следует выбрать настройки при помощи нажатия кнопки в виде значка шестеренки.
- После перехода в настройки, следует выбрать раздел из предложенного списка в меню «Права доступа».
- Затем следует отключить все пункты в разделе, и после этого можно нажимать на значки в виде плюсиков.
- Плюс следует установить напротив участников, которые смогут иметь доступ в комнату.
Бот для создания комнаты в Дискорде?
Пользователи могут использовать доступные боты, которые рассчитаны на облегчение работы в мессенджере Дискорд. Боты могут выполнять конкретные роли. При этом, пользователи могут использовать боты, чтобы создавать каналы на платформе. Боты способны взять часть ролей, чтобы пользователь получал удовольствие от работы без лишних операций. При этом, большое число ботов помогает выбирать необходимый вариант в зависимости от назначения и условий в сервисе.

MEE6 – бот, который используют пользователи для создания комнаты в мессенджере Дискорд. Помимо расширенного функционала, бот поддерживается, что разрешает регулярно развиваться. Пользователи могут пользоваться стандартным вариантом опций и инструментов, или приобрести преимиум пакет, чтобы увеличить доступный функционал. Бот отличается тем, что пользователи могут проводить настройки в зависимости от предпочтений и условий. Если пользователи регулярно работают с ботом, что уровень возрастает, и при этом, пользователь может применять дополнительный пакет опций и инструментов. Для того, чтобы начать работу с ботом, следует пригласить на сервер.
RED – бот, который обладает уникальной способностью по настройками, и поэтому пользователи выбирают вариант, чтобы управлять настройками в зависимости от необходимости. Бот работает индивидуально в зависимости от конкретно выбранного сервера, и подбирает необходимый пакет опций и услуг. Пользователи могут расширять функционал бота, скачивая плагина.
Dyno используется 1,6 миллионов серверов. Преимущество бота заключается в том, что веб-панель обладает информативностью, которая разрешает контролировать процесс настроек. Пользователи могут выбрать варианты опций и инструментов для управления настройками.

Как найти и войти в комнату в Discord?
Пользователи могут искать комнаты, которые созданы посторонними участниками программы. При этом, пользователи могут искать каналы на платформе. Облегчит процесс, если пользователь знает ID сервера. Для того, чтобы узнать номер конкретно выбранного пользователя, посторонний пользователь должен отправить при помощи приложения Дискорд, или посторонних программ. Если пользователь обладает правами администратора, то можно получить информацию, при этом, использовать вариант:
- Войти в мессенджер Дискорд.
- В приложении необходимо войти в настройки. Настройки можно найти в нижней части экрана, которые выглядят как значок с шестеренкой.
В настройках приложения следует выбрать раздел под названием «Виджет». Программа выдаст окошко, в котором будет указан номер, при помощи которого можно будет идентифицировать комнату.
Следует отметить, что в подобном окне пользователи могут управлять настройками, и указывать дополнительные элементы, например, отправлять приглашения, или создавать публикации на веб-странице API.
Как выйти из комнаты?
Пользователи могут выйти из комнаты, если пропала необходимости. При этом, нет необходимости согалашть действие с посторонними участниками канала. Для того, чтобы выйти из комнаты, следует:
- Вначале необходимо войти в мессенджер Дискорд.
- Затем зайти в конкретно выбранный канал.
- При переходе в комнату, можно увидеть меню в левой области экрана.
- В меню следует просмотреть опции, и выбрать вариант с отключением. Раздел меню «Отключить» будет выглядеть, как трубка телефона с крестиком.
Пользователи не смогут войти в канал после выхода. Единственный вариант вернуться в комнату, если создатель канала пришлет приглашение, или разрешит войти.
Создание вход и выход из комнаты в Discord
![]()

Всем привет! Сегодня поговорим про то как создавать, входить и выходить из комнаты в стремительно набирающей популярность программе для общения Discord за пару минут. Итак, поехали!
В мессенджере Дискорд каналы разбиты на 2 основные категории, между коих возможно отметить голосовые и текстовые варианты.
В голосовых каналах юзеры имеют все шансы изготовлять общение при поддержке микрофона, а в текстовых вариантах покупатели имеют все шансы набирать сообщения, и получать от сторонних юзеров.
При данном, юзеры выдумали наименования аналогичным каналам, и приглашают комнатами.
При поддержке аналогичного варианта деления юзеры имеют все шансы распределяться в зависимости от притязаний и критериев. При работе в мессенджере Дискорд нужно иметь ввиду, как делать, и настраивать комнаты.
Как сделать комнату в Дискорде
Юзеры имеют все шансы делать комнаты в приложении Дискорд, дабы применить в зависимости от предпочтений и критерий. Для такого, дабы сделать комнату в мессенджере, нужно сделать нормальную операцию.
Вначале надо войти в мессенджер Дискорд. В программке нужно избрать важный вариант канала, и около комнаты надо избрать команду со значком, который представлен в облике плюсика.
Вслед за тем нужно показать неординарное заглавие, по которому было бы элементарно находить комнату в мессенджере.
Вслед за тем надо надавить на кнопку голубого цвета, дабы доказать функцию сотворения канала.
Впоследствии завершения операции по созданию канала, юзеры имеют все шансы добавлять важных членов.
Опции и характеристики.
Юзеры имеют все шансы ставить опции на каналы в зависимости от критерий, и предназначении.

В мессенджере Дискорд юзеры не способны ставить пароль на канал, потому что аналогичная функция не заложена на платформе.
Юзеры имеют все шансы показать нужные опции приватности, дабы обезопасить комнату. Впоследствии такого, как опции приватности станут поставлены, в комнату не сумеют войти чужие юзеры. Для такого, дабы ввести опции приватности к каналу, нужно сделать следующее.
Войти в программку, и избрать важный канал.
Возле значка канала идет по стопам избрать опции при поддержке нажатия кнопки в облике значка шестеренки.
Впоследствии перехода в опции, идет по стопам избрать раздел из предложенного перечня в рационы «Права доступа».
Вслед за тем идет по стопам выключить все пункты в разделе, и впоследствии сего возможно налегать на значки в облике плюсиков.
Плюс надо ввести возле членов, которые сумеют владеть доступ в комнату.
Бот для сотворения комнаты в Дискорде
Юзеры имеют все шансы применить дешевые боты, которые рассчитаны на облегчение работы в мессенджере Дискорд.
Боты имеют все шансы исполнять определенные роли. При данном, юзеры имеют все шансы применить боты, дабы делать каналы на платформе. Боты готовы арестовать доля ролей, дабы юзер получал наслаждение от работы без бесполезных операций.
При данном, большущее количество роботов может помочь избирать важный вариант в зависимости от предназначения и критерий в сервисе.
MEE6 – бот, который пользуют юзеры для сотворения комнаты в мессенджере Дискорд. Кроме расширенного перечня возможностей, бот поддерживается, собственно что позволяет периодически развиваться.
Юзеры имеют все шансы воспользоваться нормальным вариантом настроек и инструментов, или же купить преимиум сверток, дабы прирастить дешевый перечень возможностей.
Бот выделяется тем, собственно что юзеры имеют все шансы проводить опции в зависимости от предпочтений и критерий.
В случае если юзеры периодически трудятся с ботом, собственно что степень растет, и при данном, юзер имеет возможность использовать вспомогательный сверток настроек и инструментов.
Для такого, дабы начать работу с ботом, нужно пригласить на сервер.
RED – бот, который владеет оригинальной возможностью по опциями, и в следствие этого юзеры избирают вариант, дабы рулить опциями в зависимости от надобности.
Бот трудится персонально в зависимости от непосредственно избранного сервера, и выбирает важный сверток настроек и предложений. Юзеры имеют все шансы расширять перечень возможностей бота, скачивая плагина.
Dyno применяется 1,6 млн. серверов. Превосходство бота заключается в том, собственно что веб-панель владеет информативностью, которая позволяет держать под контролем процесс опций.
Юзеры имеют все шансы избрать варианты настроек и инструментов для управления опциями.

Как отыскать и войти в комнату в Discord
Юзеры имеют все шансы находить комнаты, которые сделаны чужими членами программки. При данном, юзеры имеют все шансы находить каналы на платформе.
Облегчит процесс, в случае если юзер понимает ID сервера. Для такого, дабы признать номер непосредственно избранного юзера, чужой юзер обязан выслать при поддержке приложения Дискорд, или же сторонних программ.
В случае если юзер владеет удостоверениями админа, то возможно получить информацию, при данном, применить следующий вариант
Войти в мессенджер Дискорд.
В приложении нужно войти в опции. Опции возможно отыскать в нижней части экрана, которые смотрятся как значок с шестеренкой.

В опциях приложения нужно избрать раздел под заглавием «Виджет». Программка выдаст окно, в котором станет указан номер, при поддержке которого возможно станет идентифицировать комнату.
Надо обозначить, собственно что в похожем окошке юзеры имеют все шансы рулить опциями, и свидетельствовать вспомогательные составляющие, к примеру, отправлять приглашения, или же делать публикации на интернет-странице API.

Как уйти из комнаты
Юзеры имеют все шансы уйти из комнаты, в случае если исчезла надобность. При данном, нет надобности соглашать воздействие с чужими членами канала. Для такого, дабы истечь из комнаты, нужно сделать следующее.
Вначале нужно войти в мессенджер Дискорд.
Вслед за тем забежать в непосредственно подобранный канал.
При переходе в комнату, возможно увидать рационы в левой области экрана.
В окне нужно просмотреть функции, и избрать вариант с отключением. Раздел окна «Отключить» станет смотреться, как трубка телефонного аппарата с крестиком.
Юзеры не сумеют войти в канал впоследствии выхода. Единый вариант возвратиться в комнату, в случае если разработчик канала пришлет приглашение, или же допустит войти.