Guest User

Packet Scoreboard Team

a guest
Oct 3rd, 2021
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.26 KB | None | 0 0
  1. package me.xenodev.ka.extras;
  2.  
  3. import net.minecraft.EnumChatFormat;
  4. import net.minecraft.network.chat.ChatComponentText;
  5. import net.minecraft.network.protocol.Packet;
  6. import net.minecraft.network.protocol.game.PacketPlayOutScoreboardTeam;
  7. import net.minecraft.world.scores.Scoreboard;
  8. import net.minecraft.world.scores.ScoreboardTeam;
  9. import org.bukkit.Bukkit;
  10. import org.bukkit.craftbukkit.v1_17_R1.entity.CraftPlayer;
  11. import org.bukkit.entity.Player;
  12.  
  13. import java.util.HashMap;
  14. import java.util.UUID;
  15.  
  16. public class TeamManager {
  17.  
  18. private static TeamManager instance;
  19. private Scoreboard scoreboard;
  20. private HashMap<UUID, String> teams;
  21.  
  22. public TeamManager(){
  23. scoreboard = new Scoreboard();
  24. teams = new HashMap<>();
  25. }
  26.  
  27. public void registerTeam(Player p, String prefix, EnumChatFormat color, String suffix, int level){
  28. String s = level + p.getUniqueId().toString().substring(1, 6);
  29.  
  30. if(scoreboard.getTeam(s) != null){
  31. scoreboard.removeTeam(scoreboard.getTeam(s));
  32. }
  33.  
  34. ScoreboardTeam team = scoreboard.createTeam(s);
  35. team.setColor(color);
  36. team.setPrefix(new ChatComponentText(prefix));
  37. team.setSuffix(new ChatComponentText(suffix));
  38.  
  39. teams.put(p.getUniqueId(), s);
  40. update();
  41. }
  42.  
  43. private void update() {
  44. for(Player all : Bukkit.getOnlinePlayers()){
  45. if(!scoreboard.getTeam(teams.get(all.getUniqueId())).getPlayerNameSet().contains(all.getName())){
  46. scoreboard.getTeam(teams.get(all.getUniqueId())).getPlayerNameSet().add(all.getName());
  47. }
  48. sendPacket(new PacketPlayOutScoreboardTeam(scoreboard.getTeam(teams.get(all.getUniqueId())), 1));
  49. sendPacket(new PacketPlayOutScoreboardTeam(scoreboard.getTeam(teams.get(all.getUniqueId())), 0));
  50. }
  51. }
  52.  
  53. private void sendPacket(Packet<?> packet){
  54. for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
  55. CraftPlayer p = (CraftPlayer)onlinePlayer;
  56. p.getHandle().b.sendPacket(packet);
  57. }
  58. }
  59.  
  60. public static TeamManager getInstance(){
  61. if(instance == null){
  62. instance = new TeamManager();
  63. }
  64. return instance;
  65. }
  66.  
  67.  
  68. }
  69.  
Advertisement
Add Comment
Please, Sign In to add comment