From 1361e6fd187a651f8b116ed28a2c47191ee00065 Mon Sep 17 00:00:00 2001 From: "Luis C.M" <42545778+c0508383@users.noreply.github.com> Date: Thu, 24 Nov 2022 14:45:16 -0600 Subject: [PATCH] Implemented scoreboard interfaces. --- .../npcs/api/scoreboard/IScoreboard.java | 29 +++++++++++++++++ .../api/scoreboard/IScoreboardObjective.java | 14 +++++++++ .../npcs/api/scoreboard/IScoreboardTeam.java | 31 +++++++++++++++++++ .../scripted/scoreboard/ScriptScoreboard.java | 22 +++++++------ .../scoreboard/ScriptScoreboardObjective.java | 5 +-- .../scoreboard/ScriptScoreboardTeam.java | 5 +-- 6 files changed, 92 insertions(+), 14 deletions(-) create mode 100644 src/api/java/noppes/npcs/api/scoreboard/IScoreboardObjective.java create mode 100644 src/api/java/noppes/npcs/api/scoreboard/IScoreboardTeam.java diff --git a/src/api/java/noppes/npcs/api/scoreboard/IScoreboard.java b/src/api/java/noppes/npcs/api/scoreboard/IScoreboard.java index 91efab7e4..65e4c3dc2 100644 --- a/src/api/java/noppes/npcs/api/scoreboard/IScoreboard.java +++ b/src/api/java/noppes/npcs/api/scoreboard/IScoreboard.java @@ -1,4 +1,33 @@ package noppes.npcs.api.scoreboard; public interface IScoreboard { + IScoreboardObjective[] getObjectives(); + + IScoreboardObjective getObjective(String name); + + boolean hasObjective(String objective); + + void removeObjective(String objective); + + IScoreboardObjective addObjective(String objective, String criteria); + + void setPlayerScore(String player, String objective, int score, String datatag); + + int getPlayerScore(String player, String objective, String datatag); + + boolean hasPlayerObjective(String player, String objective, String datatag); + + void deletePlayerScore(String player, String objective, String datatag); + + IScoreboardTeam[] getTeams(); + + IScoreboardTeam getTeamByName(String name); + + boolean hasTeam(String name); + + IScoreboardTeam addTeam(String name); + + IScoreboardTeam getTeam(String name); + + void removeTeam(String name); } diff --git a/src/api/java/noppes/npcs/api/scoreboard/IScoreboardObjective.java b/src/api/java/noppes/npcs/api/scoreboard/IScoreboardObjective.java new file mode 100644 index 000000000..b71fcae01 --- /dev/null +++ b/src/api/java/noppes/npcs/api/scoreboard/IScoreboardObjective.java @@ -0,0 +1,14 @@ +package noppes.npcs.api.scoreboard; + +public interface IScoreboardObjective { + + String getName(); + + String getDisplayName(); + + void setDisplayName(String name); + + String getCriteria(); + + boolean isReadyOnly(); +} diff --git a/src/api/java/noppes/npcs/api/scoreboard/IScoreboardTeam.java b/src/api/java/noppes/npcs/api/scoreboard/IScoreboardTeam.java new file mode 100644 index 000000000..07239f964 --- /dev/null +++ b/src/api/java/noppes/npcs/api/scoreboard/IScoreboardTeam.java @@ -0,0 +1,31 @@ +package noppes.npcs.api.scoreboard; + +public interface IScoreboardTeam { + String getName(); + + String getDisplayName(); + + void setDisplayName(String name); + + void addPlayer(String player); + + void removePlayer(String player); + + String[] getPlayers(); + + int getTeamsize(); + + void clearPlayers(); + + boolean getFriendlyFire(); + + void setFriendlyFire(boolean bo); + + void setColor(String color); + + String getColor(); + + void setSeeInvisibleTeamPlayers(boolean bo); + + boolean getSeeInvisibleTeamPlayers(); +} diff --git a/src/main/java/noppes/npcs/scripted/scoreboard/ScriptScoreboard.java b/src/main/java/noppes/npcs/scripted/scoreboard/ScriptScoreboard.java index d2210c395..bc9877b0d 100644 --- a/src/main/java/noppes/npcs/scripted/scoreboard/ScriptScoreboard.java +++ b/src/main/java/noppes/npcs/scripted/scoreboard/ScriptScoreboard.java @@ -10,6 +10,8 @@ import net.minecraft.scoreboard.ScorePlayerTeam; import net.minecraft.scoreboard.Scoreboard; import net.minecraft.server.MinecraftServer; import noppes.npcs.api.scoreboard.IScoreboard; +import noppes.npcs.api.scoreboard.IScoreboardObjective; +import noppes.npcs.api.scoreboard.IScoreboardTeam; /** * @author Karel @@ -24,9 +26,9 @@ public class ScriptScoreboard implements IScoreboard { /** * @return Returns an array with all ScoreboardObjectives */ - public ScriptScoreboardObjective[] getObjectives(){ + public IScoreboardObjective[] getObjectives(){ List collection = new ArrayList(board.getScoreObjectives()); - ScriptScoreboardObjective[] objectives = new ScriptScoreboardObjective[collection.size()]; + IScoreboardObjective[] objectives = new IScoreboardObjective[collection.size()]; for(int i = 0; i < collection.size(); i++){ objectives[i] = new ScriptScoreboardObjective(collection.get(i)); } @@ -37,7 +39,7 @@ public class ScriptScoreboard implements IScoreboard { * @param name Name of the objective * @return Returns the ScoreboardObjective */ - public ScriptScoreboardObjective getObjective(String name){ + public IScoreboardObjective getObjective(String name){ ScoreObjective obj = board.getObjective(name); if(obj == null) return null; @@ -67,7 +69,7 @@ public class ScriptScoreboard implements IScoreboard { * @param criteria The criteria see http://minecraft.gamepedia.com/Scoreboard#Objectives * @return Returns the created ScoreboardObjective, returns null if it failed to create */ - public ScriptScoreboardObjective addObjective(String objective, String criteria){ + public IScoreboardObjective addObjective(String objective, String criteria){ if(hasObjective(objective)) return null; @@ -144,17 +146,17 @@ public class ScriptScoreboard implements IScoreboard { board.func_96516_a(player); } - public ScriptScoreboardTeam[] getTeams(){ + public IScoreboardTeam[] getTeams(){ List list = new ArrayList(board.getTeams()); - ScriptScoreboardTeam[] teams = new ScriptScoreboardTeam[list.size()]; + IScoreboardTeam[] teams = new IScoreboardTeam[list.size()]; for(int i = 0; i < list.size(); i++){ teams[i] = new ScriptScoreboardTeam(list.get(i), board); } return teams; } - public ScriptScoreboardTeam getTeamByName(String name) { - ScriptScoreboardTeam[] teams = getTeams(); + public IScoreboardTeam getTeamByName(String name) { + IScoreboardTeam[] teams = getTeams(); for (int i = 0; i < teams.length; i++) { if (teams[i].getName().equals(name)) { return teams[i]; @@ -167,13 +169,13 @@ public class ScriptScoreboard implements IScoreboard { return board.getPlayersTeam(name) != null; } - public ScriptScoreboardTeam addTeam(String name){ + public IScoreboardTeam addTeam(String name){ if(hasTeam(name)) return null; return new ScriptScoreboardTeam(board.createTeam(name), board); } - public ScriptScoreboardTeam getTeam(String name){ + public IScoreboardTeam getTeam(String name){ ScorePlayerTeam team = board.getPlayersTeam(name); if(team == null) return null; diff --git a/src/main/java/noppes/npcs/scripted/scoreboard/ScriptScoreboardObjective.java b/src/main/java/noppes/npcs/scripted/scoreboard/ScriptScoreboardObjective.java index 63cea0160..164627baf 100644 --- a/src/main/java/noppes/npcs/scripted/scoreboard/ScriptScoreboardObjective.java +++ b/src/main/java/noppes/npcs/scripted/scoreboard/ScriptScoreboardObjective.java @@ -1,11 +1,12 @@ package noppes.npcs.scripted.scoreboard; import net.minecraft.scoreboard.ScoreObjective; +import noppes.npcs.api.scoreboard.IScoreboardObjective; -public class ScriptScoreboardObjective { +public class ScriptScoreboardObjective implements IScoreboardObjective { private ScoreObjective objective; - protected ScriptScoreboardObjective(ScoreObjective objective){ + public ScriptScoreboardObjective(ScoreObjective objective){ this.objective = objective; } diff --git a/src/main/java/noppes/npcs/scripted/scoreboard/ScriptScoreboardTeam.java b/src/main/java/noppes/npcs/scripted/scoreboard/ScriptScoreboardTeam.java index 1d6233dd8..d0c89b354 100644 --- a/src/main/java/noppes/npcs/scripted/scoreboard/ScriptScoreboardTeam.java +++ b/src/main/java/noppes/npcs/scripted/scoreboard/ScriptScoreboardTeam.java @@ -6,11 +6,12 @@ import java.util.List; import net.minecraft.scoreboard.ScorePlayerTeam; import net.minecraft.scoreboard.Scoreboard; import net.minecraft.util.EnumChatFormatting; +import noppes.npcs.api.scoreboard.IScoreboardTeam; -public class ScriptScoreboardTeam { +public class ScriptScoreboardTeam implements IScoreboardTeam { private ScorePlayerTeam team; private Scoreboard board; - protected ScriptScoreboardTeam(ScorePlayerTeam team, Scoreboard board){ + public ScriptScoreboardTeam(ScorePlayerTeam team, Scoreboard board){ this.team = team; this.board = board; }