Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нем неправильно. Необходимо обновить браузер или попробовать использовать другой.
Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
Вообще ты можешь и эту реализацию оставить, она просто максимально медленная и не оптимизированная. Она разве не работает? Выведи кол-во киллов киллера и киллов в кфг. Как токо игрок достигнет кол-ва определенных убийств, то выдастся награда. Добавь дебаг после фора: Bukkit.getLogger().info("Игрока: " + killer.getStatistic(Statistic.PLAYER_KILLS) + " | КФГ: " + Main.getInstance().getConfig().getInt("ranks." + key + ".kills"));
Вообще ты можешь и эту реализацию оставить, она просто максимально медленная и не оптимизированная. Она разве не работает? Выведи кол-во киллов киллера и киллов в кфг. Как токо игрок достигнет кол-ва определенных убийств, то выдастся награда. Добавь дебаг после фора: Bukkit.getLogger().info("Игрока: " + killer.getStatistic(Statistic.PLAYER_KILLS) + " | КФГ: " + Main.getInstance().getConfig().getInt("ranks." + key + ".kills"));
Этот код у меня сработал один раз, потом что-то сломалось я хз. Вот только есть одно но - когда игрок убивает другого, то плагин проверяет прошлое значение убийств, а не новое
Этот код у меня сработал один раз, потом что-то сломалось я хз. Вот только есть одно но - когда игрок убивает другого, то плагин проверяет прошлое значение убийств, а не новое
Как только игрок умирает, он и смотрит сколько кол-ва убийств у киллера, как только он достигнет 10, 20 - он выдаст награду. Он и будет у тебя работать 1 раз. Скрины консоли в студию.
Как только игрок умирает, он и смотрит сколько кол-ва убийств у киллера, как только он достигнет 10, 20 - он выдаст награду. Он и будет у тебя работать 1 раз. Скрины консоли в студию.
Как только игрок умирает, он и смотрит сколько кол-ва убийств у киллера, как только он достигнет 10, 20 - он выдаст награду. Он и будет у тебя работать 1 раз. Скрины консоли в студию.
При достижении 22 киллов консоль выводит 22 one 22, но действия не происходят, хоть эти значение равны.
Дальше 23 килла, выводит 23 one 22 two 24. Я вообще не понимаю что происходит
Код:
@EventHandler
public void onPlayerDeath(PlayerDeathEvent event) {
Player player = event.getEntity();
Player killer = player.getKiller();
if (killer != null) {
int playerKills = killer.getStatistic(Statistic.PLAYER_KILLS) + 1;
Bukkit.getLogger().info(String.valueOf(playerKills));
for (String key : Main.getInstance().getConfig().getConfigurationSection("ranks").getKeys(false)) {
Bukkit.getLogger().info(key);
int requiredKills = Main.getInstance().getConfig().getInt("ranks." + key + ".kills");
Bukkit.getLogger().info(String.valueOf(requiredKills));
if (playerKills == requiredKills) {
killer.sendMessage(ChatColor.translateAlternateColorCodes('&', Main.getInstance().getConfig().getString("messages.up").replace("%rank%", rank)));
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), Main.getInstance().getConfig().getString("ranks." + key + ".reward").replace("%player%", killer.getName()));
Main.setRank(Main.getInstance().getConfig().getString("ranks." + key + ".prefix"));
Bukkit.getLogger().info(key);
}
}
}
При достижении 22 киллов консоль выводит 22 one 22, но действия не происходят, хоть эти значение равны.
Дальше 23 килла, выводит 23 one 22 two 24. Я вообще не понимаю что происходит
Код:
@EventHandler
public void onPlayerDeath(PlayerDeathEvent event) {
Player player = event.getEntity();
Player killer = player.getKiller();
if (killer != null) {
int playerKills = killer.getStatistic(Statistic.PLAYER_KILLS) + 1;
Bukkit.getLogger().info(String.valueOf(playerKills));
for (String key : Main.getInstance().getConfig().getConfigurationSection("ranks").getKeys(false)) {
Bukkit.getLogger().info(key);
int requiredKills = Main.getInstance().getConfig().getInt("ranks." + key + ".kills");
Bukkit.getLogger().info(String.valueOf(requiredKills));
if (playerKills == requiredKills) {
killer.sendMessage(ChatColor.translateAlternateColorCodes('&', Main.getInstance().getConfig().getString("messages.up").replace("%rank%", rank)));
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), Main.getInstance().getConfig().getString("ranks." + key + ".reward").replace("%player%", killer.getName()));
Main.setRank(Main.getInstance().getConfig().getString("ranks." + key + ".prefix"));
Bukkit.getLogger().info(key);
}
}
}
Чёт вы слишком сильно код усложняете. Я бы тупо строку playerkills и строку requiredkills сравнивал. Если playerkills == requiredkills, то выдаём ранг.
Чёт вы слишком сильно код усложняете. Я бы тупо строку playerkills и строку requiredkills сравнивал. Если playerkills == requiredkills, то выдаём ранг.
у тебя как раз таки консоль говорит, что выполняется всё. Вот эта бы строчка не выводилась у тебя в консоль, если бы условие было б false
System.out.println("key: " + key + " used");
у тебя как раз таки консоль говорит, что выполняется всё. Вот эта бы строчка не выводилась у тебя в консоль, если бы условие было б false
System.out.println("key: " + key + " used");
Я вижу что консоль говорит. После проверки есть 3 действия - отправка сообщения, выполнение команды и выдача ранга, так вот они не выполняются, в этом и проблема
Я вижу что консоль говорит. После проверки есть 3 действия - отправка сообщения, выполнение команды и выдача ранга, так вот они не выполняются, в этом и проблема
Вот я и хочу разобраться почему они не работают, я понимаю что это бред, но оно так и есть, они не работают по какой-то причине, хотя там ничего такого и нет
Вот я и хочу разобраться почему они не работают, я понимаю что это бред, но оно так и есть, они не работают по какой-то причине, хотя там ничего такого и нет
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!