/* * Copyright (c) 2018 Jitse Boonstra */ package net.jitse.npclib.nms.v1_16_R3.packets; import com.comphenix.tinyprotocol.Reflection; import net.minecraft.server.v1_16_R3.ChatComponentText; import net.minecraft.server.v1_16_R3.IChatBaseComponent; import net.minecraft.server.v1_16_R3.PacketPlayOutScoreboardTeam; import java.util.Collection; import java.util.Collections; /** * @author Jitse Boonstra */ public class PacketPlayOutScoreboardTeamWrapper { public PacketPlayOutScoreboardTeam createRegisterTeam(String name) { PacketPlayOutScoreboardTeam packetPlayOutScoreboardTeam = new PacketPlayOutScoreboardTeam(); Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "i", int.class) .set(packetPlayOutScoreboardTeam, 0); Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "a", String.class) .set(packetPlayOutScoreboardTeam, name); Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "b", IChatBaseComponent.class) .set(packetPlayOutScoreboardTeam, new ChatComponentText(name)); Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "e", String.class) .set(packetPlayOutScoreboardTeam, "never"); Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "f", String.class) .set(packetPlayOutScoreboardTeam, "never"); Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "j", int.class) .set(packetPlayOutScoreboardTeam, 0); Reflection.FieldAccessor collectionFieldAccessor = Reflection.getField( packetPlayOutScoreboardTeam.getClass(), "h", Collection.class); collectionFieldAccessor.set(packetPlayOutScoreboardTeam, Collections.singletonList(name)); return packetPlayOutScoreboardTeam; } public PacketPlayOutScoreboardTeam createUnregisterTeam(String name) { PacketPlayOutScoreboardTeam packetPlayOutScoreboardTeam = new PacketPlayOutScoreboardTeam(); Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "i", int.class) .set(packetPlayOutScoreboardTeam, 1); Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "a", String.class) .set(packetPlayOutScoreboardTeam, name); return packetPlayOutScoreboardTeam; } }