Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Плагин [WIP] rscBans — менеджер банов для мультисерверных сред

Статус
Закрыто для дальнейших ответов.

Reality_SC

Старожил
Пользователь
Баллы
123
Имя в Minecraft
Reality_SC
ВНИМАНИЕ: Плагин находится в зачаточном состоянии. Его использование на данном этапе невозможно. Тема создана для предварительного знакомства с ним и внесения предложений на ранней стадии планирования его архитектуры.

Плагин предназначен для удобства администрирования банов; хранит записи в MySQL. Простота настройки и интеграции с чем-либо, удобные и интуитивные команды.

Сбор пожеланий. Не факт, что всё перечисленное будет, но скорее-всего:
  • Кросс-серверность
  • Кики
  • Предопределённые баны
  • Муты
  • Накапливаемые предупреждения + автобан
Скачать | dev.bukkit.org | spigotmc.org | Исходный код​
​
Структура бана:
Каждый бан является записью в базе данных со следующими полями:
  • id — сквозной порядковый номер бана.
  • active — состояние бана (действует/отменён).
  • banTarget — ник или UUID игрока, который был забаннен.
  • banSource — ник или UUID игрока, который наложил бан.
  • bannedWhen — дата/время наложения бана.
  • bannedUntil — дата/время, до которого действует бан.
  • banReason — причина бана — текст, который показан забанненому игроку при его автоматическом отключении от сервера и последующих попытках входа.
  • serverId — идентификатор сервера (server.properties), на котором действует бан.
  • comment — комментарий — дополнительная (расширенная) информация, которая видна административному составу сервера при анализе банов.
  • unbannedWhen — дата/время отмены бана.
  • unbanReason — причина отмены бана.
  • unbanSource — ник или UUID игрока, который отменил бан.

Команды:
  • WORK IN PROGRESS!
  • /banp <ник|uuid> <preset> — наложить бан, используя заранее предопределённый набор свойств.
  • /ban <ник|uuid> [<r=|reason=><причина>] [<u=|until=><дата и/или время>] [<t=|time=><временной интервал>] [<c=|comment=><комментарий>] [<sid=|serverid=><серверId>] — наложить кастомный бан.
  • /banh <ник|uuid> <#> — постраничный вывод истории нарушений игрока.
  • /banmh <ник|uuid> <#> — постраничный вывод истории действий уполномоченных игроков (m от moderator).
  • /unban <ник|uuid|#> <<r=|reason=><причина>> — отмена наложенного на игрока бана.
  • /kick <ник|uuid> — xxx
  • /mute <ник|uuid> — xxx
  • /unmute <ник|uuid> — xxx
  • /rscb help [1|2|...] — страницы помощи по доступным Вам командам.
  • /rscb reload — перечитать config.yml и перезапустить плагин.
Подчёркнутые красные символы являются однобуквенными алиасами для соответствующих им команд.

Права:
  • WORK IN PROGRESS!
  • rscb.ban-preset.<название пресета> — право на использование определенного пресета на других игроков.
  • rscb.ban-custom — право накладывать бан с произвольными параметрами.
  • rscb.ban-exempt.<название пресета> — защита игроку от применения на него определённого пресета.
  • rscb.ban-exempt.* — защита игроку от применения на него всех возможных пресетов.
  • rscb.admin — доступ ко всем командам и возможностям плагина.
Пресеты:
Пресет (англ. preset) — заранее предопределённые администратором сервера свойства бана, объединённые под одним именем. Пресет включает в себя: текст причины бана, срок действия бана, указание принадлежности бана (к текущему серверу или глобальный).

В текстах причин и комментариев можно использовать некоторые константы из rscPermissions. Все записи о банах имеют единую сквозную нумерацию.

Настройка плагина:
WORK IN PROGRESS.
Файл config.yml создаётся автоматически при первом запуске и содержит минимум необходимых настроек:
YAML:
settings:
  # Список заранее заготовленных шаблонов для вынесения банов
  ban-presets:
    # Название шаблона
    example_r42:
      # Автоматически заполненная причина
      reason:   '{_DR}RULES/{_LR}4.2'
      # Автоматически заполненный срок бана
      lifetime: '1d12h'
  # Список заранее заготовленных шаблонов для кика
  kick-presets:
    # Название шаблона
    example_r11:
    # Автоматически заполненная причина
      reason:   '{_DR}RULES/{_LR}1.1'
  # Список заранее заготовленных шаблонов для мьюта
  mute-presets:
    # Название шаблона
    example_r177:
    # Автоматически заполненная причина
      reason:   '{_DR}RULES/{_LR}1.17'
      # Автоматически заполненный срок бана
      lifetime: '4 hours'
  # Параметры соединения с БД
  connection:
    # Описание соединения с MySQL сервером
    hostname: 'localhost:3306'
    database: 'minecraft'
    username: 'user1'
    password: 'pass1'
    # Префиксы, которые будут иметь таблицы плагина
    prefixes: 'rscb_'
  # Как часто нужно обновлять данные из БД (в секундах)?
  fetch-interval-sec: 600
  # Какой языковой файл использовать? Из коробки идут english и russian
  language: russian
  use-metrics: true
internal:
  version: 1
История изменений:
  • v0.1.0a — Initial commits.
 
Последнее редактирование:
Можно добавить /mute /tempmute /unmute и функция на каких серверах не работает плагин.
 
Предлагаю сделать так чтобы при вводе команды /ban <player> <reason>, автоматически игрок банился на 5 минут, а есть /rsban <player> <reason>, то игрок банится навсегда
 
Предлагаю сделать так чтобы при вводе команды /ban <player> <reason>, автоматически игрок банился на 5 минут, а есть /rsban <player> <reason>, то игрок банится навсегда
Хорошая идея, так будет куда удобнее и быстрее банить игроков
 
Сбор пожеланий.
Можно еще добавить к функционалу предупреждения (/warn)
Если игрок получит определенное количество предупреждений (например, 10 предупреждений), то он автоматически забаниться на одни сутки (или заданное время в конфиге)
 
Можно еще добавить к функционалу предупреждения (/warn)
Если игрок получит определенное количество предупреждений (например, 10 предупреждений), то он автоматически забаниться на одни сутки (или заданное время в конфиге)
Слишком много, максимум 3
 
Сделай так: /ban <игрок> <причина>, и в отдельном файле, можно даже в конфиге можно создавать такие строчки:
- 1.22:300

- То есть, при вводе /ban Player 1.22 игрок баниться на 300 секунд (5 минут), если же ввести /ban Player Чит, то игрок уже баниться навсегда по причине "Чит", для временного бана команда /tempmute
 
Сделай так: /ban <игрок> <причина>, и в отдельном файле, можно даже в конфиге можно создавать такие строчки:
- 1.22:300

- То есть, при вводе /ban Player 1.22 игрок баниться на 300 секунд (5 минут), если же ввести /ban Player Чит, то игрок уже баниться навсегда по причине "Чит", для временного бана команда /tempmute
Похожа на мою идею
Для BungeeCord предлагаю сделать команду чтобы когда её вводили, то игрок блокировался автоматически, то есть на него накладывают: Мут, Его кикает, и банят. Команда /rsblock
 
Так же есть небольшое предложение по поводу плагина, можно сделать пресеты только для части агрументов, а не для всех. Например сделать список агрументов в конфиге пресета, для всех all, для остальных соответственно - nick|uuid => имя|uuid, reason или r => причина, until или u => дата и/или время, time или t => временной интервал, comment или c =>комментарий serverid или sid=> серверId.
 
Я думаю сделать у каждого пресета на основные настройки рамки значений.
Что-то типа так:
  • срок бана:
    • только фиксированный => указано конкретное значение
    • всегда указывать вручную =>
      • опционально минимальный срок
      • опционально максимальный срок
    • допустимо указывать вручную =>
      • опционально минимальный срок
      • опционально максимальный срок
      • значение по умолчанию
Ну для комментария без мин/макс, попроще.

Я в отпуск, сваливаю на пару недель, когда вернусь продолжу развлекаться с кодом.

P.S. от 26 августа 2016:
Нахрен его!​
 
Последнее редактирование:
Статус
Закрыто для дальнейших ответов.

Поделиться этой страницей

Назад
Верх