Fix a concurrent exception
This commit is contained in:
		| @@ -237,16 +237,18 @@ public class PacketsManager | |||||||
|                 DisguiseUtilities.getAddedByPlugins().remove(name); |                 DisguiseUtilities.getAddedByPlugins().remove(name); | ||||||
|             } |             } | ||||||
|  |  | ||||||
|             Object entityPlayer = ReflectionManager.createEntityPlayer(observer.getWorld(), gameProfile); |             spawnPackets[0] = new PacketContainer(PacketType.Play.Server.NAMED_ENTITY_SPAWN); | ||||||
|             spawnPackets[0] = ProtocolLibrary.getProtocolManager() |  | ||||||
|                     .createPacketConstructor(Server.NAMED_ENTITY_SPAWN, entityPlayer).createPacket(entityPlayer); |  | ||||||
|  |  | ||||||
|             // Write spawn packet in order |  | ||||||
|             spawnPackets[0].getIntegers().write(0, entityId); // Id |             spawnPackets[0].getIntegers().write(0, entityId); // Id | ||||||
|  |             spawnPackets[0].getModifier().write(1, gameProfile.getUUID()); | ||||||
|  |  | ||||||
|             spawnPackets[0].getDoubles().write(0, loc.getX()); |             spawnPackets[0].getDoubles().write(0, loc.getX()); | ||||||
|             spawnPackets[0].getDoubles().write(1, loc.getY()); |             spawnPackets[0].getDoubles().write(1, loc.getY()); | ||||||
|             spawnPackets[0].getDoubles().write(2, loc.getZ()); |             spawnPackets[0].getDoubles().write(2, loc.getZ()); | ||||||
|  |  | ||||||
|  |             spawnPackets[0].getBytes().write(0, ((byte) (int) (loc.getYaw() * 256.0F / 360.0F))); | ||||||
|  |             spawnPackets[0].getBytes().write(1, ((byte) (int) (loc.getPitch() * 256.0F / 360.0F))); | ||||||
|  |  | ||||||
|             spawnPackets[0].getDataWatcherModifier().write(0, |             spawnPackets[0].getDataWatcherModifier().write(0, | ||||||
|                     createDataWatcher(WrappedDataWatcher.getEntityWatcher(disguisedEntity), disguise.getWatcher())); // watcher, |                     createDataWatcher(WrappedDataWatcher.getEntityWatcher(disguisedEntity), disguise.getWatcher())); // watcher, | ||||||
|                                                                                                                      // duh |                                                                                                                      // duh | ||||||
|   | |||||||
| @@ -32,13 +32,11 @@ import com.comphenix.protocol.wrappers.WrappedDataWatcher.WrappedDataWatcherObje | |||||||
| import com.comphenix.protocol.wrappers.WrappedGameProfile; | import com.comphenix.protocol.wrappers.WrappedGameProfile; | ||||||
| import com.comphenix.protocol.wrappers.WrappedWatchableObject; | import com.comphenix.protocol.wrappers.WrappedWatchableObject; | ||||||
| import com.google.common.base.Optional; | import com.google.common.base.Optional; | ||||||
| import com.mojang.authlib.GameProfile; |  | ||||||
|  |  | ||||||
| import me.libraryaddict.disguise.disguisetypes.DisguiseType; | import me.libraryaddict.disguise.disguisetypes.DisguiseType; | ||||||
|  |  | ||||||
| public class ReflectionManager | public class ReflectionManager | ||||||
| { | { | ||||||
|  |  | ||||||
|     private static final String bukkitVersion = Bukkit.getServer().getClass().getName().split("\\.")[3]; |     private static final String bukkitVersion = Bukkit.getServer().getClass().getName().split("\\.")[3]; | ||||||
|     private static final Class<?> craftItemClass; |     private static final Class<?> craftItemClass; | ||||||
|     private static Method damageAndIdleSoundMethod; |     private static Method damageAndIdleSoundMethod; | ||||||
| @@ -1018,22 +1016,4 @@ public class ReflectionManager | |||||||
|         return null; |         return null; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public static Object createEntityPlayer(World w, WrappedGameProfile profile) |  | ||||||
|     { |  | ||||||
|         Object entityPlayer = null; |  | ||||||
|  |  | ||||||
|         try |  | ||||||
|         { |  | ||||||
|             entityPlayer = getNmsConstructor("EntityPlayer", getNmsClass("MinecraftServer"), getNmsClass("WorldServer"), |  | ||||||
|                     GameProfile.class, getNmsClass("PlayerInteractManager")).newInstance(getMinecraftServer(), getWorldServer(w), |  | ||||||
|                             profile.getHandle(), getPlayerInteractManager(w)); |  | ||||||
|         } |  | ||||||
|         catch (InstantiationException | IllegalAccessException | InvocationTargetException e) |  | ||||||
|         { |  | ||||||
|             e.printStackTrace(); |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         return entityPlayer; |  | ||||||
|     } |  | ||||||
|  |  | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user