Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.xenodev.ka.extras;
- import net.minecraft.EnumChatFormat;
- import net.minecraft.network.chat.ChatComponentText;
- import net.minecraft.network.protocol.Packet;
- import net.minecraft.network.protocol.game.PacketPlayOutScoreboardTeam;
- import net.minecraft.world.scores.Scoreboard;
- import net.minecraft.world.scores.ScoreboardTeam;
- import org.bukkit.Bukkit;
- import org.bukkit.craftbukkit.v1_17_R1.entity.CraftPlayer;
- import org.bukkit.entity.Player;
- import java.util.HashMap;
- import java.util.UUID;
- public class TeamManager {
- private static TeamManager instance;
- private Scoreboard scoreboard;
- private HashMap<UUID, String> teams;
- public TeamManager(){
- scoreboard = new Scoreboard();
- teams = new HashMap<>();
- }
- public void registerTeam(Player p, String prefix, EnumChatFormat color, String suffix, int level){
- String s = level + p.getUniqueId().toString().substring(1, 6);
- if(scoreboard.getTeam(s) != null){
- scoreboard.removeTeam(scoreboard.getTeam(s));
- }
- ScoreboardTeam team = scoreboard.createTeam(s);
- team.setColor(color);
- team.setPrefix(new ChatComponentText(prefix));
- team.setSuffix(new ChatComponentText(suffix));
- teams.put(p.getUniqueId(), s);
- update();
- }
- private void update() {
- for(Player all : Bukkit.getOnlinePlayers()){
- if(!scoreboard.getTeam(teams.get(all.getUniqueId())).getPlayerNameSet().contains(all.getName())){
- scoreboard.getTeam(teams.get(all.getUniqueId())).getPlayerNameSet().add(all.getName());
- }
- sendPacket(new PacketPlayOutScoreboardTeam(scoreboard.getTeam(teams.get(all.getUniqueId())), 1));
- sendPacket(new PacketPlayOutScoreboardTeam(scoreboard.getTeam(teams.get(all.getUniqueId())), 0));
- }
- }
- private void sendPacket(Packet<?> packet){
- for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
- CraftPlayer p = (CraftPlayer)onlinePlayer;
- p.getHandle().b.sendPacket(packet);
- }
- }
- public static TeamManager getInstance(){
- if(instance == null){
- instance = new TeamManager();
- }
- return instance;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment