import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
import org.bukkit.entity.Player;
import net.minecraft.server.v1_8_R3.Packet;
import net.minecraft.server.v1_8_R3.Packet206SetScoreboardObjective;
import net.minecraft.server.v1_8_R3.Packet207SetScoreboardScore;
import net.minecraft.server.v1_8_R3.Packet208SetScoreboardDisplayObjective;
import net.minecraft.server.v1_8_R3.Scoreboard;
import net.minecraft.server.v1_8_R3.ScoreboardBaseCriteria;
import net.minecraft.server.v1_8_R3.ScoreboardScore;
public class ScoreBoardManager {
static String name = "Test";
static Scoreboard sb = new Scoreboard();
public static void sendPacket(Player player, Packet packet) {
((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet);
}
public void CreateSidebar(Player p){
if(sb.getObjective(name) == null){
sb.registerObjective(name, new ScoreboardBaseCriteria(name));
}
Packet206SetScoreboardObjective packet = new Packet206SetScoreboardObjective(sb.getObjective(name), 0);
Packet208SetScoreboardDisplayObjective display = new Packet208SetScoreboardDisplayObjective(1, sb.getObjective(name));
sendPacket(p, packet);
sendPacket(p, display);
for(String score : getConfig().getStringList("Board")){
String[] scores = score.split(";", 2);
String scorename = scores[0];
String scorevaule = scores[1];
try{
getLogger().info(scorename + " + "+ scorevaule);
int vaule = ScoreboardItemsReplacer.getReplacedInt(scorevaule, p);
ScoreboardScore scoreItem = sb.getPlayerScoreForObjective(scorename, sb.getObjective(name));
scoreItem.setScore(vaule);
Packet207SetScoreboardScore scoreItemP = new Packet207SetScoreboardScore(scoreItem, 0);
sendPacket(p, scoreItemP);
}catch(NumberFormatException e){
getLogger().info(scorename + " + ! + "+ scorevaule);
}
}
}
public void UpdateScore(){
Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(кек, new Runnable(){
@Override
public void run() {
for (Player p : Bukkit.getOnlinePlayers()){
Packet206SetScoreboardObjective packet = new Packet206SetScoreboardObjective(sb.getObjective(name), 2);
Packet208SetScoreboardDisplayObjective display = new Packet208SetScoreboardDisplayObjective(1, sb.getObjective(name));
sendPacket(p, packet);
sendPacket(p, display);
for(String score : getConfig().getStringList("Board")){
String[] scores = score.split(";", 2);
String scorename = scores[0];
String scorevaule = scores[1];
try{
getLogger().info(scorename + " + "+ scorevaule);
int vaule = ScoreboardItemsReplacer.getReplacedInt(scorevaule, p);
ScoreboardScore scoreItem = sb.getPlayerScoreForObjective(scorename, sb.getObjective(name));
scoreItem.setScore(vaule);
Packet207SetScoreboardScore scoreItemP = new Packet207SetScoreboardScore(scoreItem, 0);
sendPacket(p, scoreItemP);
}catch(NumberFormatException e){
getLogger().info(scorename + " + ! + "+ scorevaule);
}
}
}
}
}, 0L, 10*20L);
}
}