Removed support for 1.8 R2
This commit is contained in:
parent
80b0dc86f7
commit
10847df695
|
@ -28,7 +28,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.spigotmc</groupId>
|
<groupId>org.spigotmc</groupId>
|
||||||
<artifactId>spigot-api</artifactId>
|
<artifactId>spigot-api</artifactId>
|
||||||
<version>1.15.2-R0.1-SNAPSHOT</version>
|
<version>1.16.1-R0.1-SNAPSHOT</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|
|
@ -14,7 +14,6 @@
|
||||||
<artifactId>npclib-nms</artifactId>
|
<artifactId>npclib-nms</artifactId>
|
||||||
|
|
||||||
<modules>
|
<modules>
|
||||||
<module>v1_8_R2</module>
|
|
||||||
<module>v1_8_R3</module>
|
<module>v1_8_R3</module>
|
||||||
<module>v1_9_R1</module>
|
<module>v1_9_R1</module>
|
||||||
<module>v1_9_R2</module>
|
<module>v1_9_R2</module>
|
||||||
|
|
|
@ -1,24 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<project
|
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
|
|
||||||
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
|
||||||
<packaging>jar</packaging>
|
|
||||||
|
|
||||||
<parent>
|
|
||||||
<groupId>net.jitse</groupId>
|
|
||||||
<artifactId>npclib-nms</artifactId>
|
|
||||||
<version>2.9-SNAPSHOT</version>
|
|
||||||
</parent>
|
|
||||||
|
|
||||||
<artifactId>npclib-nms-v1_8_R2</artifactId>
|
|
||||||
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.spigotmc</groupId>
|
|
||||||
<artifactId>spigot</artifactId>
|
|
||||||
<version>1.8.3-R0.1-SNAPSHOT</version>
|
|
||||||
<scope>provided</scope>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
</project>
|
|
|
@ -1,160 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2018 Jitse Boonstra
|
|
||||||
*/
|
|
||||||
|
|
||||||
package net.jitse.npclib.nms.v1_8_R2;
|
|
||||||
|
|
||||||
import com.mojang.authlib.GameProfile;
|
|
||||||
import com.mojang.authlib.properties.Property;
|
|
||||||
import net.jitse.npclib.NPCLib;
|
|
||||||
import net.jitse.npclib.api.skin.Skin;
|
|
||||||
import net.jitse.npclib.api.state.NPCAnimation;
|
|
||||||
import net.jitse.npclib.api.state.NPCSlot;
|
|
||||||
import net.jitse.npclib.hologram.Hologram;
|
|
||||||
import net.jitse.npclib.internal.MinecraftVersion;
|
|
||||||
import net.jitse.npclib.internal.NPCBase;
|
|
||||||
import net.jitse.npclib.nms.v1_8_R2.packets.*;
|
|
||||||
import net.minecraft.server.v1_8_R2.*;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.craftbukkit.v1_8_R2.entity.CraftPlayer;
|
|
||||||
import org.bukkit.craftbukkit.v1_8_R2.inventory.CraftItemStack;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Jitse Boonstra
|
|
||||||
*/
|
|
||||||
public class NPC_v1_8_R2 extends NPCBase {
|
|
||||||
|
|
||||||
private PacketPlayOutNamedEntitySpawn packetPlayOutNamedEntitySpawn;
|
|
||||||
private PacketPlayOutScoreboardTeam packetPlayOutScoreboardTeamRegister;
|
|
||||||
private PacketPlayOutPlayerInfo packetPlayOutPlayerInfoAdd, packetPlayOutPlayerInfoRemove;
|
|
||||||
private PacketPlayOutEntityHeadRotation packetPlayOutEntityHeadRotation;
|
|
||||||
private PacketPlayOutEntityDestroy packetPlayOutEntityDestroy;
|
|
||||||
|
|
||||||
public NPC_v1_8_R2(NPCLib instance, List<String> lines) {
|
|
||||||
super(instance, lines);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Hologram getPlayerHologram(Player player) {
|
|
||||||
Hologram holo = super.getPlayerHologram(player);
|
|
||||||
if (holo == null){
|
|
||||||
holo = new Hologram(MinecraftVersion.V1_8_R2, location.clone().add(0, 0.5, 0), getPlayerLines(player));
|
|
||||||
}
|
|
||||||
super.textDisplayHolograms.put(player.getUniqueId(), holo);
|
|
||||||
return holo;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void createPackets() {
|
|
||||||
Bukkit.getOnlinePlayers().forEach(this::createPackets);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void createPackets(Player player) {
|
|
||||||
|
|
||||||
PacketPlayOutPlayerInfoWrapper packetPlayOutPlayerInfoWrapper = new PacketPlayOutPlayerInfoWrapper();
|
|
||||||
|
|
||||||
// Packets for spawning the NPC:
|
|
||||||
this.packetPlayOutScoreboardTeamRegister = new PacketPlayOutScoreboardTeamWrapper()
|
|
||||||
.createRegisterTeam(name); // First packet to send.
|
|
||||||
|
|
||||||
this.packetPlayOutPlayerInfoAdd = packetPlayOutPlayerInfoWrapper
|
|
||||||
.create(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, gameProfile, name); // Second packet to send.
|
|
||||||
|
|
||||||
this.packetPlayOutNamedEntitySpawn = new PacketPlayOutNamedEntitySpawnWrapper()
|
|
||||||
.create(uuid, location, entityId); // Third packet to send.
|
|
||||||
|
|
||||||
this.packetPlayOutEntityHeadRotation = new PacketPlayOutEntityHeadRotationWrapper()
|
|
||||||
.create(location, entityId); // Fourth packet to send.
|
|
||||||
|
|
||||||
this.packetPlayOutPlayerInfoRemove = packetPlayOutPlayerInfoWrapper
|
|
||||||
.create(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER, gameProfile, name); // Fifth packet to send (delayed).
|
|
||||||
|
|
||||||
// Packet for destroying the NPC:
|
|
||||||
this.packetPlayOutEntityDestroy = new PacketPlayOutEntityDestroy(entityId); // First packet to send.
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void sendShowPackets(Player player) {
|
|
||||||
PlayerConnection playerConnection = ((CraftPlayer) player).getHandle().playerConnection;
|
|
||||||
|
|
||||||
if (hasTeamRegistered.add(player.getUniqueId()))
|
|
||||||
playerConnection.sendPacket(packetPlayOutScoreboardTeamRegister);
|
|
||||||
playerConnection.sendPacket(packetPlayOutPlayerInfoAdd);
|
|
||||||
playerConnection.sendPacket(packetPlayOutNamedEntitySpawn);
|
|
||||||
playerConnection.sendPacket(packetPlayOutEntityHeadRotation);
|
|
||||||
|
|
||||||
getPlayerHologram(player).show(player);
|
|
||||||
|
|
||||||
// Removing the player info after 10 seconds.
|
|
||||||
Bukkit.getScheduler().runTaskLater(instance.getPlugin(), () ->
|
|
||||||
playerConnection.sendPacket(packetPlayOutPlayerInfoRemove), 200);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void sendHidePackets(Player player) {
|
|
||||||
PlayerConnection playerConnection = ((CraftPlayer) player).getHandle().playerConnection;
|
|
||||||
|
|
||||||
playerConnection.sendPacket(packetPlayOutEntityDestroy);
|
|
||||||
playerConnection.sendPacket(packetPlayOutPlayerInfoRemove);
|
|
||||||
getPlayerHologram(player).hide(player);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void sendMetadataPacket(Player player) {
|
|
||||||
PlayerConnection playerConnection = ((CraftPlayer) player).getHandle().playerConnection;
|
|
||||||
PacketPlayOutEntityMetadata packet = new PacketPlayOutEntityMetadataWrapper().create(activeStates, entityId);
|
|
||||||
|
|
||||||
playerConnection.sendPacket(packet);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void sendEquipmentPacket(Player player, NPCSlot slot, boolean auto) {
|
|
||||||
PlayerConnection playerConnection = ((CraftPlayer) player).getHandle().playerConnection;
|
|
||||||
|
|
||||||
if (slot == NPCSlot.OFFHAND) {
|
|
||||||
if (!auto) {
|
|
||||||
throw new UnsupportedOperationException("Offhand is not supported on servers below 1.9");
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
ItemStack item = getItem(slot);
|
|
||||||
|
|
||||||
PacketPlayOutEntityEquipment packet = new PacketPlayOutEntityEquipment(entityId, slot.getSlot(), CraftItemStack.asNMSCopy(item));
|
|
||||||
playerConnection.sendPacket(packet);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void sendAnimationPacket(Player player, NPCAnimation animation) {
|
|
||||||
if(animation == NPCAnimation.SWING_OFFHAND) {
|
|
||||||
throw new IllegalArgumentException("Offhand Swing Animations are only available on 1.9 and up.");
|
|
||||||
}
|
|
||||||
|
|
||||||
PlayerConnection playerConnection = ((CraftPlayer) player).getHandle().playerConnection;
|
|
||||||
|
|
||||||
PacketPlayOutAnimation packet = new PacketPlayOutAnimationWrapper().create(animation, entityId);
|
|
||||||
playerConnection.sendPacket(packet);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void updateSkin(Skin skin) {
|
|
||||||
GameProfile newProfile = new GameProfile(uuid, name);
|
|
||||||
newProfile.getProperties().get("textures").clear();
|
|
||||||
newProfile.getProperties().put("textures", new Property("textures", skin.getValue(), skin.getSignature()));
|
|
||||||
this.packetPlayOutPlayerInfoAdd = new PacketPlayOutPlayerInfoWrapper().create(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, newProfile, name);
|
|
||||||
for (Player player : Bukkit.getOnlinePlayers()) {
|
|
||||||
PlayerConnection playerConnection = ((CraftPlayer) player).getHandle().playerConnection;
|
|
||||||
playerConnection.sendPacket(packetPlayOutPlayerInfoRemove);
|
|
||||||
playerConnection.sendPacket(packetPlayOutEntityDestroy);
|
|
||||||
playerConnection.sendPacket(packetPlayOutPlayerInfoAdd);
|
|
||||||
playerConnection.sendPacket(packetPlayOutNamedEntitySpawn);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,20 +0,0 @@
|
||||||
package net.jitse.npclib.nms.v1_8_R2.packets;
|
|
||||||
|
|
||||||
import com.comphenix.tinyprotocol.Reflection;
|
|
||||||
import net.jitse.npclib.api.state.NPCAnimation;
|
|
||||||
import net.minecraft.server.v1_8_R2.PacketPlayOutAnimation;
|
|
||||||
|
|
||||||
public class PacketPlayOutAnimationWrapper {
|
|
||||||
|
|
||||||
public PacketPlayOutAnimation create(NPCAnimation npcAnimation, int entityId) {
|
|
||||||
PacketPlayOutAnimation packetPlayOutAnimation = new PacketPlayOutAnimation();
|
|
||||||
|
|
||||||
Reflection.getField(packetPlayOutAnimation.getClass(), "a", int.class)
|
|
||||||
.set(packetPlayOutAnimation, entityId);
|
|
||||||
Reflection.getField(packetPlayOutAnimation.getClass(), "b", int.class)
|
|
||||||
.set(packetPlayOutAnimation, npcAnimation.getId());
|
|
||||||
|
|
||||||
return packetPlayOutAnimation;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,26 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2018 Jitse Boonstra
|
|
||||||
*/
|
|
||||||
|
|
||||||
package net.jitse.npclib.nms.v1_8_R2.packets;
|
|
||||||
|
|
||||||
import com.comphenix.tinyprotocol.Reflection;
|
|
||||||
import net.minecraft.server.v1_8_R2.PacketPlayOutEntityHeadRotation;
|
|
||||||
import org.bukkit.Location;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Jitse Boonstra
|
|
||||||
*/
|
|
||||||
public class PacketPlayOutEntityHeadRotationWrapper {
|
|
||||||
|
|
||||||
public PacketPlayOutEntityHeadRotation create(Location location, int entityId) {
|
|
||||||
PacketPlayOutEntityHeadRotation packetPlayOutEntityHeadRotation = new PacketPlayOutEntityHeadRotation();
|
|
||||||
|
|
||||||
Reflection.getField(packetPlayOutEntityHeadRotation.getClass(), "a", int.class).
|
|
||||||
set(packetPlayOutEntityHeadRotation, entityId);
|
|
||||||
Reflection.getField(packetPlayOutEntityHeadRotation.getClass(), "b", byte.class)
|
|
||||||
.set(packetPlayOutEntityHeadRotation, (byte) ((int) location.getYaw() * 256.0F / 360.0F));
|
|
||||||
|
|
||||||
return packetPlayOutEntityHeadRotation;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
package net.jitse.npclib.nms.v1_8_R2.packets;
|
|
||||||
|
|
||||||
import net.jitse.npclib.api.state.NPCState;
|
|
||||||
import net.minecraft.server.v1_8_R2.DataWatcher;
|
|
||||||
import net.minecraft.server.v1_8_R2.PacketPlayOutEntityMetadata;
|
|
||||||
|
|
||||||
import java.util.Collection;
|
|
||||||
|
|
||||||
public class PacketPlayOutEntityMetadataWrapper {
|
|
||||||
|
|
||||||
public PacketPlayOutEntityMetadata create(Collection<NPCState> activateStates, int entityId) {
|
|
||||||
DataWatcher dataWatcher = new DataWatcher(null);
|
|
||||||
byte masked = NPCState.getMasked(activateStates);
|
|
||||||
dataWatcher.a(0, masked);
|
|
||||||
|
|
||||||
return new PacketPlayOutEntityMetadata(entityId, dataWatcher, true);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,45 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2018 Jitse Boonstra
|
|
||||||
*/
|
|
||||||
|
|
||||||
package net.jitse.npclib.nms.v1_8_R2.packets;
|
|
||||||
|
|
||||||
import com.comphenix.tinyprotocol.Reflection;
|
|
||||||
import net.minecraft.server.v1_8_R2.DataWatcher;
|
|
||||||
import net.minecraft.server.v1_8_R2.PacketPlayOutNamedEntitySpawn;
|
|
||||||
import org.bukkit.Location;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Jitse Boonstra
|
|
||||||
*/
|
|
||||||
public class PacketPlayOutNamedEntitySpawnWrapper {
|
|
||||||
|
|
||||||
public PacketPlayOutNamedEntitySpawn create(UUID uuid, Location location, int entityId) {
|
|
||||||
PacketPlayOutNamedEntitySpawn packetPlayOutNamedEntitySpawn = new PacketPlayOutNamedEntitySpawn();
|
|
||||||
|
|
||||||
Reflection.getField(packetPlayOutNamedEntitySpawn.getClass(), "a", int.class)
|
|
||||||
.set(packetPlayOutNamedEntitySpawn, entityId);
|
|
||||||
Reflection.getField(packetPlayOutNamedEntitySpawn.getClass(), "b", UUID.class)
|
|
||||||
.set(packetPlayOutNamedEntitySpawn, uuid);
|
|
||||||
Reflection.getField(packetPlayOutNamedEntitySpawn.getClass(), "c", int.class)
|
|
||||||
.set(packetPlayOutNamedEntitySpawn, (int) Math.floor(location.getX() * 32.0D));
|
|
||||||
Reflection.getField(packetPlayOutNamedEntitySpawn.getClass(), "d", int.class)
|
|
||||||
.set(packetPlayOutNamedEntitySpawn, (int) Math.floor(location.getY() * 32.0D));
|
|
||||||
Reflection.getField(packetPlayOutNamedEntitySpawn.getClass(), "e", int.class)
|
|
||||||
.set(packetPlayOutNamedEntitySpawn, (int) Math.floor(location.getZ() * 32.0D));
|
|
||||||
Reflection.getField(packetPlayOutNamedEntitySpawn.getClass(), "f", byte.class)
|
|
||||||
.set(packetPlayOutNamedEntitySpawn, (byte) ((int) (location.getYaw() * 256.0F / 360.0F)));
|
|
||||||
Reflection.getField(packetPlayOutNamedEntitySpawn.getClass(), "g", byte.class)
|
|
||||||
.set(packetPlayOutNamedEntitySpawn, (byte) ((int) (location.getPitch() * 256.0F / 360.0F)));
|
|
||||||
|
|
||||||
DataWatcher dataWatcher = new DataWatcher(null);
|
|
||||||
dataWatcher.a(10, (byte) 127);
|
|
||||||
|
|
||||||
Reflection.getField(packetPlayOutNamedEntitySpawn.getClass(), "i", DataWatcher.class)
|
|
||||||
.set(packetPlayOutNamedEntitySpawn, dataWatcher);
|
|
||||||
|
|
||||||
return packetPlayOutNamedEntitySpawn;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,34 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2018 Jitse Boonstra
|
|
||||||
*/
|
|
||||||
|
|
||||||
package net.jitse.npclib.nms.v1_8_R2.packets;
|
|
||||||
|
|
||||||
import com.comphenix.tinyprotocol.Reflection;
|
|
||||||
import com.mojang.authlib.GameProfile;
|
|
||||||
import net.minecraft.server.v1_8_R2.IChatBaseComponent;
|
|
||||||
import net.minecraft.server.v1_8_R2.PacketPlayOutPlayerInfo;
|
|
||||||
import net.minecraft.server.v1_8_R2.WorldSettings;
|
|
||||||
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Jitse Boonstra
|
|
||||||
*/
|
|
||||||
public class PacketPlayOutPlayerInfoWrapper {
|
|
||||||
|
|
||||||
public PacketPlayOutPlayerInfo create(PacketPlayOutPlayerInfo.EnumPlayerInfoAction action, GameProfile gameProfile, String name) {
|
|
||||||
PacketPlayOutPlayerInfo packetPlayOutPlayerInfo = new PacketPlayOutPlayerInfo();
|
|
||||||
Reflection.getField(packetPlayOutPlayerInfo.getClass(), "a", PacketPlayOutPlayerInfo.EnumPlayerInfoAction.class)
|
|
||||||
.set(packetPlayOutPlayerInfo, action);
|
|
||||||
|
|
||||||
PacketPlayOutPlayerInfo.PlayerInfoData playerInfoData = packetPlayOutPlayerInfo.new PlayerInfoData(gameProfile, 1,
|
|
||||||
WorldSettings.EnumGamemode.NOT_SET, IChatBaseComponent.ChatSerializer.a("{\"text\":\"[NPC] " + name + "\",\"color\":\"dark_gray\"}"));
|
|
||||||
|
|
||||||
Reflection.FieldAccessor<List> fieldAccessor = Reflection.getField(packetPlayOutPlayerInfo.getClass(), "b", List.class);
|
|
||||||
fieldAccessor.set(packetPlayOutPlayerInfo, Collections.singletonList(playerInfoData));
|
|
||||||
|
|
||||||
return packetPlayOutPlayerInfo;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,48 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2018 Jitse Boonstra
|
|
||||||
*/
|
|
||||||
|
|
||||||
package net.jitse.npclib.nms.v1_8_R2.packets;
|
|
||||||
|
|
||||||
import com.comphenix.tinyprotocol.Reflection;
|
|
||||||
import net.minecraft.server.v1_8_R2.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(), "h", int.class)
|
|
||||||
.set(packetPlayOutScoreboardTeam, 0);
|
|
||||||
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "b", String.class)
|
|
||||||
.set(packetPlayOutScoreboardTeam, name);
|
|
||||||
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "a", String.class)
|
|
||||||
.set(packetPlayOutScoreboardTeam, name);
|
|
||||||
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "e", String.class)
|
|
||||||
.set(packetPlayOutScoreboardTeam, "never");
|
|
||||||
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "i", int.class)
|
|
||||||
.set(packetPlayOutScoreboardTeam, 1);
|
|
||||||
Reflection.FieldAccessor<Collection> collectionFieldAccessor = Reflection.getField(
|
|
||||||
packetPlayOutScoreboardTeam.getClass(), "g", Collection.class);
|
|
||||||
collectionFieldAccessor.set(packetPlayOutScoreboardTeam, Collections.singletonList(name));
|
|
||||||
|
|
||||||
return packetPlayOutScoreboardTeam;
|
|
||||||
}
|
|
||||||
|
|
||||||
public PacketPlayOutScoreboardTeam createUnregisterTeam(String name) {
|
|
||||||
PacketPlayOutScoreboardTeam packetPlayOutScoreboardTeam = new PacketPlayOutScoreboardTeam();
|
|
||||||
|
|
||||||
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "h", int.class)
|
|
||||||
.set(packetPlayOutScoreboardTeam, 1);
|
|
||||||
Reflection.getField(packetPlayOutScoreboardTeam.getClass(), "a", String.class)
|
|
||||||
.set(packetPlayOutScoreboardTeam, name);
|
|
||||||
|
|
||||||
return packetPlayOutScoreboardTeam;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -17,7 +17,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.spigotmc</groupId>
|
<groupId>org.spigotmc</groupId>
|
||||||
<artifactId>spigot-api</artifactId>
|
<artifactId>spigot-api</artifactId>
|
||||||
<version>1.14.4-R0.1-SNAPSHOT</version>
|
<version>1.16.1-R0.1-SNAPSHOT</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -26,12 +26,6 @@
|
||||||
<version>${project.version}</version>
|
<version>${project.version}</version>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>net.jitse</groupId>
|
|
||||||
<artifactId>npclib-nms-v1_8_R2</artifactId>
|
|
||||||
<version>${project.version}</version>
|
|
||||||
<scope>compile</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>net.jitse</groupId>
|
<groupId>net.jitse</groupId>
|
||||||
<artifactId>npclib-nms-v1_8_R3</artifactId>
|
<artifactId>npclib-nms-v1_8_R3</artifactId>
|
||||||
|
|
Loading…
Reference in New Issue