Started work on #20
This commit is contained in:
@@ -5,17 +5,17 @@
|
||||
package net.jitse.npclib.nms.v1_8_R1;
|
||||
|
||||
import net.jitse.npclib.NPCLib;
|
||||
import net.jitse.npclib.api.state.NPCSlot;
|
||||
import net.jitse.npclib.hologram.Hologram;
|
||||
import net.jitse.npclib.internal.MinecraftVersion;
|
||||
import net.jitse.npclib.internal.SimpleNPC;
|
||||
import net.jitse.npclib.nms.v1_8_R1.packets.PacketPlayOutEntityHeadRotationWrapper;
|
||||
import net.jitse.npclib.nms.v1_8_R1.packets.PacketPlayOutNamedEntitySpawnWrapper;
|
||||
import net.jitse.npclib.nms.v1_8_R1.packets.PacketPlayOutPlayerInfoWrapper;
|
||||
import net.jitse.npclib.nms.v1_8_R1.packets.PacketPlayOutScoreboardTeamWrapper;
|
||||
import net.jitse.npclib.nms.v1_8_R1.packets.*;
|
||||
import net.minecraft.server.v1_8_R1.*;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.craftbukkit.v1_8_R1.entity.CraftPlayer;
|
||||
import org.bukkit.craftbukkit.v1_8_R1.inventory.CraftItemStack;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
@@ -97,4 +97,41 @@ public class NPC_v1_8_R1 extends SimpleNPC {
|
||||
|
||||
hologram.destroy(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) {
|
||||
PlayerConnection playerConnection = ((CraftPlayer) player).getHandle().playerConnection;
|
||||
|
||||
ItemStack item;
|
||||
switch (slot) {
|
||||
case HELMET:
|
||||
item = helmet;
|
||||
break;
|
||||
case CHESTPLATE:
|
||||
item = chestplate;
|
||||
break;
|
||||
case LEGGINGS:
|
||||
item = leggings;
|
||||
break;
|
||||
case BOOTS:
|
||||
item = boots;
|
||||
break;
|
||||
case IN_HAND:
|
||||
item = inHand;
|
||||
break;
|
||||
default:
|
||||
throw new IllegalArgumentException("Slot is not recognized");
|
||||
}
|
||||
|
||||
PacketPlayOutEntityEquipment packet = new PacketPlayOutEntityEquipment(entityId, slot.getSlot(), CraftItemStack.asNMSCopy(item));
|
||||
playerConnection.sendPacket(packet);
|
||||
}
|
||||
}
|
||||
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
package net.jitse.npclib.nms.v1_8_R1.packets;
|
||||
|
||||
import net.jitse.npclib.api.state.NPCState;
|
||||
import net.minecraft.server.v1_8_R1.DataWatcher;
|
||||
import net.minecraft.server.v1_8_R1.PacketPlayOutEntityMetadata;
|
||||
|
||||
public class PacketPlayOutEntityMetadataWrapper {
|
||||
|
||||
public PacketPlayOutEntityMetadata create(NPCState[] activateStates, int entityId) {
|
||||
DataWatcher dataWatcher = new DataWatcher(null);
|
||||
byte masked = NPCState.getMasked(activateStates);
|
||||
dataWatcher.a(0, masked);
|
||||
|
||||
return new PacketPlayOutEntityMetadata(entityId, dataWatcher, true);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user