Бот VoiceMaster для создания приватных каналов в Discord и как его настроить
Бот VoiceMaster в мессенджере Discord создает закрытый, секретный канал общения пользователей. По желанию, туда добавляются присутствующие на сервере участники чата. При необходимости владелец бота блокирует канал, удаляет собеседника. Платная версия содержит расширенный набор команд. Кстати, на странице VoiceMaster есть описание основных действий на русском.
Описание VoiceMaster bot для Discord
Данный бот предназначен для создания независимых каналов в Дискорде, так называемых голосовых комнат (rooms). Voicemaster генерирует временное закрытое для других пространство, в котором можно обмениваться репликами, общаться.
Образует защищенную от постороннего доступа зону. Преимущество ВойсМастера состоит в том, что никто не присоединится к каналу против желания создателя. «Гостей» можно как добавлять, так и отключать. Получается полноценный приват в Дискорде. Разработчик предусмотрел коммерческую версию бота – VoiceMaster+. В ней пользователю предоставляется право создавать любое количество категорий, формировать каналы с заданными характеристиками, даже клонировать их. Плата за расширенную версию составляет от 4 фунтов стерлингов ежемесячно.
В минимальной комплектации – 3,99 фунта за 30 дней пользования, предоставляется 1 дополнительный сервер. Другие варианты оплаты – 40 фунтов в год или 70 на неограниченный срок. Следующая градация – 8 фунтов в месяц/70 в год – дает право на 3 выделенных сервера. Заплатив 16 фунтов в месяц/130 в год, пользователь получит уже 10 серверов.
Список команд

Как настоящий помощник, VoiceMaster подчиняется заданному разработчиком перечню команд. Каждая из них соответствует определенному действию, начинается со слова «voice». На странице бота есть краткий перечень документации, руководство на нескольких языках, включая русский. Пользователю доступны:
- «lock». Блокировка канала. Никто не сможет присоединиться;
- «unlock». Отключение режима блокировки;
- «name». Изменение имени;
- «limit». Создание лимита подключений для других пользователей;
- «permit/allow ». Персональное приглашение для конкретного юзера;
- «reject/deny ». Блокирование подключения для конкретного юзера;
- «claim». Запрос на передачу прав владения каналом;
- «info». Получение информации о канале.
В отдельную группу собраны основные команды. Это получение текущего префикса («@voicemaster myprefix»), данные о боте («aboutme»), статистика («stats»), проверка отклика («ping»), отправка приглашения («invite»), сброс настроек («resetme»). К действиям администратора относятся «voice setup», «setprefix», «resetserver».

Кроме этого, есть бонусные команды. Они выделены звездочкой. К ним относятся: «voice text», «voice ghost/unghost», «voice setup sequence», «voice setup clone», «voice invite», «archive», «settext». Данные действия активны только по подписке. По умолчанию задан префикс «.». Его ввод обязателен.
Как создать голосовую комнату с помощью бота
Для создания канала для приватных бесед с одним, двумя или большим количеством участников потребуется установить и настроить бота. Пример показан на видео
Для начала нужно перейти в меню, введя команду «voice setup». Далее созданной категории присваивается имя. Это может быть «Private», «Secret», «My channel» – на выбор. Переименование происходит после входа в контекстное меню, открываемое по клику ПКМ. Не забываем о сохранении внесенных изменений.
Затем создается закрытый голосовой канал. В списке возможных кандидатур на присоединение должны отображаться активные пользователи чата. Уже из их числа производится выбор тех, с кем будет вестись «тайная беседа».
Установка на свой сервер
Процесс установки начинается с перехода на официальный сайт бота: https://voicemaster.xyz/. Кнопка «Invite The Bot» («Пригласить») находится прямо на главной странице. Искать ее не придется. Нажимаем, происходит автоматическое перенаправление в меню авторизации Дискорда.

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

Аналогов у бота нет, в этом его явное преимущество. Но данное достоинство одновременно является и недостатком: при желании не получится найти альтернативу. Еще один жирный минус касается платной подписки: оплата в фунтах стерлингах, да еще и от 3,99 в месяц. Это больше, чем стандартная квота у других разработчиков.
Поэтому на сайте ботов Дискорда разброс оценок бота велик, от 1 «звездочки» до 5. Также многие пользователи ссылаются на значительные задержки в отклике VoiceMaster при обращении. При этом создатель не оставляет без внимания комментарии, старается отреагировать ни них.
Создание, вход и выход из комнаты в Discord
Дискорд – мессенджер, который помогает искать собеседников по группам, которые разбросаны по интересам. Приложение разработано, и вошло в эксплуатацию пользователей в 2015 году, но регулярно развивается, и в настоящее время сервис использует более 11 миллионов клиентов. Как правило, мессенджер привлекает геймеров, которые создают каналы в зависимости от интересов, и могут связываться при помощи аудиозвонков или видеоконференций. Функционал программы содержит большое число опций и инструментов, которые помогают оптимизировать работу.

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

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

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

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

После нажатия на кнопку делать запрос например редактирования названия комнаты
Сделать авто удаление ответа пользователя после того как бот его обработал
- Вопрос задан 11 мар.
- 357 просмотров
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,790 Реакции [?] 1,066 Поинты [?] 17K
Опа, а что это тут у нас?
Гайд почти на 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(); > > >
Теперь у вас есть приватные румы.
Есть некоторые проблемы связанные с этим кодом, во-первых, можно сделать лучше, во-вторых из-за частых созданий приваток, бот перестаёт создавать новые комнаты какое-то время, из-за ограничений дискорда. Можно сделать комнаты, которые скрыты пока пользователь не зайдёт, но возможно это я сделаю позже.
Всо!
Чтобы обойти ограничения дискорда можно скрывать/показывать комнаты
