Мова

Guests Control

Guests Control

Modrinth

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

67 завантажень 3 підписників оновлено 1mo ago
остання v1.0.4 Modrinth
Bukkit Paper Purpur Spigot 1.20 – 26.1 ManagementSocialUtility

🚪 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

| Command | Description | Permission |
|---|---|---|
| /guests help | Show all available commands | guests.admin |
| /guests add player <name> | Approve a guest as a full player | guests.admin |
| /guests add guest <name> | Set a player back to guest status | guests.admin |
| /guests list players | List all approved players | guests.admin |
| /guests list guests | List all current guests with remaining time | guests.admin |
| /guests info <name> | View stored info for any player | guests.admin |
| /guests reload | Reload config and language files | guests.admin |
| /guest request | Send a join request to Discord | guests.request |


🔑 Permissions

| Permission | Description | Default |
|---|---|---|
| guests.admin | Full access to all /guests subcommands | OP |
| guests.add | Permission to add/promote players | OP |
| guests.list | Permission to list players | OP |
| guests.info | Permission to view player info | OP |
| guests.reload | Permission to reload the plugin | OP |
| guests.request | Permission to use /guest request | Everyone |
| guests.bypass | Bypass all guest restrictions entirely | OP |


📊 PlaceholderAPI

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

| Placeholder | Returns |
|---|---|
| %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 software | Paper, Purpur, Spigot, and any Paper-compatible fork |
| Minecraft version | 1.21.x (tested); broadly compatible with 1.20+ |
| Java version | Java 21+ |
| Soft dependencies | PlaceholderAPI (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 | Отправить запрос на вступление в Discord | guests.request |


🔑 Разрешения

| Разрешение | Описание | По умолчанию |
| ---------------- | --------------------------------------------- | ------------ |
| guests.admin | Полный доступ ко всем подкомандам /guests | OP |
| 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 |
| Версия Minecraft | 1.21.x (протестировано); в целом совместимо с 1.20+ |
| Версия Java | Java 21+ |
| Мягкие зависимости | PlaceholderAPI (необязательно) |


📝 Примечания

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

Версії

Beta
1.0.4
bukkit, paper, purpur · 1.20, 1.20.1, 1.20.2 · 1mo ago
**Fixes** - Guests with expired timeouts are no longer allowed into the server immediately upon connecting, rather than being kicked after joining - Manual…
28
Beta
1.0.3
bukkit, paper, purpur · 1.20, 1.20.1, 1.20.2 · 1mo ago
**Bug Fixes** - Fixed a critical UUID bug: players added via `/guests add player <name>` before their first login now correctly receive their status when…
6
Beta
1.0.1
bukkit, paper, purpur · 1.20, 1.20.1, 1.20.2 · 3mo ago
- **Fixed a bug** where guests could break boats and minecarts.
23
Beta
1.0.0
bukkit, paper, purpur · 1.20, 1.20.1, 1.20.2 · 3mo ago
# 🚪 Guests v1.0.0 — First Release! **The first version of the guest management plugin for your server.** New players join as restricted guests and can…
10

Коментарі 0

Поки немає коментарів. Будь першим, хто поділиться думкою.

Завантажити Guests Control

Файли надаються напряму з першоджерела. Modgrid не зберігає та не змінює їх.