src Плагин Утилита Защита Смешанный 🧑‍💻 E1m0Admin - Лучший помощник для администраторции, администратора и игрока 🩷 [4.0-RELEASE]

🧑‍💻 E1m0Admin - Лучший помощник для администраторции, администратора и игрока 🩷
Краткое описание:
Репорты, реватчи, системы управления администрацией - 🔬 ELM Laboratories - За нами будущее ❗
36
1 071

Предыдущие версии [9]

Другие версии

Последние обновления

UPDATE 4.0.0 | Новый интерфейс, команды и фишки? — Наши новые возможности!

🧑‍💻 E1m0: И так - Я приветствую всех на сегодняшнем обновлении Эльмо Админа, или же моего Админ...

v3.1.0-RELEASE | Фикс старых проблем с новой оберткой 🧑‍💻

Огромное спасибо людям что сподвигают развиваться, фиксить баги и делать билды, на этот фикс...

UPDATE 3.0.0 | Расширяемости — нет предела.

ОБНОВЛЕНИЕ 3.0: Расширяемость — НЕ предел. 🧑‍💻 E1m0: Ну что же? Я приветствую Вас на новом...
Смотреть еще...
Для версий
  1. 1.20.✘
  2. 1.21.✘
Источник
https://github.com/e1m0dev/E1m0Admin/releases
Java
  1. Java 20
  2. Java 21
  3. Java 22
  4. Java 23
  5. Java 25
Документация
https://github.com/e1m0dev/E1m0Admin/blob/master/README
Исходный код
https://github.com/e1m0dev/E1m0Admin
Зависимости
PlaceholdersAPI


E1m0Dev:
🩷 Благодарю что зашли посмотреть на мое творение, плагин вышел не маленький по этому функций много.
Главным двигателем и идеей этого плагина стала моя личная прихоть, мои старые плагины как то не зажигали что ли. Я уже очень давно не занимался чем то реально большим, как только поуходил с больших проектов и начал заниматся частниками как делал это несколько лет назад в своих эксперементах.

❗- | Если что в тексте я буду говорить администратор но это больше как абстракция, это может быть и модератор, и хелпер, и фембой, кто угодно кто имеет власть.

offtop


❗ Скорее зацени обновление 4.0 на GitHub проекта ❤️

| А про что вообще говорим?:
Плагин главным образом хорошо показывает себя на расстоянии трех разных лиц:
STAFF: Обязанность курирующей группы - сохранять порядок, дисциплину и боевой дух своего сервера.
ADMIN: Обязанность администратора - охранять сервер, с тулсом - станет намного легче.
PLAYER: В трудную минуту - администрация всегда на связи и увидит Ваш репорт.


Разберем пример от: Игрока:
Я - рядовой игрок, меня начинают оскорблять, всячески задевать родню и прочее. Можно - написать администратору/модератору в ЛС, ответит ли мне модератор который и так занят? - Вряд-ли, по этому мы создаем репорт и запускаем цепь: У администрации есть свои нормативы на нормальных серверах, и все должны выполнять свою норму, это нормальная практика решать задачи, а игрока СОЗДАЕТ эту задачу, то есть это не случайно а именно специально нацеленно на цепь Игрок -> Админ - Наказание -> Справедливость -> Норматив -> Бонус (Бонус который можно выдать в плагине ниже в функциях расскажу)

Разберем пример от: Администратора:
Я - Младший Администратор, норма большая, зарплата маленькая хочу больше. Но и помогать надо больше, вместо того чтобы просто летать по серверу - я начинаю смотреть репорты. Например прилетает жалоба на игрока bobobo, что он не работает. Я делаю /re Отправитель (Допустим: /re E1m0) и начинаю собирать контекст. Вижу что нарушитель реально нарушает правила и создается цепь:
Игрок ->Админ -> Нарушение -> Факт -> Наказание -> Пополняю свою норму.

Разберем пример от: Старшего Администратора:
Я - Сотрудник специального дозора за администрацией, допустим - Куратор Администрации. Мне нужно как либо регулировать свою администрацию. Так как в плагине есть доступный API - допустим у меня есть сайт. Я могу с сайта - выдавать повышения и понижения лишь одной кнопкой потому что это позволяет делать API. И запускается цепь от функции: STAFF - ADMIN - Ситуация: Администратор прошел условия повышения -> Повышение + Бонус (Например) -> Администратор работает еще лучше.

Получается так что один плагин - запускает и шевелит всю систему администрации 🩷


❓| А какие функции вообще есть?:
Если честно - ассортимент не из дешевых.
config:
# База Данных | Важная вещь, без нее плагин работать - не будет.
# Данные - берутся именно с Вашего сервера с Вашей СУБД.
Database:
  type: "PostgreSQL"        # PostgreSQL, MySQL, MariaDB
  user: "postgre"           # Пример: E1m0
  pass: "postgre"           # Пример: Elm0Dev
  name: "E1m0Admin"         # Пример: Server_Prod
  host: "127.0.0.1"         # Пример: 217.171.146.202
  port: 5433                # Пример: 3306, 5432, 5433

# Параметры плагина | Параметры самого плагина на которые он будет опираться в работе своих функций.
Settings:
  mainLanguage: "ru_ru.yml"

  consoleLogActive: true      # Сообщения | Будут ли логироватся действия администратора?
  consolePrefix: "CONSOLE"    # Сообщения | Как будет отображаться префикс консоли? Terminal, E1m0, Console, Бог - Вам решать.
  prefixEnable: true          # Сообщения | Будет ли показываться префикс? Пример: E1m0-Admin - Внимание | У Вас - нет на это права!
  prefix: "&cE1m0-Admin |"    # Сообщения | Префикс при системных сообщениях. Пример: ADM | У вас нет на это прав!
  world: "world"              # Мир       | В папке с Вашим сервером, у Вас есть в server.properties название Вашего мира.

  # | Комплименты | Сколько в МИНУТАХ будет длиться задержка перед следующей возможностью кинуть похвалу администратору.
  complimentCooldown: 1440 # ❓ | Почему 1440 минут (24 часа в переводе)? - Потому что 1 раз в день обычный игрок отправляет репорт.

  # PIN-Код   | Максимальное кол-во попыток ввода секретного кода до блокировки админ-прав?
  maxSecretCodeInputWrong: 3

Dev:
    salaryCheck: 60 # | ❗ Через сколько МИНУТ будет проходить проверка scheduler на зарплаты админов? Советую не трогать если не знаем что такое. Действия с базой там плотные.
    # Стандарт: 60 или же 1 час.

    rewatchTick: 1 # Слежка |❗ Опасная настройка, только для знающих людей с уровнем допуска DEV Рекомендуемое значение: 10+.
    # ❓- Сколько тиков будет длиться один кадр слежки? Меньше тиков = больше плавности == БОЛЬШЕ нагрузка на сервер! Если у Вас тпс ниже 20 - Не советую.

# Параметры | Связанные с разрешениями для главных администраторов серверов+,
#  которые в праве сами выбирать способности своей администрации.
Server:
  # - | ADMIN
  invisibility: true # Невидимость | Включать ли возможность e1m0-невидимки?
  adminzone: true    # Админ-Зона | Включать ли возможность телепорта в админ-зону?
  rewatch: true      # Слежка за юзером | Включать ли возможность e1m0-rewatcher?
  godmode: true      # Администрация | Включать ли возможность включать режим бога?
  report: true       # Репорты | Включить ли возможность отправлять и управлять репортами?
  amenu: true        # Админ-Меню | Включить ли возможность открывать админ-меню сервера?
  aban: true         # Админ-Блок | Включить ли возможность блокировать администраторам доступ при сливе?

  # - | PLAYER
  admins: true       # Администрация | Включать ли возможность просматривать админ-состав?
  compliment: true   # Администрация | Включать ли возможность кидать админу /thanks, похвалы и другие комплименты?
  reportPlayer: true # Слежка за юзером | Включать ли возможность e1m0-rewatcher?

  # - | STAFF
  abonusall: true # Бонусы | Включить ли возможность выдавать бонусы всем?
  abonus: true    # Бонусы | Включить ли возможность выдавать бонус админу?

  adminPay: true   # Зарплата | Каждый отыгранный администратором час = определенные действия в отношении администратора.
  adminBonus: true # Зарплата | Каждый дополнительный наигранный час = дополнительные действия.

  emergencyRep: true # Репорт | Будет ли оповещение в чате администрации при: Срочном репорте?
  donateReport: true # Репорт | Будет ли оповещение в чате администрации при: Донат репорте?
  newReport: true    # Репорт | Будет ли оповещение в чате администрации при: Новом репорте?

  ablacklist: true # Администрация | Включить ли возможность взаимодействия с черным списком?
  smenu: true   # Меню | Включить ли возможность открывать стафф-меню?

  # PermissionManager:
  # При каких разрешениях у администраторов будут работать команды?
  # Вы - можете полностью настроить какие команды включены на сервере, какие выключены, у кого есть к ним доступ у кого нет. Полная адаптивность к Вашему серверу.
Permissions:
  # 🎫 | Главные разрешения | Печать администратора.
  admin: "e1admin.admin"                   # Печать | Является-ли данный пользователь администратором сервера?
  staff: "e1admin.staff"                   # Печать | Является-ли данный администратор, главой сервера?

  # 🕹️ | Например для обычных игроков:
  compliment: "e1m0.compliment"            # Админ-коин | Какое разрешение на выдачу "Сбер-Спасибо" для администрации?
  admins: "e1admin.admins"                 # Админ-Лист  | Какое разрешение на чек администрации?

  # 🎫 | Например разрешение обычных администраторов:
  invisibility: "e1admin.invise"           # Невидимость | Какое разрешение на просмотр и использование способности?
  adminzone: "e1admin.adminzone"           # Адм-Зона | Какое разрешение на телепортацию в админ зону?
  godmode: "e1admin.godmode"               # Бессмертие | Какое разрешение на использование /godmode (/agm) - Бессмертие
  rewatch: "e1admin.rewatch"               # Слежка | Какое разрешение на просмотр и использование просмотра за игроками?
  smenu: "e1admin.smenu"                   # Меню   | Какое разрешение на открытие STAFF меню?
  amenu: "e1admin.amenu"                   # Меню   | Какое разрешение на открытие ADMIN меню?
  arep: "e1admin.arep"                     # Репорт | Какое разрешение на просмотр и использование систем репорта?
  aban: "e1admin.aban"                     # Репорт | Какое разрешение на блокировку возможностей админ-доступа?

  # 🔐 | Например кураторы:
  adminbonus: "e1admin.adminbonus"         # Администрация | Какое разрешение у администратора для выдачи бонуса другому администраторУ?
  adminbonusall: "e1admin.adminbonusall"   # Администрация | Какое разрешение у администратора для выдачи бонуса другим администраторАМ?

  # ❗ | STAFF:
  ablocklist: "e1admin.ablocklist"         # Админ | Какое разрешение у высших адм на занесение в черный список администрации?
  secretcode: "e1admin.asecret"            # Админ | Какое разрешение у высших адм на установление секретного пароля?
  downadm: "e1admin.downadmin"             # Админ | Какое разрешение у высших адм на понижение других администраторов?
  deladm: "e1admin.deladmin"               # Админ | Какое разрешение у высших адм на удаление других администраторов?
  setadm: "e1admin.setadmin"               # Админ | Какое разрешение у высших адм на постановление других администраторов?
  upadm: "e1admin.upadmin"                 # Админ | Какое разрешение у высших адм на повышение других администраторов?

# Параметры | Связанные с игрой администраторации, их зарплаты, АЗ, их бонусы за безумные трюки,
#  которые Вы можете полностью настраивать как душе угодно, развлекайтесь.
Admin:
  Rewatch:
    rewatchVectorX: 0     # Слежка | На сколько "глубоко" будет камера у администратора?
    rewatchVectorY: 2     # Слежка | На сколько высоко будет камера у администратора?
    rewatchVectorZ: 1     # Слежка | На сколько "отдаленно" будет камера у администратора?
    rewatchVectorYaw: 0     # Слежка | Поворот камеры влево/вправо (0 = как у игрока)
    rewatchVectorPitch: 45   # Слежка | Наклон камеры вверх/вниз (0 = прямо, -90 = вверх, 90 = вниз)

    # ПРЕСЕТЫ REWATCH | Если Вам хочется взять готовый пресет настроек и не играться с ними, прошу:
    # | Поближе
    #    rewatchVectorX: 0       # Слежка | На сколько "глубоко" будет камера у администратора?
    #    rewatchVectorY: 2       # Слежка | На сколько высоко будет камера у администратора?
    #    rewatchVectorZ: 1       # Слежка | На сколько "отдаленно" будет камера у администратора?
    #    rewatchVectorYaw: 0     # Слежка | Поворот камеры влево/вправо (0 = как у игрока)
    #    rewatchVectorPitch: 45  # Слежка | Наклон камеры вверх/вниз (0 = прямо, -90 = вверх, 90 = вниз)

    # | Средне
    #    rewatchVectorX: 0       # Слежка | На сколько "глубоко" будет камера у администратора?
    #    rewatchVectorY: 2       # Слежка | На сколько высоко будет камера у администратора?
    #    rewatchVectorZ: 2       # Слежка | На сколько "отдаленно" будет камера у администратора?
    #    rewatchVectorYaw: 0     # Слежка | Поворот камеры влево/вправо (0 = как у игрока)
    #    rewatchVectorPitch: 45  # Слежка | Наклон камеры вверх/вниз (0 = прямо, -90 = вверх, 90 = вниз)

    # | Подальше
    #    rewatchVectorX: 1        # Слежка | На сколько "глубоко" будет камера у администратора?
    #    rewatchVectorY: 3        # Слежка | На сколько высоко будет камера у администратора?
    #    rewatchVectorZ: 3        # Слежка | На сколько "отдаленно" будет камера у администратора?
    #    rewatchVectorYaw: 0      # Слежка | Поворот камеры влево/вправо (0 = как у игрока)
    #    rewatchVectorPitch: 45   # Слежка | Наклон камеры вверх/вниз (0 = прямо, -90 = вверх, 90 = вниз)

  # Амин-Зона | Сюда, администраторы попадают при регистрации например, или при окончании реватча (/reoff)
  # Амин-Зона | ❗ Лучше сразу заполнить.
  AdminZone:

    pitch: 0    # Наклон взгляда | 0 = прямо, -90 = вверх, 90 = вниз.
    yaw: 0      # Направление взгляда | Куда будет смотреть администратор после телепортации.
    # Пример: 0 = юг, 90 = запад, 180 = север, -90 = восток.

    x: 0   # Координата X | Положение "Левее или правее"
    y: 80  # Координата Y | Высота. Чем больше значение, тем выше находится точка.
    z: 0   # Координата Z | Положение "Глубже"


  Salary:
    # Или же - AdminPay, зарплата для администраторов которая выдается за определенные действия в игре.
    # Можно так же настроить действия для большего кол-ва часов выставляя большие minutes.
    SalaryActions:
      1:
        minutes: 60
Actions:
          - "msg %player Привет. Ты отыграл час! Твоя зарплата: %salary!"
      2:
        minutes: 120
Actions:
          - "msg %player Привет! Ты отыграл целых два часа. Вот твоя награда! Спасибо что трудишься сверх своей нормы!"
          - "eco give %player 100"

  # Параметры бонусов | Старшая администрация может выдать бонус в N кол-ве, Вам решать что это будет, например у кого-либо есть админ коины, вставляете команду сюда и Воуаля.
  # Крутить %admin %bonus можно в любом порядке, это переменные абстракции которые перенимают форму заданную плагином.
  Bonus:
    giveBonus: "eco give %admin %bonus" # ❗НУЖЕН VAULT, лучше заменить на что то другое, это - Ваша фантазия уже.

  # | Staff
  # Вот тут - очень интересно. Полностью настраиваемая система рангов, вы можете создавать сколько угодно уровней
  #  админ-допуска, называть их по-разному, не советую конечно менять названия в runtime потому что может быть путаница,
  #  но тут - и лежат Ваши администраторы и их разрешения.
  AdminRanks:
    # Минимальный ранг на который будет поставлен администратор при setAdmin.
    mladm:
      prefix: "Младший администратор"   # Важно   | Какой префикс в DB будет выдаваться при постановлении на адм?
      weight: 1                         # Важно | Какой вес будет у данной роли? Например: Некоторые администраторы - не могут забанить некоторых игроков.
      salary: 333                       # Важно | Какая зарплата будет у администратора в Вашей валюте?
      scom: "eco give %player %salary"  # Важно | Какая команда будет выдавать валюту которая закреплена за администратором? Или например предмет из ресурс-пака?

    # Около средние ранги на который будет поставлен администратор при повышении.
    adm:
      prefix: "Администратор"
      salary: 777
weight: 2
scom: "eco give %player %salary"

    # Здесь например ваши максимальные ранги среди всех.
    stadm:
      prefix: "Ст. Администратор"
      weight: 3
salary: 888
scom: "eco give %player %salary"

  # PIN-Code | Или же SecretCode, параметры при котором используются действия с PIN кодом администратора.
  # Каждому администратору Выдается старшим администратором свой PIN-Code и позже вводится на постоянной основе.
  SecretCode:
    wrongCodeTrigger: true  # ❗| Будет ли извещение, что администратор не правильно ввел пароль?
    accessCodeTrigger: true # ❗| Будет ли извещение, что администратор правильно ввел пароль?

    adminAccessNotify: "&aПоприветствуйте! Администратор %admin зарегистрировался в системе!" # | Успешная регистрация в системе.
    wrongCodeNotify: "&4&bОй! Администратор %admin ввел не правильный секретный код!"         # | Не успешная регистрация в системе.

    # Trigger Action | Действия при одном из состояний входа, то есть, если админ не правильно ввел пин код, я могу забанить его аккаунт,
    # Отобрать права, или просто кикнуть. А если ввел правильно, могу написать в админ чат или весь чат, что все хорошо.
    Actions:
      accessCodeActions:
        - "say §aАдминистратор %admin успешно авторизовался!"
      wrongCodeActions:
        - "msg %admin Не верно ввел админ код!"

  # Админ-Лист | Как будет выглядеть для игрока сообщение об админ-листе?
  AdminList:
    notAdminPlayer: "&6Не найден!" # Если Администратор не найден.
    notAdminPrefix: "&6Нет.."  # Если префикс администратора - не найден.
    notAdminWeight: "&6Нет.." # Если вес администратора - не найден.

    List:
      - ""
      - "&6Администраторы &7на &aрабочем посту:"
      - "&7- | Префикс: &6%adminPrefix &7| Администратор: &6%adminInJob&7 | Вес: &6%adminWeight"
      - ""
      - ""
      - "&6Администраторы &7в &aигре:"
      - "&7- | Префикс: &6%adminPrefix &7| Администратор: &6%adminInGame&7 | Вес: &6%adminWeight"
      - ""
      # Если просто хотите вывести всех администраторов, я это понимаю:
      #    - "%adminInGame"
      #    - "%adminInJob"

    # Здесь - я думаю все должно быть понятно, Вы сами прописываете свои сценарии и формы заданные на своих серверах,
    # Я понимаю - что у всех все разное, по этому, адаптируюсь под Вас 💚
  AHelp:
    admin: # Если у администратора есть печать старшего (Permissions.admin)
      - ""
      - "&aКоманды для администрации: "
      - "&a/acc &7— Зарегистрироваться в системе."
      - ""
      - "&a/az &7— Телепорт в админ зону."
      - "&a/re [Игрок] &7— Слежка за целью от лица."
      - "&a/agm &7— Активировать админский GM - не получение урона."
      - "&a/arep [Ответ] &7— Открыть меню репортов с Вашей формой."
      - "&a/ainv &7— Уйти в продвинутую невидимку."
      - "&a/aban [Админ] &7— При сливе отобрать доступ у администратора!"
      - "&a/amenu [Не обязательно | Игрок] &7— При совершении каких либо дейсвтий!"
      - ""
      - ""
      - "&6Сценарии их применения: "
      - "&fСитуация: Нужно быстро переговорить с админами, или отдохнуть от игроков: &6— /az"
      - "&fСитуация: Игроки на анархии постоянно пытаются напасть а gamemode нет: &6— /agm"
      - "&fСитуация: Чтобы получить доступ к командам нужно получить разрешение: &6— /acc"
      - "&fСитуация: Нужно проследить за целью оставаясь не замеченным: &6— /re E1m0 (Пример)"
      - "&fСитуация: Нужно проследить за ситуацией от своего лица: &6— /ainv + /tp [Игрок]"
      - "&fСитуация: Нужно посмотреть ситуацию на сервере и помочь: &6— /arep Администратор E1m0 — уже работает по Вашей жалобе!"
      - "&fСитуация: Человек сливает сервер, банит всех под ряд: &6— /aban E1m0"
      - "&fСитуация: Нужно быстро пробить /areport а вам не хочется, и если у Вас разрешены fast-репорты: &6— /am -> Репорты -> И форма автоматически вставляется!"
      - ""
    staff: # Если у администратора есть печать старшего (Permissions.staff)
      - ""
      - "&aКоманды для STAFF: "
      - "&a/aup &7— Повысить администратора."
      - "&a/adel &7— Уволить администратора."
      - "&a/smenu &7— Меню STAFF администратора."
      - "&a/adown &7— Понизить администратора."
      - "&a/aset &7— Поставить администратора."
      - "&a/ablist &7— Выдать ЧС администрации."
      - "&a/abonus &7— Выдать бонус администратору."
      - "&a/aunban &7— Выдать администратору доступ если он в бане."
      - "&a/abdlist &7— Снять ЧС администрации."
      - "&a/abonusall &7— Выдать бонус администраторам."
      - "&a/asetsecret &7— Выдать секретный код."
      - ""

  # Настройки комплиментов (/thaks) и их методов, здесь Вы можете заполнить дейсвтия например со своими админ коинами, своей валютой и в общем то чем либо своим
  Compliment:
    enable: true # | Будет ли работать функция?
    Actions: # | При получении админом похвалы какие действия будут совершатся?
      - "msg %admin 💚"
      - "eco give %admin 77"
      - "msg %admin 💚"

      # - | Функция 3.0: Автоматическое заполнение администратора правами, командами, скинами, и всем нужным ему для работы.
  AutoSetAdmin:

    # - | Здесь автоматически Вы сами можете настроить права.
    autoSetPermissions:
      enable: true        # | Будет ли работать функция авто-заполнения?
      permissionInWeight: # | Смотрите на weight своих рангов, у меня например они 1, 2, 3. Но так же, Вы можете добавить и 4, и 5, и 777, короче как то так.
        1: # | У меня - Это младший администратор. Смотрим AdminRanks..
          permissions:
            - "lp user %admin permission set e1admin.admin"

            - "lp user %admin permission set e1admin.arep"
            - "lp user %admin permission set e1admin.aban"
            - "lp user %admin permission set e1admin.amenu"
            - "lp user %admin permission set e1admin.invise"
            - "lp user %admin permission set e1admin.godmode"
            - "lp user %admin permission set e1admin.rewatch"
            - "lp user %admin permission set e1admin.adminzone"
        2: # | У меня - Это администратор. Смотрим AdminRanks.. Выдаю уровень 1, и добавляю 2.
          permissions:
            - "lp user %admin permission set e1admin.admin"

            - "lp user %admin permission set e1admin.arep"
            - "lp user %admin permission set e1admin.aban"
            - "lp user %admin permission set e1admin.amenu"
            - "lp user %admin permission set e1admin.invise"
            - "lp user %admin permission set e1admin.godmode"
            - "lp user %admin permission set e1admin.rewatch"
            - "lp user %admin permission set e1admin.adminzone"

            - "lp user %admin permission set e1admin.adminbonus"
            - "lp user %admin permission set e1admin.adminbonusall"
        3: # | У меня - Это старший администратор. Смотрим AdminRanks.. Выдаю ВСЕ права.
          permissions:
            - "lp user %admin permission set e1admin.admin"

            - "lp user %admin permission set e1admin.arep"
            - "lp user %admin permission set e1admin.aban"
            - "lp user %admin permission set e1admin.amenu"
            - "lp user %admin permission set e1admin.invise"
            - "lp user %admin permission set e1admin.godmode"
            - "lp user %admin permission set e1admin.rewatch"
            - "lp user %admin permission set e1admin.adminzone"

            - "lp user %admin permission set e1admin.adminbonus"
            - "lp user %admin permission set e1admin.adminbonusall"

            - "lp user %admin permission set e1admin.smenu"
            -
            - "lp user %admin permission set e1admin.asecret"
            - "lp user %admin permission set e1admin.upadmin"
            - "lp user %admin permission set e1admin.deladmin"
            - "lp user %admin permission set e1admin.setadmin"
            - "lp user %admin permission set e1admin.downadmin"
            - "lp user %admin permission set e1admin.ablocklist"
            -
            # - | Здесь автоматически Вы сами можете настроить скины.
    autoSetSkins:
      enable: true
skinsInWeight:
        1: # | У меня - Это младший администратор. Смотрим AdminRanks..
          skin:
            - "skin set ADMIN %admin" # | ❗ У МЕНЯ СТОИТ SKINS RESTORER ВЫ МОЖЕТЕ ДОБАВИТЬ СВОЙ АДАПТЕР СКИНОВ ПО КОМАНДЕ.
        2: # | У меня - Это администратор. Смотрим AdminRanks..
          skin:
            - "skin set STAFF %admin" # | ❗ У МЕНЯ СТОИТ SKINS RESTORER ВЫ МОЖЕТЕ ДОБАВИТЬ СВОЙ АДАПТЕР СКИНОВ ПО КОМАНДЕ.
        3: # | У меня - Это старший администратор. Смотрим AdminRanks..
          skin:
            - "skin set CONSOLE %admin" # | ❗ У МЕНЯ СТОИТ SKINS RESTORER ВЫ МОЖЕТЕ ДОБАВИТЬ СВОЙ АДАПТЕР СКИНОВ ПО КОМАНДЕ.

  # - | Функция 3.0: Автоматическое удаление всего у администратора при его снятии.
  AutoDelAdmin:

    # - | Здесь автоматически Вы сами можете настроить снятие прав.
    autoDelPermissions:
      enable: true        # | Будет ли работать функция авто-удаления?
      permissionInWeight: # | Смотрите на weight своих рангов, у меня например они 1, 2, 3. Но так же, Вы можете добавить и 4, и 5, и 777, короче как то так.
        1: # | У меня - Это младший администратор. Смотрим AdminRanks..
          permissions:
            - "lp user %admin permission unset e1admin.admin"

            - "lp user %admin permission unset e1admin.arep"
            - "lp user %admin permission unset e1admin.aban"
            - "lp user %admin permission unset e1admin.amenu"
            - "lp user %admin permission unset e1admin.invise"
            - "lp user %admin permission unset e1admin.godmode"
            - "lp user %admin permission unset e1admin.rewatch"
            - "lp user %admin permission unset e1admin.adminzone"
        2: # | У меня - Это младший администратор. Смотрим AdminRanks..
          permissions:
            - "lp user %admin permission unset e1admin.admin"

            - "lp user %admin permission unset e1admin.arep"
            - "lp user %admin permission unset e1admin.aban"
            - "lp user %admin permission unset e1admin.amenu"
            - "lp user %admin permission unset e1admin.invise"
            - "lp user %admin permission unset e1admin.godmode"
            - "lp user %admin permission unset e1admin.rewatch"
            - "lp user %admin permission unset e1admin.adminzone"

            - "lp user %admin permission unset e1admin.adminbonus"
            - "lp user %admin permission unset e1admin.adminbonusall"
        3: # | У меня - Это младший администратор. Смотрим AdminRanks..
          permissions:
            - "lp user %admin permission unset e1admin.admin"
            - "lp user %admin permission unset e1admin.staff"

            - "lp user %admin permission unset e1admin.arep"
            - "lp user %admin permission unset e1admin.aban"
            - "lp user %admin permission unset e1admin.amenu"
            - "lp user %admin permission unset e1admin.invise"
            - "lp user %admin permission unset e1admin.godmode"
            - "lp user %admin permission unset e1admin.rewatch"
            - "lp user %admin permission unset e1admin.adminzone"

            - "lp user %admin permission unset e1admin.adminbonus"
            - "lp user %admin permission unset e1admin.adminbonusall"

            - "lp user %admin permission unset e1admin.smenu"
            - "lp user %admin permission unset e1admin.asecret"
            - "lp user %admin permission unset e1admin.upadmin"
            - "lp user %admin permission unset e1admin.setadmin"
            - "lp user %admin permission unset e1admin.deladmin"
            - "lp user %admin permission unset e1admin.downadmin"
            - "lp user %admin permission unset e1admin.ablocklist"

    # - | Здесь автоматически Вы сами можете настроить скины, а точнее их удаление.
    autoDelSkins:
      enable: true   # | Будет ли работать функция авто-удаления?
      skinsInWeight: # | Смотрите на weight своих рангов, у меня например они 1, 2, 3. Но так же, Вы можете добавить и 4, и 5, и 777, короче как то так.
        1: # | У меня - Это старший администратор. Смотрим AdminRanks..
          skin:
            - "skin clear %admin"
        2: # | У меня - Это старший администратор. Смотрим AdminRanks..
          skin:
            - "skin clear %admin"
        3: # | У меня - Это старший администратор. Смотрим AdminRanks..
          skin:
            - "skin clear %admin"

  # - | Новая функция 3.0: Триггер на слив, здесь Вы можете настроить параметры связанные по подозрению в сливе.
  Leak:
    enable: true # | Будет ли работать функция авто-удаления?
    LeakSound: "ENTITY_ENDER_DRAGON_DEATH" # | Звук, который будет воспроизводиться всей администрации при снятии админ прав. Ирония с падшим ангелом у которого отобрали все что он имел.
    LeakActions: # | Действия которые будут направлятся против сливщика.
      #      - "ban %leak 777y Подозрения в сливе админ-прав."
      - "kick %leak Подозрения в сливе админ-прав."

  BlackList:
    IPBlackForm:
      - "Замечен аккаунт в черном листе!"
      - "Кол-во аккаунтов в черном листе: %count"
      - "Причина: %reason"
      - "Никнейм: %admin"
      - "Занес: %staff"

  # Репортики | Связанные с игрой администрации и игроков, контрольные слова, статусы, бонусы и прочее.
  #  Здесь можно настроить GUI, авто-ответы на репорты, бонусы за репорты и т.д:
  Report:
    minReportLength: 3 # Репорт | Минимальное кол-во символов в репорте для администрации?
    reportMaxSize: 44 # Репорт | Сколько будет максимальное кол-во репортов до переполнения?

    # Репортики | Статусы, которые приобретают свою роль в базе и GUI.
    status_send: "&aОтправлен!"
    status_inJob: "&6В работе.."
    status_answered: "&cОтвечен."

    # Репортики | Слова, которые в репорте вызывают триггер emergencyRep, на который можно быстро отреагировать просто нажав на сообщение
    EmergencyReportSword:
      - "убивают"
      - "гриферят"
      - "читерят"

    # | https://minecraftsounds.com/
    # Репортики | Новый репорт, действия + звук для всей администрации?
    NewReport:
      sound: "entity.player.attack.knockback"
      reportMessage:
        - ""
        - "&7Внимание, поступил новый &cрепорт&7: &b%content&7. Отправитель: %player"
        - ""

    # | https://minecraftsounds.com/
        # Репортики | Срочный репорт, действия + звук для всей администрации?
    EmergencyReport:
      sound: "entity.player.levelup"
      emergencyMessage:
        - ""
        - "&4Внимание 🚨 &7| Обнаружен срочный репорт: &7%content"
        - ""

    # | https://minecraftsounds.com/
    # Репортики | Донат репорт, действия + звук для всей администрации?
    DonateReport:
      sound: "entity.ender_dragon.hurt"
      permission: "e1admin.bypass"
      donateMessage:
        - ""
        - "<gradient:#FD1AB6:#6554B6>Внимание❗ Репорт от VIP клиента! %content. Отправитель: %player</gradient>"
        - ""

    # Репортики | Функция при которой при нажатии на срочный репорт не нужно вводить форму для определенного администратора.
    # При /arep - Нужно указывать форму сервера на некоторых проектах. Пример: /arep Слежу за Вами.. // By E1m0
    # Здесь же - Форма автоматическая.
    AutoReport:
      enable: true
auto_answer: "&aСпешим к Вам на помощь!"

    # Репортики | Если навести на emergency report что будет показано?
    HoverReport:
      - "&aНажмите чтобы взять ❤"
      - "&cРепорт&7: %content"
      - "&aСтатус&7: %status"
      - ""
      - "&aОтправил&7: %player"
      - "&7Дата: %date"

Вы - сами создаете себе права которые нужны, и сами выдаете их как написано в README:

Система адаптивных Permissions:
ПООООЛНОСТЬЮ адаптивные к Вам Permissions которые ВЫ сами настриваете для каждого своего администратора и выдаете им именно те права - которые нужны именно им, у каждого администратора отличается род деятельности, по этому - я не стал ограничивать систему.


| А что по командам?:
Прошу на выбор:

COMMANDS:
ADMIN:
        1. /acc - Личный приватный пин-код администратора который выдает ему доступ к серверу;
        2. /are [Player] - Просмотр за игроком, телепортация к нему в инв + гм;
        3. /arep [Response] - Открыть меню репортов сразу с ответом;
        4. /ainv - Уйти в невидимку БЕЗ партиклов..;

💚 2.0: /admins - Посмотреть кто из администраторов находится на работе, а кто просто в игре, можно выдавать как за донат версию.
💚 2.0: /ahelp - Полный список сценариев, команд, подробного использования и ситуаций применения тех или иных возможностей.
💚 2.0: /aban [Admin] - Выдать админу блокировку возможностей его аккаунта в замен потери и своих возможностей.

💚 4.0: /am [Опционально: Player] - Открыть админ меню быстрых действий, для некоторых функций нужен игрок!
💚 4.0: /az - Телепортироватся в админ зону отдыха задающей стаффом сервера!
💚 4.0: /godmode - Выдать себе бессмертие от любых видов урона!

    STAFF:
        5. /aup [Admin] - Повысить администратора | Управляемая и гибкая система конфига которую Вы сами можете крутить как душе угодно - построенная лично под каждый Ваш сервер ❤️ - Сделает все за Вас.
        6. /adel [Admin] - Уволить администратора сервера | Администратор и его ПИН код триггером удаляются, а так же заносится спец. лог о снятии для ведения аудита Вашего сервера.
        7. /aset [Player] [Weight] - Поставить на пост Администратора игрока с определенным Weight | С удобной системой конфига которую Вы настраиваете сами и логикой плагина Вы можете это делать даже удаленно, скоро расскажу
        8. /adown [Admin] - Понизить администратора | Управляемая и гибкая система конфига которую Вы сами можете крутить как душе угодно - построенная лично под каждый Ваш сервер ❤️ - Сделает все за Вас.
        9. /abonus [Admin] [Sum] [Message] - Выдать бонус администраторУ | Когда мои админы хорошо работали я обычно выдавал им валюту но всегда не годовал что нет логов, теперь - Есть через админ систему, не частый случай но все равно есть.
        10. /abonusall [Sum] [Message] - Выдать бонус администраторАМ | Когда мои админы хорошо работали я обычно выдавал им валюту но всегда не годовал что нет логов, теперь - Есть через админ систему, не частый случай но все равно есть.
        11. /setsecret [Admin] [Code] - Выставить секретный код | Личный приватный 4-ех значный пин-код администратора который выставляет сотрудник STAFF (Главный админ, Тех/Разработчик и т.д)

💚 2.0: /aunban [Admin] - Снять админу блокировку возможностей его аккаунта

💚 3.0: /ablist [User] [Reason] - Переводится дословно как AdminBlackList - Позволяет Вам добавлять людей в ЧС сервера, чтобы дальше не напоротся на таких как он.
💚 3.0: /abdlist [User] [Reason] - Переводится дословно как AdminBlackDeleteList - Позволяет Вам убирать людей из ЧСА (Черный список администрации) сервера, чтобы дальше не напоротся на таких как он.

💚 4.0: /sm [arg1 (Player || sum)] [arg2 (Message || sum || weight || reason)] [arg3 (Message)]- Меню стафф администратора быстрых действий если например Я - забыл команду для повышения /sm Admin -> Повысить
    💚 Другая ситуация, я забыл как поставить на пост - /sm Admin 1
    💚 Другая ситуация, я забыл как снять с поста админа - /sm Admin Снят. Статья правил: 12 часть 4.

    CONSOLE:
        12. /cup - Повысить администратора, удаленно (Консоль/API) | Управляемая и гибкая система конфига которую Вы сами можете крутить как душе угодно - построенная лично под каждый Ваш сервер ❤️ - Сделает все за Вас.
        13. /cdel - Уволить администратора сервера, удаленно (Консоль/API) | Администратор и его ПИН код триггером удаляются, а так же заносится спец. лог о снятии для ведения аудита Вашего сервера.
        14. /cdown - Понизить администратора, удаленно (Консоль/API) | Управляемая и гибкая система конфига которую Вы сами можете крутить как душе угодно - построенная лично под каждый Ваш сервер ❤️ - Сделает все за Вас.
        15. /csetadmin - Поставить на пост Администратора игрока с определенным Weight, удаленно (Консоль/API) | Как и обещал, можно делать через запросы RCON с специально выделенным UUID для понимания откуда пришел запрос, UUID плагина: "77777777-7777-7777-7777-777777777777"
        16. /csetsecret - Выставить секретный код, удаленно (Консоль/API) | Личный приватный 4-ех значный пин-код администратора который выставляет сотрудник STAFF (Главный админ, Тех/Разработчик и т.д)

💚 2.0: /cgivebonus [Admin] - Выдать администраторУ премию, удаленно (Консоль/API) | Когда мои админы хорошо работали я обычно выдавал им валюту но всегда не годовал, что нет логов, теперь есть даже через консоль!
💚 2.0: /cgivebonusall - Выдать всем администраторам премию, удаленно (Консоль/API) | Когда мои админы хорошо работали я обычно выдавал им валюту но всегда не годовал, что нет логов, теперь есть даже через консоль!

💚 3.0: /cban [Admin] - Позволяет выдать блокировку админ-возможностей прямо в консоли, это особенно удобно когда нужно решить проблему быстро.
💚 3.0: /cunban [Admin] - Позволяет снять блокировку админ-возможностей прямо в консоли, это особенно удобно когда нужно решить проблему быстро.

💚 4.0: /cblist [Admin] [Reason] - Admin Black List расшифровывается как добавление администратора в ЧСА - Черный Список Администрации. | КОНСОЛЬ

💚 4.0: /cbdlist [Admin] [Reason] - Admin Delete Black List расшифровывается как удаление администратора из ЧСА - Черный Список Администрации. | КОНСОЛЬ
| А что по API?:
Прошу посмотреть на README в раздел архитектуры:
🧑‍💻 E1m0dev: На деле - Систем куча, плагин старается и выдерживать архитектуру цепей по типу:
❓ | Архитектура ЦЕПЕЙ:
Для обычных команд: PLAYER -> COMMAND (Адаптер) -> SERVICE (Принятие решений, обработка абстракций) -> REPOSITORY (Принятие факта, ведение диалога с базой данных) -> DAO (Структурирование и подготовка | Доступ) -> DATABASE (Хранение информации | MAIN PLUGIN STATE, там - только факты системы);
Для например репорта: PLAYER -> GUI -> CONTROLLER -> SERVICE -> REPOSITORY -> DAO -> DATABASE -> EVENT -> LISTENER -> ACTIONS
А если это emergency? - PLAYER -> COMMAND -> COMMAND-CONTROLLER -> REPOSITORYDAO -> DATABASE -> EVENT -> LISTENER -> ACTIONS
В пин-коде - тоже самое: PLAYER -> GUI -> CONTROLLER -> SERVICE -> REPOSITORY -> DAO -> DATABASE -> EVENT -> LISTENER -> ACTIONS


‼️| Архитектура*:
Мои:
Главные управляющие абстракции: API;
Главные точки входа: COMMANDS;
Обработчики логики: SERVICE;
Ведущие диалог с базой: REPOSITORY;
Адаптирующиеся под условия: DAO;
Хранящие значения: DATABASE;
Вызывающиеся: Events;
Слушающие: LISTENERS;
Хранящие: STATE;
Подсказывающие: COMPLETERS;
Помогающие: UTILS;
Регулируемые: CONFIGS;

API:
Есть 4 слоя абстракции плагина:
GUI;
REPO;
SERVICE;
UTILS;

GUI:
ReportGuiAPI: Позволяет взаимодействовать с репортами из вне, то есть из другого плагина например.
Пример: Сейчас там метод: openReportGUI | Позволяет открывать меню сразу с сообщением из другого плагина.

SecretCodeGuiAPI: Позволяет взаимодействовать с репортами из вне, то есть из другого плагина например.
Пример: Сейчас там метод: openReportGUI | Позволяет открывать меню сразу с сообщением из другого плагина.

REPO:
GUI:
ReportSystemRepositoryAPI: Отвечает за репорты а точнее - внутри системы.
Пример: В нем есть метод на данный момент как: gameReportSend, именно он распределяет обязанности транспортировки моего DAO запроса по цепи после контроллера и сервиса, то есть он - исходит от запроса системы по прихоти клиента - по этому и System.

SecretCodeRepositoryAPI: Отвечает за обработку пин-кодов для администрации в GUI, то есть он тоже системный и исходит от контроллера. Почему не SecretCodeSystemRepositoryAPI? Название получилось бы слишком длинным и выходило за рамки приличия, по этому я решил оставить как есть.
Пример: В нем есть методы управления секретными кодами на момент создания такие как: staffSetSecretCode, systemDeleteAdmin, systemSetSecretCode, getSecretCode, все они - расписаны внутри.

PLUGIN:
GameRepositoryAPI: Отвечает за все что связанно в игре с администратором и базой данных его игровой в общем то процесс, репорты != игровая логика, это уже отдельная система.
Пример: Если когда нибудь понадобится логировать rewatch logs администратора -> это пойдет туда. Сейчас я считаю такое небольшим перегрузом, по этому он сейчас пустует, НО, существует для будущих обновлений.

StaffRepositoryAPI: Абсолютно все что связанно с администратором и его старшим.
Пример: Повышения, понижения, удаления, постановление, бонусы и все, все, все, но тут передача с базой через DAO

SystemRepositoryAPI: Системы которые связаны с системой администрации.
Пример: Посмотреть зарплату игрока, его префикс, его уровень админки или состоит ли он вообще в администрации?

Service:
GUI:
ReportSystemServiceAPI: Отвечает за взаимодейсвтие между системами
Пример: В нем есть метод на данный момент как: clickToReport. Он передает данные из GUI контроллера в сервис для обработки бизнес логики самого Backend.

SecretCodeServiceAPI: Отвечает за клики и логику, за нее отвечает не сколь контроллер сколь сам сервис, потому что именно он хранитель бизнес логики, а контроллер - удобный адаптер
Пример: В нем есть методы "Дистанционного доступа" к меню SecretCode: oneStepHandler, который можно вызвать игроку сразу же с первой цифрой кода которую можно узнать вторым методом getInputCode, продолжая дальше идти по цепи логики.

PLUGIN:
ConsoleServiceAPI: Отвечает за все что связанно в игре с администратором.
Пример: Все взаимодействия а точнее обработка логики связанные с консолью.

GameServiceAPI: Отвечает за все что связанно в игре с администратором связанный с игровыми взаимодействиями включая обработку логики, его игровой в общем то процесс, репорты != игровая логика, это уже отдельная система но она имеет место в самом администраторе, то есть это его и игра и задача, по этому репорты обычно в двух местах в отдельных ReportService и в GameService
Пример: Реватч, невидимка, репорты, и прочие функции.

StaffServiceAPI: Абсолютно все что связанно с администратором и его старшим.
Пример: Повышения, понижения, удаления, постановление, бонусы и все, все, все.

SystemServiceAPI: Системы контроллеров систем
Пример: handleReportAccept, это системный контроллер точки входа в команду: ReportAcceptController.

UTILS:
PLUGIN:
PermissionsManagerAPI: Отвечает естевственно за права администратора в игре.
Пример: checkSecretCodeAccess буквально вопрос: Есть ли у администратора доступ к админке?

GameServiceAPI: Отвечает за все что связанно в игре с администратором связанный с игровыми взаимодействиями включая обработку логики, его игровой в общем то процесс, репорты != игровая логика, это уже отдельная система но она имеет место в самом администраторе, то есть это его и игра и задача, по этому репорты обычно в двух местах в отдельных ReportService и в GameService
Пример: Повышения, понижения, удаления, постановление, бонусы и все, все, все. Но тут передача логики и ее обработки через внутренности

А теперь по самим назначениям!

COMMANDS:
Каждые из команд разделены так же на свои отделы ответственности:
Admin -> Команды для администрации.
Staff -> Команды для обычных игроков.
Player -> Команды для обычных игроков.
System -> Системные команды больше контроллеры и отправные точки СИСТЕМЫ
Console -> Контрольные точки которые можно задавать из вне не заходя в игру по средствам самих точек или что самое интересное: API - А это уже сайты, веб, приложения и прочее.

Admin:
AHelpCommand: Адаптер точки логики отправки администратору списка помощи.
AMenuCommand: Точка перехода в открытие быстрого меню выбора администрации в виде GUI.
AccessCommand: Первая точка входа. Без нее админ - просто игрок, без ввода секретного пароля он ничем не отличается от обычного игрока и все права у него заблокированы.
ReportCommand: Команда-GUI. Открывает свод репортов которые появились за последнее время.
ABlockCommand: Заблокировать доступ адмнистратору в случае сливов с его стороны, но блокируется доступ и тому кто использует команду!
RewatchCommand: Точка слежки. Команда позволяет следить за игроками от 3-его лица.
InvisibilityCommand: Команда для использования спец невидимости, прямо "Из коробки", никаких партиклов и эффектов, бесконечная невидимка и все тут..

Staff:
AdminDelBlackListCommand: Удалить администратора из черного списка администрации.
AdminAddBlackListCommand: Добавить администратора в черный список администрации.
AdminSetSecretCode: Установить пин-код администратору если его еще нет в базе.
AStaffMenuCommand: Открыть Staff меню (Много возможных адаптивных аргументов)
AdminDeleteCommand: Уволить администратора от лица стафф сотрудника сервера.
AdminBonusCommand: Выдать бонус ОДНОМУ администратору который указан внутри.
AdminDownCommand: Понизить администратора от лица стафф сотрудника сервера.
AdminSetCommand: Поставить администратора от лица стафф сотрудника сервера.
AdminUnBanCommand: Снять блокировку с администратора от лица стафф сервера.
AdminUpCommand: Повысить в доходяги администратора от лица стафф сотрудника.

Player:
ThanksCommand: Позволяет игроку, отправить раз в определенное кол-во времени, админский thanks который может являтся внутренней валютой
AdminsCommand: Позволяет увидеть сколько администраторов на сервере, кто они, на месте или нет.
PlayerReportCommand: Позволяет отправить новый репорт.

System:
ReportAcceptController: Обычный контроллер arepaccept, который перехватывает репорт и начинает работать через сервис, то есть обычная прокладка которая слушает как Listener.

Console:
ConsoleGiveBonusAllCommand: Выдать бонус ВСЕМ администраторАМ от лица консоли сервера.
ConsoleDelBlackListCommand: Удалить из черного списка администрации от лица консоли сервера.
ConsoleAddBlackListCommand: Добавить в черный список администрации от лица консоли сервера.
ConsoleUnBanAdminCommand: Разблокировать возможности администратору в случае опровержения слива админки.
ConsoleGiveBonusCommand: Выдать бонус администратораУ от лица консоли.
ConsoleSetSecretCommand: Установить пин-код администратору от лица API если его еще нет в базе.
ConsoleDownAdminCommand: Понизить администратора от лица консоли сервера.
ConsoleBanAdminCommand: Занести админа в список потенциального слива, или просто отобрать возможности.
ConsoleDelAdminCommand: Уволить администратора от лица консоли сервера.
ConsoleSetAdminCommand: Поставить администратора от лица консоли сервера.
ConsoleUpAdminCommand: Повысить администратора от лица консоли сервера.

SERVICE:
Сервисы главные обработчики логики, не важно это бизнес логика или внутриигровая, именно на них сгружена ответственность думать и принимать решения.
Есть несколько основных сервисов:

GUI:
ReportSystemService: Некоторые действия которые связаны с репортами, только некоторые! Которые не касаются гейма но касаются системы по этому ReportSYSTEMService
SecretCodeService: Исполнение действий из меню сразу в "Just In Time" почти никогда не нужно oneStepHandler, но он заполняет цепь, хотя скорее всего я его уберу.

PLUGIN:
AdminsStaffService: Выполнение все что связано с: Стафф -> Админ. Связан с: StaffServiceAPI
AdminSystemService: Выполнение все что связано с: Система -> Система Связан с: SystemServiceAPI
AdminGameService: Выполнение все что связано с: Админ -> Игра. Связан с: GameServiceAPI
ConsoleService: Выполнение все что связано с: Консоль -> Админ. Связан с: ConsoleServiceAPI

REPOSITORY:
Если сервисы у меня принимают решения - репозитории ведут диалог с базой и записывают через DAO сразу в базу окончательные заключения логики если значение прошло все проверки Service.
Есть несколько основных репо как и сервисов:

GUI:
ReportSystemRepository: gameReportSend -> Как главный из методов позволяет отправить факт о закрытом репорте, соеденен с ReportDAO.
SecretCodeRepositoryAPI: SET, SETSYSTEM, GET, RESET, все как у людей, отправят как захочешь, легко подстраиваются связаны с SecretCodeDAO

PLUGIN:
AdminSystemRepository: Логирование фактов по обычным системным транзакциям по типу adminPay или handleReportAccept.
AdminStaffRepository: Логирование фактов по взаимодействию с составом, set, del, up и так далее по накладной.
AdminGameRepository: Факты системы для логирования ДЕЙСТВИЙ администратора в ИГРЕ а не в системе.

DAO:
Мои обработчики обьектов в базе данных, очень способные и полезные при работе цепь POINT-SERVICE-REPO-DAO-DATA.

PLUGIN:
SecretCodeDAO: Работа с пин кодами администрации;
AdminsDAO: Работа с администраторами в Базе Данных;
ReportDAO: Работа с репортами в Базе Данных;

BonusDAO: Работа с логированием бонусов а Базе Данных;
BlockDAO: Работа с блокировками возможностей админов;

DATABASE:
Без базы данных очень сложно держать структуру а с ней в плагине я использовал и кэширование и трансфер в базу.

PLUGIN:
DatabaseSource: Установщик связи с драйверами, HickariCP, HickariDataSource и прочим через конфиг и JDBC ну или коннектор базы данных.
DatabaseManager: На основе DatabaseSource, создает и управляет таблицами в установленной связью базе данных.

EVENTS:
Личные и приватные ивенты плагина которые очень помогают в разгрузке сервисов и упрощении кода в сервисах перекладывая ответственность на распределяющую Event прокладку Listener.

E1m0:
AdminComplimentEvent: Когда администртатора получает /thanks от игрока -> Вызвается ивент.
AdminAccessEvent: Когда администратор регистрируется в системе -> Вызвается ивент.
AdminLeakEvent: Когда администратор пытается в действия не по рангу (Слив) -> Вызвается ивент.
AdminSetEvent: Факт: Был поставлен новый администратор -> Вызвается ивент.
AdminDetEvent: Факт: Был снят администратор -> Вызвается ивент.

LISTENERS:
Подразделены на несколько слоев ответственности чтобы не путать холодное с теплым:

Bukkit:
GodModeListener: Когда игрок получает урон, сразу идет проверка на то существует ли он в списке и режиме бога и в случае - урон по администратору полностью - отменяется.
JoinListener: Когда игрок заходит на сервер, там сразу проверяется статус администратора, его сессии, права, т.д, можно сделать систему синхронизации API для защиты.
QuitListener: Когда игрок выходит из сервера, там если он админ - удаляется его State, AdminSession, и отбираются права администратора.

E1m0:
AdminComplimentListener: Когда администратор получает похвалу от игроков, игрока и т.д, срабатывает слушатель, триггер.
AdminAccessListener: Когда администратор подтверждает себя как полноправного владельца прав, срабатывает триггер.
AdminLeakListener: Слушатель и триггер события о сливе админ-прав, или использования прав не по рангу.
AdminSetListener: Слушатель события о факте постановления нового администратора на пост.
AdminDelListener: Слушатель события о факте снятия администратора с его поста.

STATE:
Мои не наглядные состояния, есть так же несколько типов хэширования данных в системе:
Admin;
Report;
Session;
SecretCode;


Admin:
Admin: Record с snapshot immutable состоянием администратора который позже mutable менеджером перетекает.
AdminManager: Помогает справлятся с состоянием Admin через mutable рычаги виксируя diff изменения, прямо как в React

BlackList:
BlackListState: Для базового взаимодействия с БД сервера создан некий request данных дампа с кэша.

Session:
AdminSession: А именно сюда и перетекает STATE состояние через mutable manager;
AdminSessionManager: А этим констракт методом управляется состояние, для JoinListener && QuitListener у AdminSessionManager есть методы: join и quit, которые заполняют и очищают кэш память админ сессий.

Report:
Report: Report а вот это уже - не постоянное состояние, и оно не может быть immutable, хоть он и имеет mutable состояние он все равно живет от силы 20 секунд и умирает передаваясь уже в DAO и в Database так что состояние не долговечное а значит надежное

SecretCode:
SecretCodeState: Тоже вроде понятно, тот же mutable state class который управляет цепью порядка SecretCode, да возможно не так "профессионально" через сеттеры состояний mutable Manager в Immutable состоянии State но система все равно надежна.
SecretCodeManager: Управление состоянием разрешений, выдать когда нужно, забрать когда не нужно, проверить когда спросят - красота.

COMPLETERS:
Обычный комплитер, он у меня один много делать не стал а то утонул бы в папках

MainTabCompleter: Главный помощник написания команд.

UTILS:
Без них было бы сложно что то смастерить, есть всего три вида:
Color;
Messages;
Permissions;

Color:
E1m0Color: Он если честно вообще не мой, я его выкрал у какого то индуса по но он работает.

Message:
E1m0Sender: Вот это уже мое, криво - косо, но сообщения отправляет как я хочу, плейсы поддерживает как я скажу, сильно не хамит не кусается и что главное - работает.

Permissions:
E1m0Permissions: Тоже мое творение checkSecretCodeAccess специально был создан для работы с Access.
  • 1783189990063.png
    1783189990063.png
    186,1 КБ · Просмотры: 142
  • 1783190272420.png
    1783190272420.png
    446,3 КБ · Просмотры: 139
  • 1783190421761.png
    1783190421761.png
    290,8 КБ · Просмотры: 138

Автор

E1m0dev

Еще ресурсы от E1m0dev

🌉 E1m0Night - Крисивый пропуск ночи | 🔬 ELM Laboratories - За нами будущее ❗
🌉 E1m0Night - Крисивый пропуск ночи | 🔬 ELM Laboratories - За нами будущее ❗
Маленький, легенький плагин на красивый пропуск скучной ночки 🛌
🗣️ E1m0Ch1t | Плагин на чат и общение с игроками. Ядро будущей социализации ❤️‍🔥
🗣️ E1m0Ch1t | Плагин на чат и общение с игроками. Ядро будущей социализации ❤️‍🔥
Плагин на простое ядро для многофункциональной системы чатов.

Последние отзывы

wwerkanww
wwerkanww
5,00 звёзд
Версия: 4.0-RELEASE
целую руки автору
E1m0dev
E1m0dev
Огромное спасибо
justpremadeaccount
justpremadeaccount
5,00 звёзд
Версия: v1.1-BETA
Достаточно годный инструмент, реально может быть полезен как администраторам, так и игрокам.
E1m0dev
E1m0dev
Спасибо 🩷
ВерхНиз