- Для версий
- 1.16.✘
- 1.17.✘
- 1.18.✘
- 1.19.✘
- 1.20.✘
- 1.21.✘
- 26.✘
- Исходный код
- https://github.com/4ohaaa/MDCommandControl
- Зависимости
- LuckPerms
MDCommandControl
MDCommandControl — профессиональный плагин для контроля доступа к командам на сервере Minecraft с интеграцией LuckPerms.
MDCommandControl — профессиональный плагин для контроля доступа к командам на сервере Minecraft с интеграцией LuckPerms.
📋 Описание
Плагин обеспечивает полный контроль над доступом игроков к командам сервера на основе системы групп LuckPerms:
- ✅ Контроль подсказок команд — скрывает недоступные команды в табкомплите
- ✅ Удаление namespace — убирает команды с namespace (например, mdauc:ah показывает как ah)
- ✅ Автоматическое исправление регистра — если игрок вводит /AH, команда автоматически выполнится как /ah
- ✅ Система приоритетов групп — гибкая настройка прав через приоритеты
- ✅ Информативные сообщения — уведомляет о причине отказа в выполнении команды
- ✅ Поддержка MiniMessage — современное форматирование сообщений
⚙️ Требования
- Minecraft: 1.16+
- LuckPerms: Обязательно! Плагин не будет работать без LuckPerms
- Paper/Purpur: Рекомендуется для лучшей производительности
📦 Установка
- Установите LuckPerms на сервер (если еще не установлен)
- Скачайте MDCommandControl-FINAL.jar
- Поместите файл в папку plugins/
- Перезапустите сервер
- Настройте config.yml и messages.yml в папке plugins/MDCommandControl/
🎮 Команды
| Команда | Алиасы | Описание | Права |
|---|---|---|---|
| /commandcontrol reload | /cc reload, /cmdcontrol reload | Перезагрузить конфигурацию плагина | commandcontrol.reload |
🔐 Права (Permissions)
| Право | Описание | По умолчанию |
|---|---|---|
| commandcontrol.reload | Разрешение на перезагрузку конфигурации | OP |
| commandcontrol.bypass | Обход всех ограничений команд (полный доступ) | OP |
📝 Настройка config.yml
Конфигурация основана на системе групп с приоритетами:
YAML:
# Формат: allowed-commands-<группа>-<приоритет>
# Чем выше приоритет, тем больше прав
allowed-commands-default-0:
- spawn
- help
- msg
- tell
- rules
- list
allowed-commands-hero-10:
- home
- sethome
- delhome
- warp
- tpa
- tpaccept
allowed-commands-admin-100:
- gamemode
- gm
- tp
- give
- stop
- reloadПринцип работы приоритетов:
- Группа с приоритетом 10 имеет доступ к своим командам + команды групп с приоритетом ≤ 10
- Группа hero (приоритет 10) может использовать команды hero + default (приоритет 0)
- Группа admin (приоритет 100) имеет доступ ко всем командам: admin + hero + default
💬 Настройка messages.yml
Все сообщения настраиваются через messages.yml с поддержкой MiniMessage и Legacy форматирования:
YAML:
no-permission:
message: "<red>У тебя нету прав, для этой команды нужна привилегия %group%"
type: "actionbar" # chat или actionbar
no-command:
message: "<red>Такой команды не существует"
type: "actionbar"
no-command-permission:
message: "<red>У вас нет прав на использование этой команды"
type: "actionbar"
config-reloaded:
message: "<green>Конфигурация успешно перезагружена!"
type: "chat"
config-reload-error:
message: "<red>Ошибка при перезагрузке: %error%"
type: "chat"
plugin-info:
message: "<gold>MDCommandControl <gray>v%version%"
type: "chat"
plugin-usage:
message: "<gray>Используй: <yellow>/commandcontrol reload"
type: "chat"Доступные placeholders:
- %group% — имя группы (с префиксом из LuckPerms, если есть)
- %version% — версия плагина
- %error% — текст ошибки
Типы отображения сообщений:
- chat — обычное сообщение в чат
- actionbar — сообщение над хотбаром
🔍 Как это работает
1. Фильтрация табкомплита
Плагин автоматически скрывает команды, к которым у игрока нет доступа.
2. Проверка при выполнении команды
Плагин выполняет последовательные проверки:
Код:
1. Существует ли команда на сервере?
❌ Нет → "Такой команды не существует"
2. Правильный ли регистр команды?
❌ Нет → Автоматически выполняет команду с правильным регистром
Пример: игрок вводит /AH → выполняется /ah
3. Есть ли доступ по группе?
❌ Нет → "У тебя нету прав, для этой команды нужна привилегия [Hero]"
4. Есть ли базовый permission команды?
❌ Нет → "У вас нет прав на использование этой команды"
✅ Все проверки пройдены → команда выполняется3. Система приоритетов
Игрок с группой Hero (приоритет 10) получает доступ к:
- Всем командам группы hero
- Всем командам группы default (приоритет 0 < 10)
4. Интеграция с LuckPerms
Плагин получает:
- Основную группу игрока
- Префикс группы для отображения в сообщениях
- Дополнительные группы через permissions group.*
🛠️ Примеры использования
Пример 1: Базовая настройка для трех групп
YAML:
allowed-commands-default-0:
- spawn
- help
allowed-commands-vip-50:
- home
- tpa
allowed-commands-admin-100:
- gamemode
- tpПример 2: Игрок пытается выполнить недоступную команду
Код:
Игрок: Default группа (приоритет 0)
Команда: /home
Результат: ❌ "У тебя нету прав, для этой команды нужна привилегия [VIP]"Пример 3: Автоматическое исправление регистра
Код:
Игрок вводит: /AH или /Home
Результат: ✅ Команда автоматически выполняется с правильным регистром (/ah или /home)🎨 Форматирование сообщений
MiniMessage формат:
YAML:
message: "<red>Ошибка! <gradient:red:gold>Красивый градиент</gradient> <bold>Жирный текст"🏆 Преимущества
- Безопасность — полный контроль над доступом к командам
- Гибкость — система приоритетов позволяет настроить любую иерархию прав
- UX — понятные сообщения для игроков с указанием причины отказа
- Производительность — оптимизированный код
- Чистый табкомплит — игроки видят только доступные им команды
- Современность — поддержка MiniMessage и Paper API
📞 Поддержка
- Telegram канал:t.me/minedev_su
- Сайт:minedev.su
- Студия: MineDev
📄 Лицензия GNU
Плагин разработан студией MineDev
Автор: 4oha
Версия: FINAL
© 2024 MineDev Studio. All rights reserved.