The bug
The following is based on decompiled version of Minecraft 1.9 using MCP 9.24 beta. All method and class names are the names used in the decompiled version.
There are multiple methods that run for the client and the server to create particles. The particles created by the server are not send to the client due to MC-10369. However the server should not even try to create the particles in the listed cases as the client does this already. The method that they call is net.minecraft.world.World.spawnParticle(EnumParticleTypes, double, double, double, double, double, double, int...).
Affected methods
Last updated for 1.11.2
Some methods might have to be adjusted to send particles and sound to the other players. This list contains only the methods which create the particles, adding a condition to only create the particles for the client might introduce new bugs. Therefor in some cases the calling methods need to be changed.
Method | Note |
---|---|
net.minecraft.block.BlockLiquid.triggerMixEffects(World, BlockPos) | - |
net.minecraft.block.BlockNote.eventReceived(IBlockState, World, BlockPos, int, int) | - |
net.minecraft.block.BlockRedstoneOre.spawnParticles(World, BlockPos) | - |
net.minecraft.entity.Entity.spawnRunningParticles() | - |
net.minecraft.entity.Entity.resetHeight() | should be called "createWaterParticlesAndSound" or something similar |
net.minecraft.entity.EntityLivingBase.attemptTeleport(double, double, double) | - |
net.minecraft.entity.EntityLivingBase.onEntityUpdate() | air bubbles under water |
net.minecraft.entity.EntityLivingBase.onDeathUpdate() | - |
net.minecraft.entity.EntityLivingBase.updateItemUse(ItemStack, int) | - |
net.minecraft.entity.EntityLivingBase.updatePotionEffects() | - |
net.minecraft.entity.EntityLivingBase.renderBrokenItemStack(ItemStack) | - |
net.minecraft.entity.boss.EntityDragon.onLivingUpdate() | - |
net.minecraft.entity.boss.EntityDragon.onDeathUpdate() | - |
net.minecraft.entity.boss.EntityWither.onLivingUpdate() | - |
net.minecraft.entity.item.EntityEnderEye.onUpdate() | - |
net.minecraft.entity.item.EntityEnderPearl.onImpact(RayTraceResult) | - |
net.minecraft.entity.item.EntityMinecartFurnace.onUpdate() | - |
net.minecraft.entity.item.EntityMinecartTNT.onUpdate() | - |
net.minecraft.entity.item.EntityTNTPrimed.onUpdate() | - |
net.minecraft.entity.monster.EntityIronGolem.onLivingUpdate() | - |
net.minecraft.entity.monster.EntitySlime.onUpdate() | - |
net.minecraft.entity.passive.EntityAnimal.onLivingUpdate() | see MC-93826 |
net.minecraft.entity.passive.EntityMooshroom.processInteract(EntityPlayer, EnumHand) | - |
net.minecraft.entity.passive.EntityRabbit.createEatingParticles() | duplicate eating particles? |
net.minecraft.entity.passive.EntityTameable.playTameEffect(boolean) | - |
net.minecraft.entity.passive.EntityWolf.onUpdate() | - |
net.minecraft.entity.projectile.EntityArrow.onUpdate() | critical and in water |
net.minecraft.entity.projectile.EntityFireball.onUpdate() | in water and smoke |
net.minecraft.entity.projectile.EntityThrowable.onUpdate() | water particles |
net.minecraft.item.ItemBucket.tryPlaceContainedLiquid(EntityPlayer, World, BlockPos) | smoke particles in Nether |
net.minecraft.world.Explosion.doExplosionB(boolean) | - |
- is duplicated by
-
MC-112989 Furnace minecart smoke particles are created for the server as well
- Resolved