- Баллы
- 66
- Имя в Minecraft
- deni9078
Даров, мне нужно, чтобы создался плейсхолдер %rank% и туда вписывалось значение "значение", все это с помощью PlaceholderAPI. Да, я не умею читать документации, помощь мне нужна тут, добрые люди
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Документации я читать не умею, там всё слишком замудренобуквально даже с кодом: https://github.com/PlaceholderAPI/PlaceholderAPI/wiki/PlaceholderExpansion
трудновато тебе придется с таким настроемДокументации я читать не умею, там всё слишком замудрено
Я не собираюсь плагины писать, просто делаю сервер и нужно было переписать плагин под себя, очень нужна помощь!трудновато тебе придется с таким настроем
Документации более чем достаточно. Никто плагин за тебя писать\переписывать не будет. Можно сделать всё самому, было бы желание.Я не собираюсь плагины писать, просто делаю сервер и нужно было переписать плагин под себя, очень нужна помощь!
Да я и не прошу плагин за меня писать, я прошу помочь с фрагментом кода для создания плейсхолдераДокументации более чем достаточно. Никто плагин за тебя писать\переписывать не будет. Можно сделать всё самому, было бы желание.
буквально даже с кодом: https://github.com/PlaceholderAPI/PlaceholderAPI/wiki/PlaceholderExpansion
фрагментом кода для создания плейсхолдера
Показывай код.Я только что попробовал из этого сделать то что мне нужно. И ничего не работает
Показывай код.
public class EventListener implements Listener {
String prefix = Main.getInstance().getConfig().getString("ranks." + m + ".prefix");
@EventHandler
public void onPlayerKill(PlayerDeathEvent event) {
Player player = event.getEntity();
Player killer = player.getKiller();
for (String m : Main.getInstance().getConfig().getConfigurationSection("ranks").getKeys(false)) {
if (killer.getStatistic(Statistic.PLAYER_KILLS) == Main.getInstance().getConfig().getInt("ranks." + m + ".kills")) {
killer.sendMessage(ChatColor.translateAlternateColorCodes('&', Main.getInstance().getConfig().getString("messages.up")));
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), Main.getInstance().getConfig().getString("ranks." + m + ".reward"));
}
}
}
public String onRequest(OfflinePlayer player, String params) {
if (params.equalsIgnoreCase("rank")) {
return prefix;
}
return null;
}
}
Здраствуйте.Смотри, вот сделал как там написано, возвращает prefix, он равен строке "ranks." + m + ".prefix", но дело в том что m зареган в эвенте и я не могу это всё как-то решить.Код:public class EventListener implements Listener { String prefix = Main.getInstance().getConfig().getString("ranks." + m + ".prefix"); @EventHandler public void onPlayerKill(PlayerDeathEvent event) { Player player = event.getEntity(); Player killer = player.getKiller(); for (String m : Main.getInstance().getConfig().getConfigurationSection("ranks").getKeys(false)) { if (killer.getStatistic(Statistic.PLAYER_KILLS) == Main.getInstance().getConfig().getInt("ranks." + m + ".kills")) { killer.sendMessage(ChatColor.translateAlternateColorCodes('&', Main.getInstance().getConfig().getString("messages.up"))); Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), Main.getInstance().getConfig().getString("ranks." + m + ".reward")); } } } public String onRequest(OfflinePlayer player, String params) { if (params.equalsIgnoreCase("rank")) { return prefix; } return null; } }
package at.helpch.placeholderapi.example.expansions;
import org.bukkit.OfflinePlayer;
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
public class SomeExpansion extends PlaceholderExpansion {
@Override
public String getAuthor() {
return "someauthor";
}
@Override
public String getIdentifier() {
return "example";
}
@Override
public String getVersion() {
return "1.0.0";
}
}
package at.helpch.placeholderapi.example
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;
public class SomePlugin extends JavaPlugin {
@Override
public void onEnable() {
// Small check to make sure that PlaceholderAPI is installed
if(Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) {
new SomeExpansion(this).register();
}
}
}
далее просто дополняешь класс, как тебе нужно, на этом всёНужно читать документацию полностью, либо уметь фильтровать информацию и отбрасывать не нужное. Так же не помешало бы иметь понимание кода...
Итак, твой вариант не работает, так как:
1. нужно обязательно создать класс с наследованием PlaceholderExpansion, в документации всё расписано от и до
Код:package at.helpch.placeholderapi.example.expansions; import org.bukkit.OfflinePlayer; import me.clip.placeholderapi.expansion.PlaceholderExpansion; public class SomeExpansion extends PlaceholderExpansion { @Override public String getAuthor() { return "someauthor"; } @Override public String getIdentifier() { return "example"; } @Override public String getVersion() { return "1.0.0"; } }
2. нужно зарегистрировать класс плесхолдера в плагине
Код:package at.helpch.placeholderapi.example import org.bukkit.Bukkit; import org.bukkit.plugin.java.JavaPlugin; public class SomePlugin extends JavaPlugin { @Override public void onEnable() { // Small check to make sure that PlaceholderAPI is installed if(Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) { new SomeExpansion(this).register(); } } }
Так же в документации указано множество примеров для различных случаев, так что советую хотя бы пробежаться и прочитать заголовки в документации(перевести в переводчике, если не можешь сам)
Сделал примерно так же. Плейсхолдер всё равно не работает.Нужно читать документацию полностью, либо уметь фильтровать информацию и отбрасывать не нужное. Так же не помешало бы иметь понимание кода...
Итак, твой вариант не работает, так как:
1. нужно обязательно создать класс с наследованием PlaceholderExpansion, в документации всё расписано от и до
Код:package at.helpch.placeholderapi.example.expansions; import org.bukkit.OfflinePlayer; import me.clip.placeholderapi.expansion.PlaceholderExpansion; public class SomeExpansion extends PlaceholderExpansion { @Override public String getAuthor() { return "someauthor"; } @Override public String getIdentifier() { return "example"; } @Override public String getVersion() { return "1.0.0"; } }
2. нужно зарегистрировать класс плесхолдера в плагине
Код:package at.helpch.placeholderapi.example import org.bukkit.Bukkit; import org.bukkit.plugin.java.JavaPlugin; public class SomePlugin extends JavaPlugin { @Override public void onEnable() { // Small check to make sure that PlaceholderAPI is installed if(Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) { new SomeExpansion(this).register(); } } }
Так же в документации указано множество примеров для различных случаев, так что советую хотя бы пробежаться и прочитать заголовки в документации(перевести в переводчике, если не можешь сам)
public class PHExpansion extends PlaceholderExpansion {
public String getIdentifier() {
return "ranks";
}
public String getAuthor() {
return "Author";
}
public String getVersion() {
return "v1.0";
}
public String onRequest(Player p, String identifier) {
if (p == null)
return "";
if (rank == null)
return "Нет ранга";
if (identifier.equals("rank"))
return rank;
return null;
}
}
В основном классе всё прописал?Сделал примерно так же. Плейсхолдер всё равно не работает.
Код:public class PHExpansion extends PlaceholderExpansion { public String getIdentifier() { return "ranks"; } public String getAuthor() { return "Author"; } public String getVersion() { return "v1.0"; } public String onRequest(Player p, String identifier) { if (p == null) return ""; if (rank == null) return "Нет ранга"; if (identifier.equals("rank")) return rank; return null; } }
if(Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) {
new PHExpansion().register();
}
да, все равно не работаетВ основном классе всё прописал?
Код:if(Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) { new PHExpansion().register(); }
на всякий упомяну, что плейсхолдеры вводятся в таком формате: %identifier_params%да, все равно не работает
А просто %rank% нельзя как-то сделать?на всякий упомяну, что плейсхолдеры вводятся в таком формате: %identifier_params%
пример: %ranks_rank%
нетА просто %rank% нельзя как-то сделать?