Franz Reiter
- Howaner
- howaner
- Europe/Stockholm
- Yes
- No
I have looked in the Minecraft Source Code and found a Error/Problem in the Speed Calculation.
This stand in the obfuscated Code from the Minecraft Client (1.7.4):
float f1 = this.bm.a(paramahz);
if (f1 > 1.0F) { //Higher than 1.0F
int j = aem.c(this);
abu localabu = this.bm.h();if ((j > 0) && (localabu != null))
{ float f2 = j * j + 1; if ((localabu.b(paramahz)) || (f1 > 1.0F)) //<--- Here is the Error f1 += f2; else f1 += f2 * 0.08F; }}
The float f1 is always higher then 1.0F.
Here is the problem too: https://github.com/Bukkit/mc-dev/blob/master/net/minecraft/server/EntityHuman.java#L511
And here: https://github.com/Bukkit/CraftBukkit/blob/master/src/main/java/net/minecraft/server/EntityHuman.java#L593
I have looked in the Minecraft Source Code and found a Error/Problem in the Speed Calculation.
This stand in the obfuscated Code from the Minecraft Client (1.7.4):
float f1 = this.bm.a(paramahz);
if (f1 > 1.0F) { //Higher than 1.0F
int j = aem.c(this);
abu localabu = this.bm.h();if ((j > 0) && (localabu != null))
{ float f2 = j * j + 1; if ((localabu.b(paramahz)) || (f1 > 1.0F)) //<--- Here is the Errorf1 += f2; else f1 += f2 * 0.08F; }}
The float f1 is always higher then 1.0F.
Here is the problem too: https://github.com/Bukkit/mc-dev/blob/master/net/minecraft/server/EntityHuman.java#L511
And here: https://github.com/Bukkit/CraftBukkit/blob/master/src/main/java/net/minecraft/server/EntityHuman.java#L593I have looked in the Minecraft Source Code and found a Error/Problem in the Speed Calculation.
This stand in the obfuscated Code from the Minecraft Client (1.7.4):
float f1 = this.bm.a(paramahz);
if (f1 > 1.0F) { //Higher than 1.0F
int j = aem.c(this);
abu localabu = this.bm.h();if ((j > 0) && (localabu != null))
{ float f2 = j * j + 1; if ((localabu.b(paramahz)) || (f1 > 1.0F)) //<--- Here is the Error f1 += f2; else f1 += f2 * 0.08F; }}
The float f1 is always higher then 1.0F.
Here is the problem too: https://github.com/Bukkit/mc-dev/blob/master/net/minecraft/server/EntityHuman.java#L511
And here: https://github.com/Bukkit/CraftBukkit/blob/master/src/main/java/net/minecraft/server/EntityHuman.java#L593
I have looked in the Minecraft Source Code and found a Error/Problem in the Speed Calculation.
This stand in the obfuscated Code from the Minecraft Client (1.7.4):
float f1 = this.bm.a(paramahz);
if (f1 > 1.0F) { //Higher than 1.0F
int j = aem.c(this);
abu localabu = this.bm.h();if ((j > 0) && (localabu != null))
{ float f2 = j * j + 1; if ((localabu.b(paramahz)) || (f1 > 1.0F)) //<--- Here is the Error f1 += f2; else f1 += f2 * 0.08F; }}
The float f1 is always higher then 1.0F.
Here is the problem too: https://github.com/Bukkit/mc-dev/blob/master/net/minecraft/server/EntityHuman.java#L511
And here: https://github.com/Bukkit/CraftBukkit/blob/master/src/main/java/net/minecraft/server/EntityHuman.java#L593
I have looked in the Minecraft Source Code and found a Error/Problem in the Speed Calculation.
This stand in the obfuscated Code from the Minecraft Client (1.7.4):
float f1 = this.bm.a(paramahz);
if (f1 > 1.0F) { //Higher than 1.0F
int j = aem.c(this);
abu localabu = this.bm.h();if ((j > 0) && (localabu != null))
{ float f2 = j * j + 1; if ((localabu.b(paramahz)) || (f1 > 1.0F)) //<--- Here is the Errorf1 += f2; else f1 += f2 * 0.08F; }}
The float f1 is always higher then 1.0F.
Here is the problem too: https://github.com/Bukkit/mc-dev/blob/master/net/minecraft/server/EntityHuman.java#L511
And here: https://github.com/Bukkit/CraftBukkit/blob/master/src/main/java/net/minecraft/server/EntityHuman.java#L593
I have looked in the Minecraft Source Code and found a Error/Problem in the Speed Calculation.
This stand in the obfuscated Code from the Minecraft Client (1.7.4):
float f1 = this.bm.a(paramahz);
if (f1 > 1.0F) { //Higher than 1.0F
int j = aem.c(this);
abu localabu = this.bm.h();if ((j > 0) && (localabu != null))
{ float f2 = j * j + 1;if ((localabu.b(paramahz)) || (f1 > 1.0F))//<--- Here is the Error f1 += f2; else f1 += f2 * 0.08F; }}
The float f1 is always higher then 1.0F.
Here is the problem too: https://github.com/Bukkit/mc-dev/blob/master/net/minecraft/server/EntityHuman.java#L511
And here: https://github.com/Bukkit/CraftBukkit/blob/master/src/main/java/net/minecraft/server/EntityHuman.java#L593I have looked in the Minecraft Source Code and found a Error/Problem in the Speed Calculation.
This stand in the obfuscated Code from the Minecraft Client (1.7.4):
float f1 = this.bm.a(paramahz);
if (f1 > 1.0F) { //Higher than 1.0F
int j = aem.c(this);
abu localabu = this.bm.h();if ((j > 0) && (localabu != null)) {
float f2 = j * j + 1;if ((localabu.b(paramahz)) || (f1 > 1.0F))
{ //<--- Here is the Error f1 += f2; else f1 += f2 * 0.08F; }}
}The float f1 is always higher then 1.0F.
Here is the problem too: https://github.com/Bukkit/mc-dev/blob/master/net/minecraft/server/EntityHuman.java#L511
And here: https://github.com/Bukkit/CraftBukkit/blob/master/src/main/java/net/minecraft/server/EntityHuman.java#L593
The bug
The client tries to teleport endermen as well. This can cause particles and teleportation sounds to appear at the wrong position or the enderman might be away for a short moment before its position is re-synchronized.
How to reproduce
- Summon an enderman
- Punch it in Creative mode
→ It will disappear for a short moment
Code analysis
Partwise by Franz Reiter
Based on 1.12 decompiled using MCP 9.40 PRE 1
The method net.minecraft.entity.monster.EntityEnderman.teleportRandomly() is called client-side as well which can result in different results since the random number generators are not synchronized. Additionally this method is called when the hurt animation is displayed client-side by dealing 0 unblockable damage to the enderman.
This could be solved by either adding an "is server" check in the method EntityEnderman.teleportRandomly() or maybe even better in the method net.minecraft.entity.monster.EntityEnderman.attackEntityFrom(DamageSource, float).


In 14w07a is the Bug avaible, too.
This haven't Effects to Singleplayer or other things.
But Mojang added the Line and it make nothing.
Why is then the Line in the Code, when it make nothing?
Vanilla Server: No
But this cause a problem with anti-cheat plugins. (Example you can't eat anything because the anti-cheat plugin thinks that you are in a window)
Any chance for a fix?