- Баллы
- 66
- Имя в Minecraft
- GoodPlayer
Всем привет! Есть код, где проверяется переменная boolean isReady на true и false. Не понимаю, почему скорборд не хочет обновляться. Код ниже не работает.
То есть, если переменная isReady равна false (!Main.getInstance().isReady), то тогда мы выводим score3 таким: Доступен: нет, в ином случае выводим Доступен: да. Подскажите, пожалуйста, что я неправильно делаю? И как правильно обновлять скорборд?
Код:
package ru.test.plugin.Boards;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.scoreboard.DisplaySlot;
import org.bukkit.scoreboard.Objective;
import org.bukkit.scoreboard.Score;
import org.bukkit.scoreboard.Scoreboard;
import ru.test.plugin.Main;
public class waiting implements Listener {
private Scoreboard scoreboard;
private Objective objective;
@EventHandler
public void onPlayerJoin(PlayerJoinEvent event) {
if (!Main.getInstance().isReady) {
scoreboard = Bukkit.getScoreboardManager().getNewScoreboard();
objective = scoreboard.registerNewObjective(ChatColor.AQUA + "Scoreboard", "dummy");
objective.setDisplaySlot(DisplaySlot.SIDEBAR);
Score score3 = objective.getScore(ChatColor.WHITE + "Доступен: " + ChatColor.RED+ "нет");
score3.setScore(3);
Bukkit.getScheduler().runTaskTimer(War.getInstance(), scoreboardUpdater, 0, 20);
for (Player player : Bukkit.getOnlinePlayers()) {
player.setScoreboard(scoreboard);
}
}
}
private void updateScoreboard() {
Score score3 = objective.getScore(ChatColor.WHITE + "Доступен: " + ChatColor.GREEN + "да");
score3.setScore(3);
}
Runnable scoreboardUpdater = () -> {
updateScoreboard();
};
}