▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/Guests Control
Guests Control

Guests Control

A plugin that provides new server visitors with a guest mode for a limited time.

19
1

🚪 Guests — Guest Management Plugin

Control who actually plays on your server.
New players join as read-only guests and can only become full members after admin approval — perfect for whitelisted communities, roleplay servers, or any server that needs manual vetting.


✨ Features

  • Automatic guest assignment — every new player is instantly made a guest on first join
  • Full world protection — guests cannot break blocks, place blocks, open containers, attack entities, pick up items, use redstone, or interact with anything in the world
  • Configurable guest gamemodeADVENTURE (default) or SPECTATOR
  • Time limit system — guests are kicked after a configurable time (default 1 hour); remaining time is saved across disconnects
  • BossBar countdown — guests always see their remaining time; color shifts green → yellow → red as it runs out
  • AFK kick — idle guests are automatically removed after a configurable timeout
  • Repeat reminder messages — periodic nudges reminding guests how to apply for full access
  • Discord integration — guests can run /guest request to send a webhook ping straight to your Discord server
  • PlaceholderAPI support%guests_status% and %guests_time_left%
  • Dual language support — English (en_us) and Russian (ru_ru) out of the box, fully configurable
  • MiniMessage formatting — all messages support colors, gradients, hover text, and clickable links
  • Offline player management — approve or demote players even when they're not online
  • Persistent storage — all player data survives server restarts via playerlist.yml

🖥️ Commands

CommandDescriptionPermission
/guests helpShow all available commandsguests.admin
/guests add player <name>Approve a guest as a full playerguests.admin
/guests add guest <name>Set a player back to guest statusguests.admin
/guests list playersList all approved playersguests.admin
/guests list guestsList all current guests with remaining timeguests.admin
/guests info <name>View stored info for any playerguests.admin
/guests reloadReload config and language filesguests.admin
/guest requestSend a join request to Discordguests.request

🔑 Permissions

PermissionDescriptionDefault
guests.adminFull access to all /guests subcommandsOP
guests.addPermission to add/promote playersOP
guests.listPermission to list playersOP
guests.infoPermission to view player infoOP
guests.reloadPermission to reload the pluginOP
guests.requestPermission to use /guest requestEveryone
guests.bypassBypass all guest restrictions entirelyOP

📊 PlaceholderAPI

Requires PlaceholderAPI (soft dependency — plugin works without it).

PlaceholderReturns
%guests_status%Guest or Player (localized)
%guests_time_left%Remaining time (e.g. 1h 29m 55s) or

⚙️ Configuration

config.yml

# Language: en_us or ru_ru
lang: en_us

# Gamemode for guests: ADVENTURE or SPECTATOR
guest-gamemode: ADVENTURE

# Guest time limit
guest-time-limit:
  enabled: true
  seconds: 3600  # 1 hour

# Periodic reminder message
repeat-message:
  enabled: true
  interval-seconds: 120

# AFK kick for guests
afk-kick:
  enabled: false
  timeout-seconds: 300

# /guest request command
request-command:
  enabled: true
  cooldown-seconds: 300

# Discord webhook
discord:
  webhook-url: "https://discord.com/api/webhooks/..."
  role-id: ""   # Role ID to ping (optional)
  user-id: ""   # User ID to ping (optional)

🌍 Language Files

Language files live in plugins/Guests/language/.
The active language is set with lang: en_us (or ru_ru) in config.yml.

All messages use MiniMessage format — you can use colors, gradients, bold, italic, hover events, and clickable links anywhere.

Example (from en_us.yml):

welcome:
  title: "<gold><bold>Welcome!</bold></gold>"
  subtitle: "<yellow>You are currently in guest mode</yellow>"
  discord: "<aqua>➤ Join our Discord:</aqua> <click:open_url:'https://discord.gg/yourserver'><underlined>discord.gg/yourserver</underlined></click>"

To add a new language, create a new file (e.g. de_de.yml) in the language/ folder, set lang: de_de in config, and reload.


💾 Player Storage

All data is stored in plugins/Guests/playerlist.yml:

players:
  Steve:
    uuid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    status: player
  Alex:
    uuid: yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
    status: guest
    remaining-time: 3450

The file is updated automatically every 60 seconds while the server is running, and always on disconnect and on /guests reload.


🚀 Quick Setup

  1. Drop the JAR into your plugins/ folder and start the server.
  2. Open plugins/Guests/config.yml and set your preferred options.
  3. (Optional) Paste your Discord webhook URL under discord.webhook-url.
  4. (Optional) Edit the message files in plugins/Guests/language/ to match your server's branding.
  5. Run /guests reload to apply changes without restarting.
  6. When a player is ready to be approved, run /guests add player <name>.

That's it. New players will automatically join as guests from this point on.


🛡️ Compatibility

Server softwarePaper, Purpur, Spigot, and any Paper-compatible fork
Minecraft version1.21.x (tested); broadly compatible with 1.20+
Java versionJava 21+
Soft dependenciesPlaceholderAPI (optional)

📝 Notes

  • Players with the guests.bypass permission (OPs by default) are never restricted, even if their stored status is guest. This lets admins test the server freely.
  • The /guest request command has a per-player cooldown (configurable) to prevent webhook spam.
  • Remaining guest time counts down only while the player is online and is persisted when they disconnect.
  • Running /guests reload safely restarts all background tasks and reloads language files without a server restart.

RU (описание на русском)

🚪 Guests — Плагин управления гостями

Контролируйте, кто действительно играет на вашем сервере. Новые игроки присоединяются как гости с режимом только для чтения и могут стать полноценными участниками только после одобрения администратора — идеально подходит для серверов с вайтлистом, RP-серверов или любых серверов, где требуется ручная проверка игроков.

Если вы это читаете — заходите на мой ванила+ сервер OBK: play.obkteam.fun! Плагин создавался именно для него.


✨ Возможности

  • Автоматическое назначение гостя — каждый новый игрок автоматически становится гостем при первом входе
  • Полная защита мира — гости не могут ломать блоки, ставить блоки, открывать контейнеры, атаковать сущности, подбирать предметы, использовать редстоун или взаимодействовать с чем-либо в мире
  • Настраиваемый режим игры для гостейADVENTURE (по умолчанию) или SPECTATOR
  • Система лимита времени — гости кикаются после настраиваемого времени (по умолчанию 1 час); оставшееся время сохраняется даже после выхода с сервера
  • BossBar-таймер — гости всегда видят оставшееся время; цвет меняется зелёный → жёлтый → красный по мере его уменьшения
  • AFK-кик — бездействующие гости автоматически удаляются после настраиваемого тайм-аута
  • Повторяющиеся напоминания — периодические сообщения, напоминающие гостям, как подать заявку на полный доступ
  • Интеграция с Discord — гости могут использовать /guest request, чтобы отправить webhook-уведомление прямо на ваш Discord-сервер
  • Поддержка PlaceholderAPI%guests_status% и %guests_time_left%
  • Поддержка двух языков — английский (en_us) и русский (ru_ru) из коробки, полностью настраиваемые
  • Форматирование MiniMessage — все сообщения поддерживают цвета, градиенты, hover-текст и кликабельные ссылки
  • Управление офлайн-игроками — можно одобрять или понижать игроков даже если они не онлайн
  • Постоянное хранение данных — все данные игроков сохраняются после перезапуска сервера через playerlist.yml

🖥️ Команды

КомандаОписаниеРазрешение
/guests helpПоказать все доступные командыguests.admin
/guests add player <name>Одобрить гостя и сделать его полноценным игрокомguests.admin
/guests add guest <name>Вернуть игрока обратно в статус гостяguests.admin
/guests list playersПоказать список всех одобренных игроковguests.admin
/guests list guestsПоказать список всех текущих гостей с оставшимся временемguests.admin
/guests info <name>Посмотреть сохранённую информацию о любом игрокеguests.admin
/guests reloadПерезагрузить конфиг и языковые файлыguests.admin
/guest requestОтправить запрос на вступление в Discordguests.request

🔑 Разрешения

РазрешениеОписаниеПо умолчанию
guests.adminПолный доступ ко всем подкомандам /guestsOP
guests.addРазрешение добавлять/повышать игроковOP
guests.listРазрешение просматривать список игроковOP
guests.infoРазрешение просматривать информацию об игрокеOP
guests.reloadРазрешение перезагружать плагинOP
guests.requestРазрешение использовать /guest requestВсе
guests.bypassПолностью обходить все ограничения гостейOP

📊 PlaceholderAPI

Требуется PlaceholderAPI (мягкая зависимость — плагин работает и без него).

ПлейсхолдерВозвращает
%guests_status%Guest или Player (локализовано)
%guests_time_left%Оставшееся время (например 1h 29m 55s) или

⚙️ Конфигурация

config.yml

# Язык: en_us или ru_ru
lang: en_us

# Режим игры для гостей: ADVENTURE или SPECTATOR
guest-gamemode: ADVENTURE

# Лимит времени для гостей
guest-time-limit:
  enabled: true
  seconds: 3600  # 1 час

# Периодическое сообщение-напоминание
repeat-message:
  enabled: true
  interval-seconds: 120

# AFK-кик для гостей
afk-kick:
  enabled: false
  timeout-seconds: 300

# Команда /guest request
request-command:
  enabled: true
  cooldown-seconds: 300

# Discord webhook
discord:
  webhook-url: "https://discord.com/api/webhooks/..."
  role-id: ""   # ID роли для пинга (необязательно)
  user-id: ""   # ID пользователя для пинга (необязательно)

🌍 Языковые файлы

Языковые файлы находятся в plugins/Guests/language/. Активный язык задаётся через lang: en_us (или ru_ru) в config.yml.

Все сообщения используют формат MiniMessage — вы можете использовать цвета, градиенты, жирный текст, курсив, hover-события и кликабельные ссылки где угодно.

Пример (из en_us.yml):

welcome:
  title: "<gold><bold>Добро пожаловать!</bold></gold>"
  subtitle: "<yellow>Сейчас вы находитесь в режиме гостя</yellow>"
  discord: "<aqua>➤ Присоединяйтесь к нашему Discord:</aqua> <click:open_url:'https://discord.gg/yourserver'><underlined>discord.gg/yourserver</underlined></click>"

Чтобы добавить новый язык, создайте новый файл (например de_de.yml) в папке language/, укажите lang: de_de в конфиге и выполните перезагрузку.


💾 Хранение данных игроков

Все данные сохраняются в plugins/Guests/playerlist.yml:

players:
  Steve:
    uuid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    status: player
  Alex:
    uuid: yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
    status: guest
    remaining-time: 3450

Файл автоматически обновляется каждые 60 секунд во время работы сервера, а также всегда при выходе игрока и при выполнении /guests reload.


🚀 Быстрая установка

  1. Поместите JAR-файл в папку plugins/ и запустите сервер.
  2. Откройте plugins/Guests/config.yml и настройте нужные параметры.
  3. (Необязательно) Вставьте ваш Discord webhook URL в discord.webhook-url.
  4. (Необязательно) Отредактируйте файлы сообщений в plugins/Guests/language/, чтобы они соответствовали стилю вашего сервера.
  5. Выполните /guests reload, чтобы применить изменения без перезапуска сервера.
  6. Когда игрок готов к одобрению, выполните /guests add player <name>.

Готово. С этого момента новые игроки будут автоматически заходить на сервер как гости.


🛡️ Совместимость

Программное обеспечение сервераPaper, Purpur, Spigot и любые форки, совместимые с Paper
Версия Minecraft1.21.x (протестировано); в целом совместимо с 1.20+
Версия JavaJava 21+
Мягкие зависимостиPlaceholderAPI (необязательно)

📝 Примечания

  • Игроки с разрешением guests.bypass (по умолчанию OP) никогда не ограничиваются, даже если их сохранённый статус — guest. Это позволяет администраторам ✨бодно тестировать сервер.
  • Команда /guest request имеет кулдаун для каждого игрока (настраивается), чтобы предотвратить спам webhook-уведомлениями.
  • Оставшееся время гостя уменьшается только пока игрок находится онлайн и сохраняется при его выходе.
  • Выполнение /guests reload безопасно перезапускает все фоновые задачи и перезагружает языковые файлы без перезапуска сервера.

Совместимость

Minecraft: Java Edition

26.1.x1.21.x1.20.x

Платформы

Поддерживаемые окружения

Сервер

Создатели

Детали

Лицензия:MIT
Опубликован:1 месяц назад
Обновлён:1 месяц назад
Главная