Amélioration de la commande /staff et meilleure gestion de la file d'attente /Staff
This commit is contained in:
60
src/net/mc_pandacraft/java/util/ScoreBoardUtil.java
Normal file
60
src/net/mc_pandacraft/java/util/ScoreBoardUtil.java
Normal file
@@ -0,0 +1,60 @@
|
||||
package net.mc_pandacraft.java.util;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.scoreboard.DisplaySlot;
|
||||
import org.bukkit.scoreboard.Objective;
|
||||
import org.bukkit.scoreboard.Score;
|
||||
import org.bukkit.scoreboard.Scoreboard;
|
||||
|
||||
public class ScoreBoardUtil {
|
||||
|
||||
/**
|
||||
* Met à jour la Sidebar d'un Scoreboard donné
|
||||
* @param scBrd Le Scoreboard à mettre à jour (ne doit pas être null)
|
||||
* @param title Le titre de la Sidebar
|
||||
* @param lines Les lignes qui doivent être affichés. Si un éléments du tableau est null, il sera compté comme une chaine vide. Toutes les lignes seront rognés aux 16 premiers caractères
|
||||
*/
|
||||
public static void updateScoreboardSidebar(Scoreboard scBrd, String title, String[] lines) {
|
||||
if (scBrd == null) throw new IllegalArgumentException("scBrd doit être non null");
|
||||
Objective obj = scBrd.getObjective("sidebar_autogen");
|
||||
if (obj != null)
|
||||
obj.unregister();
|
||||
|
||||
if (lines == null || lines.length == 0)
|
||||
return;
|
||||
|
||||
obj = scBrd.registerNewObjective("sidebar_autogen", "dummy");
|
||||
obj.setDisplayName(title == null ? "" : title);
|
||||
obj.setDisplaySlot(DisplaySlot.SIDEBAR);
|
||||
|
||||
int boardPos = lines.length;
|
||||
for (String line : lines) {
|
||||
if (line == null) line = "";
|
||||
|
||||
Score score = obj.getScore(
|
||||
Bukkit.getServer().getOfflinePlayer(
|
||||
line.substring(
|
||||
0,
|
||||
(line.length()>16) ? 16 : line.length()
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
score.setScore(boardPos);
|
||||
boardPos--;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Met à jour la Sidebar d'un Scoreboard donné
|
||||
* @param scBrd Le Scoreboard à mettre à jour
|
||||
* @param title Le titre de la Sidebar
|
||||
* @param lines Les lignes qui doivent être affichés. Si un éléments du tableau est null, il sera compté comme une chaine vide. Toutes les lignes seront rognés aux 16 premiers caractères
|
||||
*/
|
||||
public static void updateScoreboardSidebar(Scoreboard scBrd, String title, List<String> lines) {
|
||||
updateScoreboardSidebar(scBrd, title, lines.toArray(new String[lines.size()]));
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user