128 lines
4.4 KiB
Java
128 lines
4.4 KiB
Java
/*
|
|
* Copyright (c) 2018 univento.eu - All rights reserved
|
|
* You are not allowed to use, distribute or modify this code
|
|
*/
|
|
|
|
package eu.univento.lobby.utils;
|
|
|
|
import eu.univento.core.Core;
|
|
import eu.univento.core.api.player.CustomPlayer;
|
|
import io.vertx.core.json.JsonObject;
|
|
import org.bukkit.Bukkit;
|
|
import org.bukkit.scheduler.BukkitRunnable;
|
|
import org.bukkit.scoreboard.DisplaySlot;
|
|
import org.bukkit.scoreboard.Objective;
|
|
import org.bukkit.scoreboard.Score;
|
|
import org.bukkit.scoreboard.Scoreboard;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
/**
|
|
* @author joethei
|
|
* @version 2.0
|
|
*/
|
|
public class Scoreboards {
|
|
|
|
public static void updateScoreboard(CustomPlayer p) {
|
|
|
|
p.getScoreboard().clearSlot(DisplaySlot.SIDEBAR);
|
|
|
|
List<String> general = new ArrayList<>();
|
|
List<String> dev = new ArrayList<>();
|
|
List<String> build = new ArrayList<>();
|
|
List<String> team = new ArrayList<>();
|
|
|
|
Core.getCommons().getDatabaseManager().getMongoDB().getClient().findOne("updates", new JsonObject().put("category", "general"), null, event -> {
|
|
if(event.failed()) return;
|
|
event.result().getJsonArray("news").forEach(o -> general.add((String) o));
|
|
});
|
|
|
|
Core.getCommons().getDatabaseManager().getMongoDB().getClient().findOne("updates", new JsonObject().put("category", "development"), null, event -> {
|
|
if(event.failed()) return;
|
|
event.result().getJsonArray("news").forEach(o -> dev.add((String) o));
|
|
});
|
|
|
|
Core.getCommons().getDatabaseManager().getMongoDB().getClient().findOne("updates", new JsonObject().put("category", "build"), null, event -> {
|
|
if(event.failed()) return;
|
|
event.result().getJsonArray("news").forEach(o -> build.add((String) o));
|
|
});
|
|
|
|
Core.getCommons().getDatabaseManager().getMongoDB().getClient().findOne("updates", new JsonObject().put("category", "team"), null, event -> {
|
|
if(event.failed()) return;
|
|
event.result().getJsonArray("news").forEach(o -> team.add((String) o));
|
|
});
|
|
|
|
Bukkit.getScheduler().scheduleSyncDelayedTask(Core.getInstance(), new BukkitRunnable() {
|
|
@Override
|
|
public void run() {
|
|
int size = general.size() + dev.size() + build.size() + team.size() + 8;
|
|
|
|
Scoreboard board = p.getScoreboard();
|
|
if(board.getObjective("Lobby") != null) board.getObjective("Lobby").unregister();
|
|
|
|
Objective obj = board.registerNewObjective("Lobby", "dummy");
|
|
obj.setDisplaySlot(DisplaySlot.SIDEBAR);
|
|
obj.setDisplayName("§8§l♣ §2updates");
|
|
|
|
Score generalSpace = obj.getScore("§8§l");
|
|
generalSpace.setScore(size);
|
|
size--;
|
|
|
|
Score generalHead = obj.getScore("§7§l✸ §aAllgemeines");
|
|
generalHead.setScore(size);
|
|
size--;
|
|
|
|
for(String news : general) {
|
|
Score score = obj.getScore(news);
|
|
score.setScore(size);
|
|
size--;
|
|
}
|
|
|
|
Score devSpace = obj.getScore("§5§l");
|
|
devSpace.setScore(size);
|
|
size--;
|
|
|
|
Score devHead = obj.getScore("§7§l⚡ §aEntwicklung");
|
|
devHead.setScore(size);
|
|
size--;
|
|
|
|
for(String news : dev) {
|
|
Score score = obj.getScore(news);
|
|
score.setScore(size);
|
|
size--;
|
|
}
|
|
|
|
Score buildSpace = obj.getScore("§3§l");
|
|
buildSpace.setScore(size);
|
|
size--;
|
|
|
|
Score buildHead = obj.getScore("§7§l⚒ §aBuilding");
|
|
buildHead.setScore(size);
|
|
size--;
|
|
|
|
for(String news : build) {
|
|
Score score = obj.getScore(news);
|
|
score.setScore(size);
|
|
size--;
|
|
}
|
|
|
|
Score teamSpace = obj.getScore("§6§l");
|
|
teamSpace.setScore(size);
|
|
size--;
|
|
|
|
Score teamHead = obj.getScore("§7§l☯ §aTeam");
|
|
teamHead.setScore(size);
|
|
size--;
|
|
|
|
for(String news : team) {
|
|
Score score = obj.getScore(news);
|
|
score.setScore(size);
|
|
size--;
|
|
}
|
|
}
|
|
}, 2 * 20L);
|
|
|
|
|
|
}
|
|
} |