Beispiel #1
0
        public void updatePlayerEntity(EntityPlayerMP entityplayermp)
        {
            if (entityplayermp == trackedEntity)
            {
                return;
            }
            double d  = entityplayermp.posX - (encodedPosX / 32);
            double d1 = entityplayermp.posZ - (encodedPosZ / 32);

            if (d >= (-trackingDistanceThreshold) && d <= trackingDistanceThreshold &&
                d1 >= (-trackingDistanceThreshold) && d1 <= trackingDistanceThreshold)
            {
                if (!trackedPlayers.contains(entityplayermp))
                {
                    trackedPlayers.add(entityplayermp);
                    entityplayermp.playerNetServerHandler.sendPacket(getSpawnPacket());
                    if (shouldSendMotionUpdates)
                    {
                        entityplayermp.playerNetServerHandler.sendPacket(new Packet28(trackedEntity.entityId,
                                                                                      trackedEntity.motionX,
                                                                                      trackedEntity.motionY,
                                                                                      trackedEntity.motionZ));
                    }
                    ItemStack[] aitemstack = trackedEntity.getInventory();
                    if (aitemstack != null)
                    {
                        for (int i = 0; i < aitemstack.Length; i++)
                        {
                            entityplayermp.playerNetServerHandler.sendPacket(
                                new Packet5PlayerInventory(trackedEntity.entityId, i, aitemstack[i]));
                        }
                    }
                }
            }
            else if (trackedPlayers.contains(entityplayermp))
            {
                trackedPlayers.remove(entityplayermp);
                entityplayermp.playerNetServerHandler.sendPacket(new Packet29DestroyEntity(trackedEntity.entityId));
            }
        }