mojira.dev
MC-99597

Not needed spawnParticles calls of the server

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)

-

Related issues

Comments

marcono1234

This is not a duplicate.

MC-10369 describes the fact that server side only calls do not create particles for the client. However this report is about the fact that in situations in which the client creates the particles the server side method is called as well.

kumasasa

@unknown: Didn't you recently somewhere put a list that MC-XXX, MC-YYY, MC-AAA and MC-THIS are duplicating MC-ABCD ? I was sure that this ticket was in that list...

marcono1234

Yes sorry, that was my mistake. I commented on MC-10369 asking for all related reports to be closed. However, I did not think of the other related reports...

Uriel Salischiker

Is this still a issue in the latest version of the game(currently 1.13.1)?

If so, please add it to the affected versions, thanks!

marcono1234

(Unassigned)

Unconfirmed

particle, server

Minecraft 1.9, Minecraft 1.11.2

Retrieved