Skip to content

Commit

Permalink
[Scoreboard] Do not add API scoreboards to the chain of scoreboards t…
Browse files Browse the repository at this point in the history
…o go through (#1409)
  • Loading branch information
NEZNAMY committed Jan 10, 2025
1 parent f005907 commit ae82871
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@ public class ScoreboardImpl extends RefreshableFeature implements me.neznamy.tab
//display condition
private Condition displayCondition;

/** Flag tracking whether this scoreboard was made using API or not */
private final boolean api;

//lines of scoreboard
private final List<Line> lines = new ArrayList<>();

Expand All @@ -60,7 +63,7 @@ public class ScoreboardImpl extends RefreshableFeature implements me.neznamy.tab
* Scoreboard properties
*/
public ScoreboardImpl(@NonNull ScoreboardManagerImpl manager, @NonNull String name, @NonNull ScoreboardDefinition definition) {
this(manager, name, definition, false);
this(manager, name, definition, false, false);
displayCondition = Condition.getCondition(definition.getDisplayCondition());
if (displayCondition != null) {
manager.addUsedPlaceholder(TabConstants.Placeholder.condition(displayCondition.getName()));
Expand All @@ -78,10 +81,13 @@ public ScoreboardImpl(@NonNull ScoreboardManagerImpl manager, @NonNull String na
* Scoreboard properties
* @param dynamicLinesOnly
* Whether this scoreboard should only use dynamic lines or not
* @param api
* Whether this scoreboard was created using API or not
*/
public ScoreboardImpl(@NonNull ScoreboardManagerImpl manager, @NonNull String name, @NonNull ScoreboardDefinition definition, boolean dynamicLinesOnly) {
public ScoreboardImpl(@NonNull ScoreboardManagerImpl manager, @NonNull String name, @NonNull ScoreboardDefinition definition, boolean dynamicLinesOnly, boolean api) {
this.manager = manager;
this.name = name;
this.api = api;
title = definition.getTitle();
for (int i = 0; i< definition.getLines().size(); i++) {
String line = definition.getLines().get(i);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ public void load() {
registeredScoreboards.put(scoreboardName, sb);
TAB.getInstance().getFeatureManager().registerFeature(TabConstants.Feature.scoreboardLine(scoreboardName), sb);
}
definedScoreboards = registeredScoreboards.values().toArray(new me.neznamy.tab.api.scoreboard.Scoreboard[0]);
definedScoreboards = registeredScoreboards.values().stream().filter(s -> !((ScoreboardImpl)s).isApi()).toArray(me.neznamy.tab.api.scoreboard.Scoreboard[]::new);
for (TabPlayer p : TAB.getInstance().getOnlinePlayers()) {
onJoin(p);
}
Expand Down Expand Up @@ -213,9 +213,8 @@ public void onQuit(@NotNull TabPlayer disconnectedPlayer) {
@NotNull
public me.neznamy.tab.api.scoreboard.Scoreboard createScoreboard(@NonNull String name, @NonNull String title, @NonNull List<String> lines) {
ensureActive();
me.neznamy.tab.api.scoreboard.Scoreboard sb = new ScoreboardImpl(this, name, new ScoreboardDefinition(null, title, lines), true);
ScoreboardImpl sb = new ScoreboardImpl(this, name, new ScoreboardDefinition(null, title, lines), true, true);
registeredScoreboards.put(name, sb);
definedScoreboards = registeredScoreboards.values().toArray(new me.neznamy.tab.api.scoreboard.Scoreboard[0]);
return sb;
}

Expand Down

0 comments on commit ae82871

Please sign in to comment.