What I expected to happen was...:
Upon placing an eye of ender in a portal frame, the portal frame should emit smoke
What actually happened was...:
In the latest version since the multiplayer restructuring (1.3-present), inserting an eye into a portal frame does not make it smoke.
Steps to Reproduce:
1. Run current version of MC, create an end portal. Note how frame does not smoke when eyes are inserted.
2. Revert to 1.2.5 using MCNostalgia or MultiMC
3. create an end portal in single player. Note how frame does emit smoke when eyes are inserted.
Trivial error, but that's what the community is for, isn't it? 😉
Code analysis: https://bugs.mojang.com/browse/MC-13094?focusedCommentId=284697&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-284697 and https://bugs.mojang.com/browse/MC-10369?focusedCommentId=284639&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-284639
Linked issues
Attachments
Comments
Confirmed for 1.7.5, 14w08a and 14w10c
Confirmed for 14w18a
Confirmed for 14w26c
Confirmed for 14w29b, 1.7.10
Confirmed for 1.8.2-pre4 and many versions before that.
Affects 15w47c & 1.8.8
Relates to MC-10369

Confirmed for
16w06a

Please link to this comment and the comment on MC-10369 in the description of this report
The following is based on decompiled version of Minecraft 1.8 using MCP. All method and class names are the names used in the decompiled version.
This modified version does not use the same method for calculation the offset than the old one. The smoke particles have a larger maximum offset in x and z direction and are higher placed than before.
How to fix the bug
Instead of having the for
loops to create the particles, the following could / should be used:
Affected class:
net.minecraft.item.ItemEnderEye
Affected method:
net.minecraft.item.ItemEnderEye.onItemUse(ItemStack, EntityPlayer, World, BlockPos, EnumFacing, float, float, float)
New code:
pos
- TheBlockPos
of the end portal frame((WorldServer) worldIn).func_175739_a(EnumParticleTypes.SMOKE_NORMAL, pos.getX() + 0.5D, pos.getY() + 0.9225D, pos.getZ() + 0.5D, 16, 0.225D, 0D, 0.225D, 0D, new int[0]);
Confirmed for 1.9.1-pre1 / 1.9.1-pre2 / 1.9.1-pre3

Duplicates MC-10369
Confirmed.