Sehr geehrte Community,
Ich habe ein Problem mit meinem Plugin.
Erklärung des Plugins:
Ich setze beim PlayerJoinEvent das Scoreboard erstmals.
Dann setzte ich Teams welche durch einen Scheduler jede Sekunde geupdatet werden.
Soweit so gut, nur funktioniert das Scoreboard solange bis ein zweiter Spieler
Joint. Danach wechselt das Scoreboard die Infos zwischen mir und dem zweiten Spieler und flackert herum.
Darum die Frage an die Community ob ihr mir weiterhelfen könntet.
Hier mein Code:
https://pastebin.com/bb1r2Acr
Ich habe ein Problem mit meinem Plugin.
Erklärung des Plugins:
Ich setze beim PlayerJoinEvent das Scoreboard erstmals.
Dann setzte ich Teams welche durch einen Scheduler jede Sekunde geupdatet werden.
Soweit so gut, nur funktioniert das Scoreboard solange bis ein zweiter Spieler
Joint. Danach wechselt das Scoreboard die Infos zwischen mir und dem zweiten Spieler und flackert herum.
Darum die Frage an die Community ob ihr mir weiterhelfen könntet.
Hier mein Code:
https://pastebin.com/bb1r2Acr
Code:
package de.xGamerTim.Sidebar;
import java.lang.reflect.Field;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.scoreboard.DisplaySlot;
import org.bukkit.scoreboard.Objective;
import org.bukkit.scoreboard.Scoreboard;
import org.bukkit.scoreboard.Team;
import net.md_5.bungee.api.ChatColor;
import net.minecraft.server.v1_8_R3.IChatBaseComponent;
import net.minecraft.server.v1_8_R3.PacketPlayOutPlayerListHeaderFooter;
import net.minecraft.server.v1_8_R3.IChatBaseComponent.ChatSerializer;
import ru.tehkode.permissions.bukkit.Permission***;
public class setBoard implements Listener
{
public static HashMap<Scoreboard, Player> boards = new HashMap<>();
@SuppressWarnings("deprecation")
public static void setScoreboard (Player p)
{
Date today1 = Calendar.getInstance().getTime();
DateFormat tm = new SimpleDateFormat("HH:mm");
String time = tm.format(today1);
Scoreboard board = Bukkit.getScoreboardManager().getNewScoreboard();
Objective obj = board.registerNewObjective("aaa","bbb");
obj.setDisplaySlot(DisplaySlot.SIDEBAR);
obj.setDisplayName("§a§lScoreboard");
Team team1 = board.registerNewTeam("Team1");
Team team2 = board.registerNewTeam("Team2");
Team team3 = board.registerNewTeam("Team3");
Team team4 = board.registerNewTeam("Team4");
Team team5 = board.registerNewTeam("Team5");
Team team6 = board.registerNewTeam("Team6");
Team team7 = board.registerNewTeam("Team7");
Team team8 = board.registerNewTeam("Team8");
Team team9 = board.registerNewTeam("Team9");
Team team10 = board.registerNewTeam("Team10");
Team team11 = board.registerNewTeam("Team11");
Team team12 = board.registerNewTeam("Team12");
Team team13 = board.registerNewTeam("Team13");
Team team14 = board.registerNewTeam("Team14");
Team team15 = board.registerNewTeam("Team15");
Team team16 = board.registerNewTeam("Team16");
team1.setPrefix("§r§1");
team2.setPrefix("§a§lDein Name:");
team3.setPrefix("§7" + Permission***.getUser(p).getGroups()[0].getPrefix() + p.getName());
team4.setPrefix("§r§2");
team5.setPrefix("§a§lDein Rang:");
team6.setPrefix("§7" + Permission***.getUser(p).getGroups()[0].getPrefix() + Permission***.getUser(p).getGroups()[0].getName());
team7.setPrefix("§r§3");
team8.setPrefix("§a§lGuthaben:");
team9.setPrefix("§a" + de.xGamerTim.Shop.Economy.EconomySystem.getStringMoney(p.getName()) + " §7€");
team10.setPrefix("§r§4");
team11.setPrefix("§a§lUhrzeit:");
team12.setPrefix("§7" + time);
team13.setPrefix("§r§5");
team14.setPrefix("§a§lOnline:");
team15.setPrefix("§a" + Bukkit.getOnlinePlayers().size() + "§7/§c" + Bukkit.getMaxPlayers());
team16.setPrefix("§r§6");
team1.addEntry("§a".toString());
team2.addEntry("§b".toString());
team3.addEntry("§c".toString());
team4.addEntry("§d".toString());
team5.addEntry("§e".toString());
team6.addEntry("§f".toString());
team7.addEntry("§1".toString());
team8.addEntry("§2".toString());
team9.addEntry("§3".toString());
team10.addEntry("§4".toString());
team11.addEntry("§5".toString());
team12.addEntry("§6".toString());
team13.addEntry("§7".toString());
team14.addEntry("§8".toString());
team15.addEntry("§9".toString());
team16.addEntry("§0".toString());
obj.getScore("§a".toString()).setScore(16);
obj.getScore("§b".toString()).setScore(15);
obj.getScore("§c".toString()).setScore(14);
obj.getScore("§d".toString()).setScore(13);
obj.getScore("§e".toString()).setScore(12);
obj.getScore("§f".toString()).setScore(11);
obj.getScore("§1".toString()).setScore(10);
obj.getScore("§2".toString()).setScore(9);
obj.getScore("§3".toString()).setScore(8);
obj.getScore("§4".toString()).setScore(7);
obj.getScore("§5".toString()).setScore(6);
obj.getScore("§6".toString()).setScore(5);
obj.getScore("§7".toString()).setScore(4);
obj.getScore("§8".toString()).setScore(3);
obj.getScore("§9".toString()).setScore(2);
obj.getScore("§0".toString()).setScore(1);
boards.put(board,p);
p.setScoreboard(board);
Bukkit.getScheduler().scheduleAsyncRepeatingTask(Main.getInstance(), new Runnable()
{
@Override
public void run()
{
Player player = boards.get(board);
for (Scoreboard board : boards.keySet())
{
Date today1 = Calendar.getInstance().getTime();
DateFormat tm = new SimpleDateFormat("HH:mm");
String time2 = tm.format(today1);
board.getTeam("Team3").setPrefix("§7" + Permission***.getUser(p).getGroups()[0].getPrefix() + p.getDisplayName());
board.getTeam("Team6").setPrefix("§7" + Permission***.getUser(p).getGroups()[0].getPrefix() + Permission***.getUser(p).getGroups()[0].getName());
board.getTeam("Team9").setPrefix("§a" + de.xGamerTim.Shop.Economy.EconomySystem.getStringMoney(p.getName()) + " §7€");
board.getTeam("Team15").setPrefix("§a" + Bukkit.getOnlinePlayers().size() + "§7/§c" + Bukkit.getMaxPlayers());
board.getTeam("Team12").setPrefix("§7" + time2);
p.setScoreboard(board);
}
}
}, 0, 20);
}
public static void setTablist(Player p, String header, String footer)
{
if(header == null) header = "";
if(footer == null) footer = "";
IChatBaseComponent tabHeater = ChatSerializer.a("{\"text\":\"" + header + "\"}");
IChatBaseComponent tabFooter = ChatSerializer.a("{\"text\":\"" + footer + "\"}");
PacketPlayOutPlayerListHeaderFooter headerPacket = new PacketPlayOutPlayerListHeaderFooter(tabHeater);
try
{
Field field = headerPacket.getClass().getDeclaredField("b");
field.setAccessible(true);
field.set(headerPacket, tabFooter);
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
((CraftPlayer)p).getHandle().playerConnection.sendPacket(headerPacket);
}
}
@EventHandler
public void onJoin(PlayerJoinEvent e)
{
Player p = e.getPlayer();
setTablist(e.getPlayer(), "§8» §aHerzlich Willkommen auf dem Server §8« \n §8» §bOpen Beta §8«", "§8» §7Dies ist ein Plugintestserver §8«");
setScoreboard(p);
}
}