Lobby/src/main/java/eu/univento/lobby/utils/Scoreboards.java

128 lines
4.4 KiB
Java
Raw Normal View History

2018-01-15 12:26:24 +01:00
/*
* Copyright (c) 2018 univento.eu - All rights reserved
* You are not allowed to use, distribute or modify this code
*/
2016-07-09 13:17:02 +02:00
package eu.univento.lobby.utils;
2018-01-15 12:26:24 +01:00
import eu.univento.core.Core;
2016-07-09 13:17:02 +02:00
import eu.univento.core.api.player.CustomPlayer;
2018-01-15 12:26:24 +01:00
import io.vertx.core.json.JsonObject;
import org.bukkit.Bukkit;
import org.bukkit.scheduler.BukkitRunnable;
2016-07-09 13:17:02 +02:00
import org.bukkit.scoreboard.DisplaySlot;
import org.bukkit.scoreboard.Objective;
import org.bukkit.scoreboard.Score;
import org.bukkit.scoreboard.Scoreboard;
2018-01-15 12:26:24 +01:00
import java.util.ArrayList;
import java.util.List;
2016-07-09 13:17:02 +02:00
/**
* @author joethei
2018-01-15 12:26:24 +01:00
* @version 2.0
2016-07-09 13:17:02 +02:00
*/
public class Scoreboards {
public static void updateScoreboard(CustomPlayer p) {
2018-01-15 12:26:24 +01:00
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);
2016-07-09 13:17:02 +02:00
}
}