Майская распродажа!
Впереди теплые праздники, цены таят на глазах! Поздравляем вас и дарим вам специальный купон.
Мы предлагаем вам специальное предложение на подписку, действительное только по временному купону.
Обнови свой сервер с лучшими сборками, плагинами и картами!
Мы теперь в Discord
Мы рады объявить, что теперь у нас есть сервер Discord. В честь этого мы проводим розыгрыш!
Теперь вы можете легко связаться с нами и другими участниками сообщества,
обмениваться идеями и получать обновления о нашей деятельности.
EXCLUSIVE ⚡
Гость, покупая подписку, ты увеличишь свои доходы в разы!
Мы делаем самые актуальные сборки, переводим лучшие приватные плагины, а так-же обновляем их и фиксим любые ошибки.
Дешевле, чем студии и другие разработчики!
Приветствуем тебя Гость!
Недавно на форуме? Не знаешь как можно скачивать ресурсы?
Для этого нужно лишь зарегистрировать на форуме, и получать доступ к профессиональным плагинам, оптимизированным настройкам.
Здесь только самое лучшее.
в super("jobs_rate"); ошибкаДля того, чтобы добавить переменную %jobs_rate% в PlaceholderAPI 2.11.3, понадобится создать свой собственный плейсхолдер.
Вот примерный код, который вы можете использовать для создания такого плейсхолдера:
```java
public class JobsPlaceholder extends PlaceholderReplacer {
private final Jobs plugin;
public JobsPlaceholder(Jobs plugin) {
super("jobs_rate");
this.plugin = plugin;
}
@Override
public String onPlaceholderReplace(PlaceholderReplaceEvent event) {
Player player = event.getPlayer();
if (player == null) {
return "";
}
JobProgression progression = plugin.getJobProgression(player.getUniqueId());
if (progression == null) {
return "";
}
double rate = progression.getJobRate();
return String.format("%.2f", rate);
}
}
```
Для того, чтобы зарегистрировать этот плейсхолдер, вам нужно будет создать экземпляр класса JobsPlaceholder и зарегистрировать его в PlaceholderAPI. Пример кода регистрации:
```java
public void onEnable() {
// ...
Jobs plugin = (Jobs) getServer().getPluginManager().getPlugin("Jobs");
if (plugin != null) {
new JobsPlaceholder(plugin).register();
}
}
```
Где `onEnable()` - это метод, который вызывается при включении вашего плагина Bukkit. Вам также может понадобиться другая версия метода `register()` или зарегистрировать плагин вручную.
Извините за путаницу. Вы правы, вызов конструктора с аргументом "jobs_rate" не сработает в классе PlaceholderReplacer. Вместо этого, вы можете создать свой собственный класс PlaceholderExpansion и переопределить методы определения плейсхолдера и его замены. Вот пример, как можно это сделать для переменной %jobs_rate%:в super("jobs_rate"); ошибка
Как отследить варку зелья игроком? BukkitAPI 1.16.5.Извините за путаницу. Вы правы, вызов конструктора с аргументом "jobs_rate" не сработает в классе PlaceholderReplacer. Вместо этого, вы можете создать свой собственный класс PlaceholderExpansion и переопределить методы определения плейсхолдера и его замены. Вот пример, как можно это сделать для переменной %jobs_rate%:
```java
public class JobsExpansion extends PlaceholderExpansion {
private final Jobs plugin;
public JobsExpansion(Jobs plugin) {
this.plugin = plugin;
}
@Override
public String getIdentifier() {
return "jobs";
}
@Override
public String getAuthor() {
return "YourNameHere";
}
@Override
public String getVersion() {
return "1.0.0";
}
@Override
public String onPlaceholderRequest(Player player, String identifier) {
if (player == null) {
return "";
}
if (identifier.equals("rate")) {
JobProgression progression = plugin.getJobProgression(player.getUniqueId());
if (progression == null) {
return "";
}
double rate = progression.getJobRate();
return String.format("%.2f", rate);
}
return null;
}
}
```
Здесь мы создаем класс JobsExpansion, который расширяет класс PlaceholderExpansion и переопределяет 4 его метода - getIdentifier(), getAuthor(), getVersion() и onPlaceholderRequest(). Внутри метода onPlaceholderRequest() мы определяем наш плейсхолдер (в данном случае %jobs_rate%) и код, которым мы его заменяем.
Теперь вам нужно зарегистрировать вашу экземпляр класса в PlaceholderAPI, вот примерный код:
```java
public void onEnable() {
// ...
Jobs plugin = (Jobs) getServer().getPluginManager().getPlugin("Jobs");
if (plugin != null) {
new JobsExpansion(plugin).register();
}
}
```
Метод register() регистрирует вашу реализацию PlaceholderExpansion в PlaceholderAPI. Как только это будет сделано, вы можете использовать плейсхолдер %jobs_rate% в игре.
Для отслеживания варки зелья игроком вы можете зарегистрировать слушателя событий для события BrewEvent и проверить, если игрок принимал участие в процессе варки.Как отследить варку зелья игроком? BukkitAPI 1.16.5.