package net.aufdemrand.denizen.nms.abstracts;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public abstract class Sidebar {
protected final Player player;
protected String title;
protected String[] lines;
protected int[] scores;
protected int start;
protected int increment;
public Sidebar(Player player) {
this.player = player;
setTitle("");
this.lines = new String[15];
this.scores = new int[15];
this.start = Integer.MIN_VALUE;
this.increment = -1;
}
public String getTitle() {
return title;
}
public List<String> getLines() {
return new ArrayList<String>(Arrays.asList(lines));
}
public int[] getScores() {
return scores;
}
public int getStart() {
return start;
}
public int getIncrement() {
return increment;
}
public final void setTitle(String title) {
if (title.length() > 32) {
title = title.substring(0, 32);
}
if (this.title == null || !this.title.equals(title)) {
this.title = title;
setDisplayName(title);
}
}
protected abstract void setDisplayName(String title);
public void setStart(int start) {
this.start = start;
}
public void setIncrement(int increment) {
this.increment = increment;
}
public void setLines(List<String> lines) {
lines.removeAll(Collections.singleton((String) null));
this.lines = new String[15];
this.scores = new int[15];
int score = this.start;
if (score == Integer.MIN_VALUE) {
score = lines.size();
}
for (int i = 0; i < lines.size() && i < this.lines.length; i++, score += this.increment) {
String line = lines.get(i);
if (line.length() > 40) {
line = line.substring(0, 40);
}
this.lines[i] = line;
this.scores[i] = score;
}
}
public abstract void sendUpdate();
public abstract void remove();
}