Spokers
Пользователь
- Сообщения
- 70
- Решения
- 1
Я перешёл на Mysql для хранения данных об игрока, очередь дошла до скор боарда, проблема в том что он не обновляется. Через минуту скину код
Авто объединение сообщений:
Java:
package Prison.ScoreBoard;
import java.util.HashMap;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.scoreboard.DisplaySlot;
import org.bukkit.scoreboard.Objective;
import org.bukkit.scoreboard.Scoreboard;
import org.bukkit.scoreboard.Team;
import Prison.Main;
import Prison.PrisonPlayer;
import Prison.Message.MessageManager;
public class PrisonScoreboard extends BukkitRunnable {
public static Main plugin;
public PrisonScoreboard(Main plugin){
this.plugin = plugin;
}
public static void setScoreBoard(Player p){
Scoreboard board = Bukkit.getScoreboardManager().getNewScoreboard();
PrisonPlayer player = (PrisonPlayer)((HashMap)MessageManager.PLAYER_STATS.getO()).get(p.getUniqueId());
Objective obj = board.registerNewObjective("§bPrisonHard", "dummy");
obj.setDisplaySlot(DisplaySlot.SIDEBAR);
obj.setDisplayName("§6§lPrison§c§lHard");
obj.getScore(" ").setScore(2);
obj.getScore("§6§l CookiesCraft.ru").setScore(1);
Team Level = board.registerNewTeam("Level");
Level.addEntry("§e§l Уровень §8§l>>§7 ");
Level.setSuffix(" §l" + player.getLevel());
obj.getScore("§e§l Уровень §8§l>>§7 ").setScore(3);
p.setScoreboard(board);
}
public static void updateLevel(Player player){
PrisonPlayer data = (PrisonPlayer)((HashMap)MessageManager.PLAYER_STATS.getO()).get(player.getUniqueId());
Scoreboard board = player.getScoreboard();
//Обновление баланса
Team level = board.getTeam("level");
if (level != null) {
level.setSuffix(data.getLevel() + "");
}
}
public static void update(Player p){
updateLevel(p);
}
@Override
public void run() {
for(Player p : Bukkit.getOnlinePlayers()){
Bukkit.getScheduler().runTask(plugin, () -> update(p));
}
}
public static PrisonScoreboard getInstance() {
return new PrisonScoreboard(plugin);
}
}