mojira.dev

ElNounch

Assigned

No issues.

Reported

MC-56361 Discrepancy dismounting behaviour between quadrants Duplicate

Comments

Confirmed still present in 14w03b.

Problem happen only if X and/or Z are negatives, due to lack of floor()'ing in the function in charge of Entities dismounting.

  • To fix in CraftBukkit

    src\\main\\java\\net\\minecraft\\server\\EntityLiving.java , lines 1093/1094

    int k = (int) (this.locX + (double) i);
    int l = (int) (this.locZ + (double) j);

    becomes

    int k = (int) MathHelper.floor(this.locX + (double) i);
    int l = (int) MathHelper.floor(this.locZ + (double) j);
  • To fix in mcp903

    src\\minecraft\\net\\minecraft\\entity\\EntityLivingBase.java , lines 1508/1509

    int var12 = (int)(this.posX + (double)var10);
    int var13 = (int)(this.posZ + (double)var11);

    becomes

    int var12 = (int)MathHelper.floor_double(this.posX + (double)var10);
    int var13 = (int)MathHelper.floor_double(this.posZ + (double)var11);

Of course, it's on server's side 😉