Allow sendData of multiple data
This commit is contained in:
		| @@ -229,23 +229,27 @@ public class FlagWatcher { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     protected void sendData(int data) { | ||||
|     protected void sendData(int... dataValues) { | ||||
|         if (!DisguiseAPI.isDisguiseInUse(getDisguise())) | ||||
|             return; | ||||
|         if (!entityValues.containsKey(data) || entityValues.get(data) == null) | ||||
|             return; | ||||
|         Object value = entityValues.get(data); | ||||
|         List<WrappedWatchableObject> list = new ArrayList<WrappedWatchableObject>(); | ||||
|         list.add(new WrappedWatchableObject(data, value)); | ||||
|         PacketContainer packet = new PacketContainer(PacketType.Play.Server.ENTITY_METADATA); | ||||
|         StructureModifier<Object> mods = packet.getModifier(); | ||||
|         mods.write(0, getDisguise().getEntity().getEntityId()); | ||||
|         packet.getWatchableCollectionModifier().write(0, list); | ||||
|         for (Player player : DisguiseUtilities.getPerverts(getDisguise())) { | ||||
|             try { | ||||
|                 ProtocolLibrary.getProtocolManager().sendServerPacket(player, packet); | ||||
|             } catch (InvocationTargetException e) { | ||||
|                 e.printStackTrace(); | ||||
|         for (int data : dataValues) { | ||||
|             if (!entityValues.containsKey(data) || entityValues.get(data) == null) | ||||
|                 continue; | ||||
|             Object value = entityValues.get(data); | ||||
|             list.add(new WrappedWatchableObject(data, value)); | ||||
|         } | ||||
|         if (!list.isEmpty()) { | ||||
|             PacketContainer packet = new PacketContainer(PacketType.Play.Server.ENTITY_METADATA); | ||||
|             StructureModifier<Object> mods = packet.getModifier(); | ||||
|             mods.write(0, getDisguise().getEntity().getEntityId()); | ||||
|             packet.getWatchableCollectionModifier().write(0, list); | ||||
|             for (Player player : DisguiseUtilities.getPerverts(getDisguise())) { | ||||
|                 try { | ||||
|                     ProtocolLibrary.getProtocolManager().sendServerPacket(player, packet); | ||||
|                 } catch (InvocationTargetException e) { | ||||
|                     e.printStackTrace(); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|   | ||||
| @@ -42,8 +42,8 @@ public class TameableWatcher extends AgeableWatcher { | ||||
|     @Override | ||||
|     public void setHealth(float newHealth) { | ||||
|         setValue(18, newHealth); | ||||
|         sendData(18); | ||||
|         super.setHealth(newHealth); | ||||
|         setValue(6, newHealth); | ||||
|         sendData(6, 18); | ||||
|     } | ||||
|  | ||||
|     public void setOwner(String owner) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user