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

Плагин [MISC] xRank v1.3.1 | Простые ранги по времени (1.12+)

imDaniX

Активный участник
Пользователь
Баллы
96
Имя в Minecraft
imDaniX
Скачать https://github.com/imDaniX/xRank/releases/latest
Исходный код https://github.com/imDaniX/xRank

Описание​
Небольшой плагин, добавляющий на сервер ранги, выдающиеся по времени (автоматически или по вводу команды от лица игрока). Долгое время был полу-приватным (просто лежал код на гитхабе), но решил поправить некоторые грубые края в коде, да выложить.

Предполагается, что админ создаст группы с нужными правами:
xrank.rank.ранг - игрок сможет присоединиться к рангу.
xrank.rank.ранг.got - игрок уже имеет данный ранг.
Игрок Valera2000 в группе default. В группе default есть право xrank.rank.newbie. Когда Valera2000 набирает Y часов игры, его автоматически перемещает в группу newbie, в которой имеется право xrank.rank.newbie.got, и право следующего ранга, xrank.rank.user.
С технической стороны реализации плагина, можно было бы обойтись одним правом, и давать негативное право при получении ранга, но по-моему, это менее интуитивно. Возможно, в будущем сделаю для этого опцию в конфиге.

Дефолтный конфиг настроен на лестницу групп LuckPerms.

Для основных команд используется право xrank.command. Все сообщения плагина настраиваемы.
/xrank help - Список команд.
/xrank info - Информация о рангах в целом.
/xrank info [ранг] - Информация о конкретном ранге.
/xrank [ранг] - Попытаться повыситься в ранге.
/xrank reload - Перезагрузить плагин. Право xrank.reload.

v1.3.1
Паблик релиз
 
Последнее редактирование:
Здравствуйте. Не могли бы Вы, пожалуйста, рассказать немного больше о настройке вашего плагина и о том, как он работает, когда несколько серверов подключены через прокси? Как и в случае с LuckPerms через базу данных?
Когда установлен, LuckPerms работает глобально для всех плагинов, которые проверяют права игрока. Таким образом - да, они точно также берутся из его БД.
Я также не совсем понял, где прописать эти права в LuckPerms для какой-то конкретной группы?(ранга)
upload_2023-4-29_23-28-44-png.64878
Допустим, у нас есть такая иерархия групп (рангов): default > special > plus > mega.
В таком случае права группам следует выдать таким образом:

default:
  • xrank.rank.special
special:
  • xrank.rank.special.got
  • xrank.rank.plus
plus:
  • xrank.rank.plus.got
  • xrank.rank.mega
mega:
  • xrank.rank.mega.got
 
Когда установлен, LuckPerms работает глобально для всех плагинов, которые проверяют права игрока. Таким образом - да, они точно также берутся из его БД.

Допустим, у нас есть такая иерархия групп (рангов): default > special > plus > mega.
В таком случае права группам следует выдать таким образом:

default:
  • xrank.rank.special
special:
  • xrank.rank.special.got
  • xrank.rank.plus
plus:
  • xrank.rank.plus.got
  • xrank.rank.mega
mega:
  • xrank.rank.mega.got
Отличный плагин! Большое спасибо, что разжевали принцип его работы)
 
Отличный плагин! Большое спасибо, что разжевали принцип его работы)
Та не за что. Сам виноват, что описание у плагина недостаточно внятное вышло - дополню попозже.
 
*проблема решена
 

Вложения:

  • новичок.png
    новичок.png
    Размер файла
    39,6 КБ
    Просмотров
    18
  • 1-ранг.png
    1-ранг.png
    Размер файла
    48,2 КБ
    Просмотров
    14
  • 2-ранг.png
    2-ранг.png
    Размер файла
    42,5 КБ
    Просмотров
    12
  • 3-ранг.png
    3-ранг.png
    Размер файла
    37,3 КБ
    Просмотров
    12
  • плейсхолдер.png
    плейсхолдер.png
    Размер файла
    3,8 КБ
    Просмотров
    15
  • плейсхолдер-2(TAB-scoreboard).png
    плейсхолдер-2(TAB-scoreboard).png
    Размер файла
    3,3 КБ
    Просмотров
    15
  • время с минусом.png
    время с минусом.png
    Размер файла
    57,2 КБ
    Просмотров
    15
Последнее редактирование:
Привет. Пробовал настроить этот плагин и вроде все правильно, а работать не хочет. По истечению определенного времени заданного в конфиге (ничего не происходит). Для теста создал несколько рангов и, когда выставляю время допустим 10 минут, то время начинает писать с минусом. Буду рад, если поможете разобраться в проблеме. К проблеме это не особо относится, но плейсхолдер от LuckPerms для отображения группы с определенного трека почему-то тоже не совсем работает, мб для этого тоже есть какое-то решение)

Код:
ranks:
  # xrank.rank.newbie - право на получение ранга
  # xrank.rank.newbie.got - право, которое означает, что ранг уже получен
  newbie:
    # Количество минут до получения ранга
    minutes: 2
    # true С момента входа игрок
    # false Сколько игрок наиграл
    from-join: true
    # "Красивое" название ранга. Можно на русском
    name: Новичок
    # Описание того, что позволяет ранг
    description:
      - '&aВы больше не новичок!'
    # true Игрок получит ранг автоматически при получении ранга
    # false Игрока попросят написать команду
    auto: true
    # true Показывает объявление всем в чате
    # false Только игрок будет видеть сообщение о повышении
    broadcast: false
    # Команды, которые будут введены с консоли, при повышении ранга игрока. %player заменится на ник игрока
    commands:
      - lp user %player promote ranks
      - eco give %player 50
  # Право xrank.rank.usual
  usual:
    minutes: 2960
    from-join: false
    name: 1-ранг
    description:
      - '&6Вы больше не будете новичком! Просто введите /rank usual'
    auto: false
    broadcast: true
    commands:
      - lp user %player promote ranks
      - eco give %player 1000
  profi:
    minutes: 3960
    from-join: false
    name: 2-ранг
    description:
      - '&6Вы больше не будете новичком! Просто введите /rank profi'
    auto: false
    broadcast: true
    commands:
      - lp user %player promote ranks
      - eco give %player 1000
  master:
    minutes: 4960
    from-join: false
    name: 3-ранг
    description:
      - '&6Вы больше не будете новичком! Просто введите /rank master'
    auto: false
    broadcast: true
    commands:
      - lp user %player promote ranks
      - eco give %player 1000
Не используйте другие языки, кроме английского, при работе с компьютером.
Измените идентификаторы групп на латинские.
Чтобы заработал плейсхолдер, достаточно убрать <> из него: %luckperms_current_group_on_track_ranks%.
 
Не используйте другие языки, кроме английского, при работе с компьютером.
Измените идентификаторы групп на латинские.
Чтобы заработал плейсхолдер, достаточно убрать <> из него: %luckperms_current_group_on_track_ranks%.
Спасибо, плейсхолдер теперь работает. Про кириллицу знаю, но не заморачивался по этому поводу, вроде и так работало, так что значения не придал)
За помощь еще раз спасибо! И автору плагина большое спасибо за этот прекрасный плагин
 
Последнее редактирование:
С плагином что-то явно не так. Какое-то время не обращал внимания, но все таки непонятно как его нужно настроить, чтобы он работал правильно? Либо у меня с математикой не так что-то либо с плагином. Какой промежуток времени задать, чтобы он в минус не уходил?
Код:
ranks:
  # xrank.rank.newbie - право на получение ранга
  # xrank.rank.newbie.got - право, которое означает, что ранг уже получен
  newbie:
    # Количество минут до получения ранга
    minutes: 1960
    # true С момента входа игрок
    # false Сколько игрок наиграл
    from-join: false
    # "Красивое" название ранга. Можно на русском
    name: Новичок
    # Описание того, что позволяет ранг
    description:
      - '&aВы больше не новичок!'
    # true Игрок получит ранг автоматически при получении ранга
    # false Игрока попросят написать команду
    auto: true
    # true Показывает объявление всем в чате
    # false Только игрок будет видеть сообщение о повышении
    broadcast: false
    # Команды, которые будут введены с консоли, при повышении ранга игрока. %player заменится на ник игрока
    commands:
      - lp user %player promote ranks
      - eco give %player 100
  # Право xrank.rank.elementary
  elementary:
    minutes: 7960
    from-join: false
    name: 1-ранг
    description:
      - '&6Вы можете повысить ранг! Просто введите /rank elementary'
    auto: true
    broadcast: true
    commands:
      - lp user %player promote ranks
      - eco give %player 1000
  skilled:
    minutes: 15960
    from-join: false
    name: 2-ранг
    description:
      - '&6Вы можете повысить ранг! Просто введите /rank skilled'
    auto: true
    broadcast: true
    commands:
      - lp user %player promote ranks
      - eco give %player 2000
  expert:
    minutes: 60960
    from-join: false
    name: 3-ранг
    description:
      - '&6Вы можете повысить ранг! Просто введите /rank expert'
    auto: true
    broadcast: true
    commands:
      - lp user %player promote ranks
      - eco give %player 3000
  veteran:
    minutes: 115920
    from-join: true
    name: 4-ранг
    description:
      - '&6Вы можете повысить ранг! Просто введите /rank veteran'
    auto: true
    broadcast: true
    commands:
      - lp user %player promote ranks
      - eco give %player 4000
  old:
    minutes: 233600
    from-join: false
    name: 5-ранг
    description:
      - '&6Вы можете повысить ранг! Просто введите /rank old'
    auto: true
    broadcast: true
    commands:
      - lp user %player promote ranks
      - eco give %player 1000

upload_2023-12-3_21-18-38.png
 
С плагином что-то явно не так. Какое-то время не обращал внимания, но все таки непонятно как его нужно настроить, чтобы он работал правильно? Либо у меня с математикой не так что-то либо с плагином. Какой промежуток времени задать, чтобы он в минус не уходил?
Код:
ranks:
  # xrank.rank.newbie - право на получение ранга
  # xrank.rank.newbie.got - право, которое означает, что ранг уже получен
  newbie:
    # Количество минут до получения ранга
    minutes: 1960
    # true С момента входа игрок
    # false Сколько игрок наиграл
    from-join: false
    # "Красивое" название ранга. Можно на русском
    name: Новичок
    # Описание того, что позволяет ранг
    description:
      - '&aВы больше не новичок!'
    # true Игрок получит ранг автоматически при получении ранга
    # false Игрока попросят написать команду
    auto: true
    # true Показывает объявление всем в чате
    # false Только игрок будет видеть сообщение о повышении
    broadcast: false
    # Команды, которые будут введены с консоли, при повышении ранга игрока. %player заменится на ник игрока
    commands:
      - lp user %player promote ranks
      - eco give %player 100
  # Право xrank.rank.elementary
  elementary:
    minutes: 7960
    from-join: false
    name: 1-ранг
    description:
      - '&6Вы можете повысить ранг! Просто введите /rank elementary'
    auto: true
    broadcast: true
    commands:
      - lp user %player promote ranks
      - eco give %player 1000
  skilled:
    minutes: 15960
    from-join: false
    name: 2-ранг
    description:
      - '&6Вы можете повысить ранг! Просто введите /rank skilled'
    auto: true
    broadcast: true
    commands:
      - lp user %player promote ranks
      - eco give %player 2000
  expert:
    minutes: 60960
    from-join: false
    name: 3-ранг
    description:
      - '&6Вы можете повысить ранг! Просто введите /rank expert'
    auto: true
    broadcast: true
    commands:
      - lp user %player promote ranks
      - eco give %player 3000
  veteran:
    minutes: 115920
    from-join: true
    name: 4-ранг
    description:
      - '&6Вы можете повысить ранг! Просто введите /rank veteran'
    auto: true
    broadcast: true
    commands:
      - lp user %player promote ranks
      - eco give %player 4000
  old:
    minutes: 233600
    from-join: false
    name: 5-ранг
    description:
      - '&6Вы можете повысить ранг! Просто введите /rank old'
    auto: true
    broadcast: true
    commands:
      - lp user %player promote ranks
      - eco give %player 1000

Посмотреть вложение 66269
Число где-то переполняется, видимо... Перепишу на неделе. На всякий случай - какая версия у сервера?
 
Число где-то переполняется, видимо... Перепишу на неделе. На всякий случай - какая версия у сервера?
Привет. Подскажи, пожалуйста, получилось обновить или времени совсем нет?
 
Привет. Подскажи, пожалуйста, получилось обновить или времени совсем нет?
Правки делал, но пока просто лежало у меня. Времени на тестирование пока не было, поэтому не обновлял. Если есть возможность и желание - можешь потестить, последнюю сборку закинул в GH Actions (для скачивания требуется авторизация).
Добавил больше вариантов сообщений, вот эти два теперь в messages:
Код:
# Сообщение, если у игрока нет прав на этот ранг
no-access: "&9&lРанги> &cУ вас нет доступа к рангу &e%rank&c!"
# Сообщение, если у игрока уже есть ранг
already-got: "&9&lРанги> &cУ вас уже есть ранг &3%rank&c!"
Ну, и пара правок с выводом времени были.

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

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

Назад
Верх