What you should do is make the water only one block deep, so that it all levels out. See the question that ZoogieZork posted. After that, you can dig as deep as you want and the currents shouldn't appear.
In general, here is a good technique for building rivers (top-down view):
█▒█▒█▒█▒█▒█▒█▒█... | █ = block
.█▒█▒█▒█▒█▒█▒█▒█.. | ▒ = water source
..█▒█▒█▒█▒█▒█▒█▒█. | . = empty block
First, you want to dig out a path for your river. Place alternating blocks and water sources along where your river is dug out so it looks like a checkerboard. Then, destroy all the blocks. Because there are water sources every other block, the space created by the blocks being destroyed will turn into source blocks themselves and create a nice and smooth river.
In your case, you would probably be able to build this pattern right up to one block before the lake. When you've destroyed all the blocks and the river is nice and smooth, you should be able to connect the lake and the river and the connection between them should level out.
From a decompiled 1.7.10 a teleportRandomly
function is present in in the Enderman defintion.
it is called if the Enderman is:
- wet
- on fire
- in daylight & not fighting
- is fighting & is closer than 16 blocks to their target
(in the last case there is a delay on how often this can be done).
The function generates an X, Y and Z coordinate and places the enderman to that location. The function calls rand.nextDouble()
or rand.nextInt(64)
to generate a value within ±32 of the original value for each of X,Y and Z. It then calls another function a teleportTo()
using these values
(Alternatively if they are fighting and further away from their target, there is a teleport to entity function.)
Therefore, an enderman, without being aggressive, can teleport anywhere within a cube of 64 blocks of itself (subject to having a floor, head room and not ending up in a liquid).
So, to answer the question, no pathing is considered, this teleportation is based on moving directly to a random location.
TL;DR If the room is within 32 blocks of a liquid or daylight and the ceiling is atleast 3 blocks high, an enderman "could" get in randomly without you having any previous contact with it.
Best Answer
You have mentioned that you are on SMP so my guess is that you are lagging to the point where you bump into a wall.
A possible solution would to make the walls wider as boats are extremely fragile.
Boats are also pushed by water currents so it might keep the boat from bumping if you make water currents so I suggest that you make water flowing in the direction you want to travel rather than just creating still water everywhere.