- Баллы
- 123
- Имя в Minecraft
- JustBlender
Всем привет! Сегодня я покажу вам, как создать Scoreboard! Это просто, давайте приступим:
PS. Это "библиотека" очень действительно удобна и проста, главное чтобы руки не росли из точки G
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
1. Что нам нужно это создать класс: рекомендую ISCOREAPI (Будет проще для нубиков-кубиков)
Вставляем это. Проблем быть не должно!
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
2. Регистрируем это в главном классе.
А это в onEnable:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
3. We're done!
Чтобы создать уже сам Scoreboard (Вот чего мы ждали)
Делаем так:
Чтобы добавить "очко" "игроку":
(Не спрашивайте зачем нужны getOnlinePlayers())
Чтобы удалить таблицу совсем:
Посмотреть на само чудо самим, можно тут: Click ME
PS. Это "библиотека" очень действительно удобна и проста, главное чтобы руки не росли из точки G

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
1. Что нам нужно это создать класс: рекомендую ISCOREAPI (Будет проще для нубиков-кубиков)
Код:
public class ISCOREAPI
{
/* ISCOREAPI by Firebreath15 v1.5
*
* Written for private use. Do not duplicate or republish.
*/
Scoreboard board;
Objective obj;
public ISCOREAPI()
{
this.board = Bukkit.getScoreboardManager().getNewScoreboard();
}
public void setScoreboard(Player p) {
this.board = p.getScoreboard();
this.obj = this.board.getObjective(DisplaySlot.SIDEBAR);
}
public void createObjective(String name, String desc) {
if (this.board.getObjective(name) == null) {
this.obj = this.board.registerNewObjective(name, desc);
this.obj.setDisplayName(name);
this.obj.setDisplaySlot(DisplaySlot.SIDEBAR); // Вы можете сделать не только "таблицы", можно и сделать подсчет над головой, главное в DisplaySlot выберите другой вариант. Их существует несколько. Посмотрите на вики
}
}
public void removeObjective(String obj) {
if(board.getObjective(obj)!=null){
this.board.getObjective(obj).unregister();
}
}
public void createTeam(String name) {
if (this.board.getTeam(name) == null) {
Team team = this.board.registerNewTeam(name);
team.setDisplayName(name);
}
}
public void removeTeam(String team) {
this.board.getTeam(team).unregister();
}
public void addPlayerToTeam(String team, Player p) {
this.board.getTeam(team).addPlayer(p);
}
public int getScores(OfflinePlayer p) {
Score score = this.obj.getScore(p);
return score.getScore();
}
public void setScore(OfflinePlayer p, int sc) {
Score score = this.obj.getScore(p);
score.setScore(sc);
}
public void removePlayerFromTeam(String team, Player p) {
if(this.board.getTeam(team)!=null){
if(this.board.getTeam(team).hasPlayer(p)){
this.board.getTeam(team).removePlayer(p);
}
}
}
public void refreshPlayerScoreboard(Player p) {
p.setScoreboard(this.board);
}
public Scoreboard getPlayerScoreboard(Player p) {
return p.getScoreboard();
}
public void removePlayerScoreboard(Player p) {
board.getObjective(DisplaySlot.SIDEBAR).unregister();
}
Вставляем это. Проблем быть не должно!
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
2. Регистрируем это в главном классе.
Код:
public class {MainClassName} extends JavaPlugin{
public ISCOREAPI sapi;
Код:
public void onEnable(){
sapi=new ISCOREAPI();
3. We're done!
Чтобы создать уже сам Scoreboard (Вот чего мы ждали)
Делаем так:
Код:
ISCOREAPI api = new ISCOREAPI();
api.createObjective(ChatColor.DARK_AQUA+"Тест", "Тест"); //Ваш заголовок
api.createTeam("Player");
api.setScore(Bukkit.getOfflinePlayer(ChatColor.RED + "Красный"), 0);
api.setScore(Bukkit.getOfflinePlayer(ChatColor.BLUE + "Синий"),
api.addPlayerToTeam("Player", p);
api.refreshPlayerScoreboard(p);
(Не спрашивайте зачем нужны getOnlinePlayers())
Код:
Player[] online = Bukkit.getServer().getOnlinePlayers();
for (int i = 0; i < online.length; i++) {
Player o = online[i];
plugin.sapi.setScoreboard(o);
int sc = plugin.sapi.getScores(Bukkit.getOfflinePlayer(ChatColor.RED+ "Красный"));
plugin.sapi.setScore(Bukkit.getOfflinePlayer(ChatColor.RED+ "Красный"), sc + 1); //Присуждаем игроку 1 балл
Код:
ISCOREAPI api = new ISCOREAPI();
api.setScoreboard(p);
api.removePlayerFromTeam("Player", p);
api.removeTeam("Player");
api.removeObjective(ChatColor.DARK_AQUA+ "Тест");
Надеюсь вам понравился туториал! Если это так, то покажите свою любовь лайками![]()
Посмотреть на само чудо самим, можно тут: Click ME
Последнее редактирование:
