Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: This feature may not be available in some browsers.
@Override
public String onRequest(OfflinePlayer player, @NotNull String spigotmcru) {
User user = LuckPermsProvider.get().getUserManager().getUser(Objects.requireNonNull(player.getName()));
for (Node node : user.getNodes()) {
if (node.getKey().startsWith("group.") && Objects.nonNull(node.getExpiryDuration())) {
return node.getExpiryDuration().toDays() + "д.";
}
else if (node.getKey().startsWith("group.") && !Objects.nonNull(node.getExpiryDuration())) {
return "∞";
}
}
return null;
}
Добрый день.
Плейсхолдеры как раз таки помогают
Вам может помочь данный expansion:Авторизуйтесь для просмотра ссылок.
почитал об этом плагине, но так и не понял, как я с помощью него смогу изменить выводДобрый день.
Плейсхолдеры как раз таки помогают
Вам может помочь данный expansion:Авторизуйтесь для просмотра ссылок.
Спасибо, попробую разобраться
Объединено
почитал об этом плагине, но так и не понял, как я с помощью него смогу изменить вывод
времени доната
Объединено
Вам необходимо зарегистрироваться для просмотра изображений-вложенийВам необходимо зарегистрироваться для просмотра изображений-вложенийВам необходимо зарегистрироваться для просмотра изображений-вложений
@Override
public String onRequest(OfflinePlayer player, @NotNull String group) {
Set<Group> groups = LuckPermsProvider.get().getGroupManager().getLoadedGroups();
for (Group grp : groups) {
if (grp.getName().equals(group)) {
User user = LuckPermsProvider.get().getUserManager().getUser(Objects.requireNonNull(player.getName()));
assert user != null;
for (Node node : user.getNodes()) {
if (node.getKey().equals("group." + group) && Objects.nonNull(node.getExpiryDuration())) {
return Long.toString(node.getExpiryDuration().toDays());
}
}
return "Группа не найдена!";
}
}
return null;
Доброе утро.
Прошу прощения за бесполезный совет.
Если этот плагин не помогает, хотя, видимо он и не поможет, т.к. принимает только числа, то выходом является лишь написание expansion'a.
Я могу Вам с этим помочь. В ближайшее время пришлю сюда готовое решение, как только напишу его.
Объединено
Написал expansion.
Загрузите его по пути /plugins/PlaceholderAPI/expansions
После чего пропишите команду /papi register Expansion-expirytime.jar или перезагрузите сервер.
Используйте как %expirytime_<группа>%
Плейсхолдер возвращает количество дней до истечения привилегии.
Рад был помочь!
Java:@Override public String onRequest(OfflinePlayer player, @NotNull String group) { Set<Group> groups = LuckPermsProvider.get().getGroupManager().getLoadedGroups(); for (Group grp : groups) { if (grp.getName().equals(group)) { User user = LuckPermsProvider.get().getUserManager().getUser(Objects.requireNonNull(player.getName())); assert user != null; for (Node node : user.getNodes()) { if (node.getKey().equals("group." + group) && Objects.nonNull(node.getExpiryDuration())) { return Long.toString(node.getExpiryDuration().toDays()); } } return "Группа не найдена!"; } } return null;
Сегодня, попробую, обязательно отвечу?
Объединено
Попробовал, всё работает, но мне же нужно это для всех привилегий вывести) А если вставлять плейсхолдер для всех привилегий, то в табе соответственно будет написано, группа не найдена
tab premiumКакой плагин используете для скорборда?
tab premium
scoreboards:
lord:
display-condition: "permission:tab.scoreboard.lord"
title: "{#D86EEE}&lСервер &f— &7&lМеню игрока"
lines:
- ""
- "{#D86EEE}₪ &7&l%player%"
- "{#D86EEE}₪ &7&lБаланс: {#D86EEE}%cmi_user_balance% &bалм."
- ""
- "{#D86EEE}₪ &7&lРанг: %luckperms_prefix%"
- "{#D86EEE}₪ &7&lИстекает через: {#D86EEE}%expirytime_lord%"
- ""
- "{#D86EEE}₪ &7&lВремя: {#D86EEE}%server_time_dd.MM | HH:mm% {#D86EEE}%animation:krutilka%"
- ""
- "{#D86EEE}₪ &7&lСкрыть это окно: {#D86EEE}&l/sb"
player:
display-condition: "permission:tab.scoreboard.player"
title: "{#D86EEE}&lСервер &f— &7&lМеню игрока"
lines:
- ""
- "{#D86EEE}₪ &7&l%player%"
- "{#D86EEE}₪ &7&lБаланс: %баланс% &bалм."
- ""
- "{#D86EEE}₪ &7&lВремя: {#D86EEE}%server_time_dd.MM | HH:mm% {#D86EEE}%animation:krutilka%"
- ""
- "&7&lСкрыть это окно: {#D86EEE}&l/sb"
Если можете, но при получении доната навсегда, должен показаться знак бесконечности, также заметил что выдавая донат на 3 дня, он выводит на 2 дня(как из лакпермса)Используйте для каждой группы отдельный scoreboard. Как например
YAML:scoreboards: lord: display-condition: "permission:tab.scoreboard.lord" title: "{#D86EEE}&lСервер &f— &7&lМеню игрока" lines: - "" - "{#D86EEE}₪ &7&l%player%" - "{#D86EEE}₪ &7&lБаланс: {#D86EEE}%cmi_user_balance% &bалм." - "" - "{#D86EEE}₪ &7&lРанг: %luckperms_prefix%" - "{#D86EEE}₪ &7&lИстекает через: {#D86EEE}%expirytime_lord%" - "" - "{#D86EEE}₪ &7&lВремя: {#D86EEE}%server_time_dd.MM | HH:mm% {#D86EEE}%animation:krutilka%" - "" - "{#D86EEE}₪ &7&lСкрыть это окно: {#D86EEE}&l/sb" player: display-condition: "permission:tab.scoreboard.player" title: "{#D86EEE}&lСервер &f— &7&lМеню игрока" lines: - "" - "{#D86EEE}₪ &7&l%player%" - "{#D86EEE}₪ &7&lБаланс: %баланс% &bалм." - "" - "{#D86EEE}₪ &7&lВремя: {#D86EEE}%server_time_dd.MM | HH:mm% {#D86EEE}%animation:krutilka%" - "" - "&7&lСкрыть это окно: {#D86EEE}&l/sb"
Либо могу сделать плейсхолдер универсальным, чтобы само получало наследумую временную группу.
Если можете, но при получении доната навсегда, должен показаться знак бесконечности, также заметил что выдавая донат на 3 дня, он выводит на 2 дня(как из лакпермса)
Такое не надо))Хорошо, ожидайте.
Да, всё верно, плагин получает только дни, для того чтобы показывало по факту нужно будет добавлять десятичные доли, т.е. будет писаться 2.9 дней и 0.5 дней соответственно.
Такое не надо))
@Override
public String onRequest(OfflinePlayer player, @NotNull String spigotmcru) {
User user = LuckPermsProvider.get().getUserManager().getUser(Objects.requireNonNull(player.getName()));
for (Node node : user.getNodes()) {
if (node.getKey().startsWith("group.") && Objects.nonNull(node.getExpiryDuration())) {
return Long.toString(node.getExpiryDuration().toDays());
}
else if (node.getKey().startsWith("group.") && !Objects.nonNull(node.getExpiryDuration())) {
return "∞";
}
}
return null;
}
а плейсхолдер какой:?Тогда придётся встраивать обработчик округлений. Легче принять такое костыльное решение, чтобы показывало только дни.
Объединено
Пробуйте.
Java:@Override public String onRequest(OfflinePlayer player, @NotNull String spigotmcru) { User user = LuckPermsProvider.get().getUserManager().getUser(Objects.requireNonNull(player.getName())); for (Node node : user.getNodes()) { if (node.getKey().startsWith("group.") && Objects.nonNull(node.getExpiryDuration())) { return Long.toString(node.getExpiryDuration().toDays()); } else if (node.getKey().startsWith("group.") && !Objects.nonNull(node.getExpiryDuration())) { return "∞"; } } return null; }
а плейсхолдер какой:?
Объединено
Плейсхолдер нашел, да работает, спасибо, таб сделаю под привилегии)
спасибо. попробуюС текущим решением можно одной группой сделать отображение срока, просто написав %expirytime%
Могли бы вы подправить, что при выводе дня писалось еще и "д."С текущим решением можно одной группой сделать отображение срока, просто написав %expirytime%
спасибо. попробую
Объединено
Могли бы вы подправить, что при выводе дня писалось еще и "д."
я дописал что выходит)Так можно просто после плейсхолдера написать д.
я дописал что выходит)
или во время летних каникул у студентов, ибо всего два месяца)Понял. Ну бесконечность дней не такая уж и плохая штука, особенно во время отпуска. Сейчас подправлю.
@Override
public String onRequest(OfflinePlayer player, @NotNull String spigotmcru) {
User user = LuckPermsProvider.get().getUserManager().getUser(Objects.requireNonNull(player.getName()));
for (Node node : user.getNodes()) {
if (node.getKey().startsWith("group.") && Objects.nonNull(node.getExpiryDuration())) {
return node.getExpiryDuration().toDays() + "д.";
}
else if (node.getKey().startsWith("group.") && !Objects.nonNull(node.getExpiryDuration())) {
return "∞";
}
}
return null;
}
Мы используем основные cookies для обеспечения работы этого сайта, а также дополнительные cookies для обеспечения максимального удобства пользователя.
Посмотрите дополнительную информацию и настройте свои предпочтения