HELPER TEMP ROOMS ПРИВАТНЫЕ КОМНАТЫ /ROOMS_SETUP / VOICE HUB / OWNER PANEL / AUTO CLEANUP / WEB SYNC
Temp Rooms создаёт приватные voice-комнаты по кнопке. Игрок выбирает пресет или вводит своё название, HELPER создаёт голосовой канал в нужной категории, назначает владельца, выдаёт пульт управления и автоматически удаляет пустые комнаты. Владелец комнаты может закрыть, скрыть, переименовать, изменить лимит, пригласить, кикнуть, заблокировать пользователя или передать права другому участнику.
Что делает Temp Rooms
Модуль убирает ручную работу staff по voice-комнатам. Пользователь сам создаёт комнату, получает права владельца и управляет доступом через кнопки. Настройки хранятся по guild_id: канал панели, категория создания, роли доступа/запрета/менеджеров, лимит комнат и время автоудаления.
Voice hub
Публичная плашка с кнопками “Создать”, 2/2, 5/5, 10/10 и Private.
Создание
Бот создаёт voice-канал, owner overwrite и manager permissions.
Пульт
Владелец управляет замком, видимостью, лимитом, именем и пользователями.
Очистка
Пустые комнаты удаляются автоматически, а запись исчезает из temp_rooms.json.
Больше информации картинками
Полный визуальный путь: setup, публичная панель, создание через modal, быстрые пресеты, пульт владельца, invite/kick/block/transfer, автоудаление и disabled-state.
Команды Discord
Slash-команды нужны только администратору для публикации и обновления панели. Обычный игрок работает через кнопки.
/rooms_setup control_channel:#создать-комнату category:🎮 Приватные комнатыСохраняет control_channel_id, CONTROL_CHANNEL_ID, control_category_id, CONTROL_CATEGORY_ID, включает temp_rooms и публикует панель.
/rooms_deployПринудительно обновляет панель приватных комнат по текущим настройкам. Если канал не задан, просит сначала выполнить /rooms_setup или настроить сайт.
➕ Создать
👤 2/2
👥 5/5
🏢 10/10
🔒 PrivateПубличные кнопки создания voice-комнаты. Private создаёт комнату, скрытую от @everyone.
lock / hide / rename / limit
invite / kick / block / transfer / deleteПульт уже созданной комнаты. Им пользуется владелец, администратор или room-manager.
Путь комнаты от кнопки до автоудаления
button
state/roles
voice channel
temp_rooms.json
owner panel
empty delete
Access checks
Проверяются module state, blocked roles, allowed roles, лимит комнат пользователя и лимит сервера.
Voice overwrite
@everyone, владелец, бот и manager-роли получают свои PermissionOverwrite.
Fallback control
Если Discord не дал отправить пульт в voice-chat, бот отправит его в канал панели.
Что видит обычный игрок
Пульт владельца комнаты
Пульт остаётся доступен владельцу, администраторам и room-manager ролям. Даже если модуль выключен, уже созданные комнаты можно закрыть, почистить или удалить.
🔒 Закрыть / открытьпереключает connect для @everyone.👻 Скрыть / показатьпереключает view_channel для @everyone.📝 Названиеоткрывает RenameRoomModal, имя до 30 символов.👥 Лимитоткрывает ChangeLimitModal, диапазон 0–99.🗑️ Удалитьпоказывает DeleteRoomConfirmView.👤 Inviteвыдаёт доступ конкретному пользователю.👢 Kickвыкидывает из voice, но не ставит deny.⛔ Blockзапрещает видеть и подключаться, при необходимости выкидывает.👑 Transferснимает manage_channels у старого owner и передаёт новому.Что делает админ или manager
Настраивает категорию
Выбирает, где создаются voice-комнаты.
Настраивает роли
allowed, blocked и manager role groups.
Следит за логами
log_action пишет создание, rename, limit, invite, kick, block, transfer и delete.
Может управлять
Админ или manager может пользоваться пультом любой комнаты.
Практический совет
Для больших серверов создай отдельную роль “Room Manager” и добавь её в manager_role_ids. Тогда staff сможет помогать игрокам, не выдавая всем Administrator.
Настройка на сайте
Dashboard сохраняет настройки в data/temp_rooms_settings.json, а активные комнаты — в data/temp_rooms.json. Сайт может поставить deploy_requested, после чего loop каждые 10 секунд обновит панель.
control_channel_idтекстовый канал с публичной панелью создания.CONTROL_CHANNEL_IDuppercase alias для совместимости.control_category_idкатегория, где создаются voice-каналы.CONTROL_CATEGORY_IDuppercase alias категории.control_message_idID опубликованной панели.last_control_channel_idнужен при переносе панели в другой канал.log_channel_idканал логов действий с комнатами.custom_title / TEMP_ROOMS_TITLEзаголовок embed.custom_description / custom_descописание панели создания.custom_button_textтекст основной кнопки “Создать”.custom_footerfooter панели.custom_colorцвет embed-линии.custom_banner / TEMP_ROOMS_BANNERбаннер из сайта или BannerManagerCog.Лимиты и роли доступа
Настройки нормализуются безопасно: ID приводятся к строкам, роли собираются из legacy и новых ключей, а лимиты зажимаются в разумные диапазоны.
allowed_role_idsесли список задан, создавать комнаты могут только эти роли или админ.blocked_role_idsэти роли не могут создавать комнаты.manager_role_idsмогут управлять чужими комнатами.aliasesaccess_role_ids, create_role_ids, deny_role_ids, staff_role_ids, admin_role_ids.max_rooms_per_userот 1 до 10, по умолчанию 1.max_rooms_per_guildот 1 до 500, по умолчанию 50.empty_delete_minutesот 1 до 1440 минут, по умолчанию 1.voice limitлимит людей в комнате 0–99.Автоудаление пустых комнат
Права бота и безопасность
Manage Channels
Нужно для создания, удаления, переименования и изменения прав каналов.
View Channels
Бот должен видеть категорию и каналы, где публикует пульт.
Connect
Нужно для корректных voice overwrites и доступов.
Send Messages
Нужно для панели создания, fallback-пульта и логов.
ownerпользователь, который создал комнату.administratorадмин сервера проходит проверку.manager_role_idsroom-manager роли из настроек.other usersполучают отказ: “только владелец, администратор или manager”.🎙️ Комната созданаканал, владелец, лимит и тип.📝 Rename / 👥 Limitновое имя или новый лимит.👤 Invite / 👢 Kick / ⛔ Blockдействие по пользователю.👑 Transfer / 🗑️ Deleteпередача владельца или удаление комнаты.Если модуль выключен
Отключение через module_states.json не удаляет temp_rooms_settings.json и temp_rooms.json. Новые комнаты не создаются, панель переходит в красный disabled-state, но пульты уже созданных комнат остаются рабочими, чтобы игроки или staff могли закрыть/почистить комнаты.
temp_roomsосновной ключ.temp-rooms / roomsкороткие alias.voice_rooms / voice-roomsalias voice-комнат.private_rooms / private-roomsalias приваток.приватные_комнатырусский alias.Карта технической логики
Экспортирует TempRoomsCog и setup.
TempRoomsCog, active_rooms, deploy_panel, create_temp_room, loops и slash-команды.
RoomsCreationView, InVoiceControlView, MemberActionSelectView, DeleteRoomConfirmView и TempRoomsDisabledView.
CreateRoomModal, RenameRoomModal и ChangeLimitModal.
normalize_settings, role aliases, panel_hash, module aliases и deploy flags.
creation/control/disabled/log embeds, JSON helpers, parse helpers и sanitize_channel_name.
SETTINGS_FILEtemp_rooms_settings.jsonROOMS_FILEtemp_rooms.jsonMODULES_FILEmodule_states.jsonEMPTY_DELETE1 min defaultDEPLOY5 attemptsSITE_SYNC10 secdeploy_requestedсайт просит обновить панель.panel_hashhash по PANEL_HASH_KEYS, чтобы не делать лишний deploy.control_message_idID панели для edit.last_control_channel_idесли канал изменился, старое сообщение удаляется.deploy_attemptsпосле 5 ошибок deploy_requested выключается.ownerID владельца комнаты.guild_id / channel_idключ voice-комнаты.created_at / empty_sinceвремя создания и таймер пустоты.name / limitимя и лимит комнаты.control_message_idID пульта управления.Ошибки и решения
/rooms_setup не публикует панель
Проверьте, что control_channel — текстовый канал, у бота есть Send Messages и Embed Links, а category — категория сервера.
Комната не создаётся
Проверьте module state, blocked_role_ids, allowed_role_ids, max_rooms_per_user, max_rooms_per_guild и права Manage Channels.
Пульт не появился в комнате
Discord может не разрешить отправить сообщение в voice-chat. Тогда бот пытается отправить пульт в fallback control_channel.
Переименование пишет лимит Discord API
Это стандартный rate-limit Discord: канал можно переименовывать только 2 раза в 10 минут.
Игрок не может пользоваться пультом
Пульт доступен владельцу комнаты, администратору или role из manager_role_ids. Остальные получают отказ.
Пустые комнаты не удаляются
Проверьте auto_delete_loop, empty_delete_minutes, записи empty_since и права бота удалять voice-каналы.
После сайта панель не обновилась
Проверьте deploy_requested, deploy_attempts, last_deploy_error, control_channel_id и control_message_id.
Модуль выключен, но пульт комнаты работает
Это специально: новые комнаты заблокированы, но старые можно закрыть, почистить или удалить безопасно.