Don't use ProtocolLib's EntityModifier
This commit is contained in:
		| @@ -1826,6 +1826,18 @@ public class DisguiseUtilities { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static Entity getEntity(World world, int entityId) { | ||||
|         for (Entity e : world.getEntities()) { | ||||
|             if (e.getEntityId() != entityId) { | ||||
|                 continue; | ||||
|             } | ||||
|  | ||||
|             return e; | ||||
|         } | ||||
|  | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Get the Y level to add to the disguise for realism. | ||||
|      */ | ||||
|   | ||||
| @@ -17,6 +17,7 @@ import me.libraryaddict.disguise.disguisetypes.TargetedDisguise; | ||||
| import me.libraryaddict.disguise.disguisetypes.watchers.SheepWatcher; | ||||
| import me.libraryaddict.disguise.disguisetypes.watchers.WolfWatcher; | ||||
| import me.libraryaddict.disguise.events.DisguiseInteractEvent; | ||||
| import me.libraryaddict.disguise.utilities.DisguiseUtilities; | ||||
| import org.bukkit.Bukkit; | ||||
| import org.bukkit.entity.*; | ||||
| import org.bukkit.inventory.EquipmentSlot; | ||||
| @@ -40,9 +41,11 @@ public class PacketListenerClientInteract extends PacketAdapter { | ||||
|  | ||||
|         PacketContainer packet = event.getPacket(); | ||||
|  | ||||
|         StructureModifier<Entity> entityModifer = packet.getEntityModifier(observer.getWorld()); | ||||
|         Entity entity = DisguiseUtilities.getEntity(observer.getWorld(), packet.getIntegers().read(0)); | ||||
|  | ||||
|         Entity entity = entityModifer.read(0); | ||||
|         if (entity == null) { | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         if (entity instanceof ExperienceOrb || entity instanceof Item || entity instanceof Arrow || | ||||
|                 entity == observer) { | ||||
|   | ||||
| @@ -11,6 +11,8 @@ import com.comphenix.protocol.reflect.StructureModifier; | ||||
| import me.libraryaddict.disguise.DisguiseAPI; | ||||
| import me.libraryaddict.disguise.LibsDisguises; | ||||
| import me.libraryaddict.disguise.disguisetypes.Disguise; | ||||
| import me.libraryaddict.disguise.disguisetypes.EntityPose; | ||||
| import me.libraryaddict.disguise.utilities.DisguiseUtilities; | ||||
| import me.libraryaddict.disguise.utilities.packets.LibsPackets; | ||||
| import me.libraryaddict.disguise.utilities.packets.PacketsManager; | ||||
| import org.bukkit.entity.Entity; | ||||
| @@ -35,13 +37,15 @@ public class PacketListenerMain extends PacketAdapter { | ||||
|             return; | ||||
|  | ||||
|         // First get the entity, the one sending this packet | ||||
|         StructureModifier<Entity> entityModifer = event.getPacket().getEntityModifier(observer.getWorld()); | ||||
|  | ||||
|         org.bukkit.entity.Entity entity = entityModifer.read((Server.COLLECT == event.getPacketType() ? 1 : 0)); | ||||
|         int entityId = event.getPacket().getIntegers().read(Server.COLLECT == event.getPacketType() ? 1 : 0); | ||||
|  | ||||
|         Entity entity = DisguiseUtilities.getEntity(observer.getWorld(), entityId); | ||||
|  | ||||
|         // If the entity is the same as the sender. Don't disguise! | ||||
|         // Prevents problems and there is no advantage to be gained. | ||||
|         if (entity == observer) | ||||
|         // Or if they are null and there's no disguise | ||||
|         if (entity == observer || entity == null) | ||||
|             return; | ||||
|  | ||||
|         final Disguise disguise = DisguiseAPI.getDisguise(observer, entity); | ||||
|   | ||||
| @@ -249,7 +249,11 @@ public class PacketListenerSounds extends PacketAdapter { | ||||
|             } | ||||
|  | ||||
|             // It made a damage animation | ||||
|             Entity entity = event.getPacket().getEntityModifier(observer.getWorld()).read(0); | ||||
|             Entity entity = DisguiseUtilities.getEntity(observer.getWorld(), event.getPacket().getIntegers().read(0)); | ||||
|  | ||||
|             if (entity == null) { | ||||
|                 return; | ||||
|             } | ||||
|  | ||||
|             Disguise disguise = DisguiseAPI.getDisguise(observer, entity); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user